Introduction

"The Ada Way" is an annual student programming contest organized by Ada-Europe, the international organization that promotes the knowledge and use of Ada in European academia, research and industry. A Steering Committee formed by representatives of promoting institutions oversees the organization of the contest. The Steering Committee is currently comprised of: Dirk Craeynest and Ahlan Marriott (Ada-Europe), Ricky Sward (ACM SIGAda), Jamie Ayre and Matteo Bordin (AdaCore), Jean-Pierre Fauche (Atego), Ian Broster (Rapita), Rod White (MBDA).

This initiative aims to attract students and educators to Ada in a form that is both fun and instructive. For this reason the contest is a yearly programming competition among student teams, whereby each team must have a university affiliation and be endorsed by an educator. The ideal, but not exclusive, context for participation is as part of an organized teaching/course activity in which the theme and requirements of the contest are endorsed and supported by the educator. See the "Participation Requirements" section at the bottom of this pane for details.

The regular contest opens in September with the announcement of the theme, and allows submissions until 15 May the following year. See below the first theme, and the Reference Implementation pane for the submission requirements and schedule.

As of June 2012, with the selection of the first reference implementation for the first theme of the Ada Way, the competition has been extended with an open-ended challenge entitled "Try and Beat Me!": read more about it under the "Reference Implementation" pane.

Students and educators who consider participating and want more information on "The Ada Way" are invited to make contact with the Steering Committee at "board at ada-europe dot org".

First Theme Specification: Software simulator of a football (soccer) match

The following specification intentionally leaves some room for interpretation and extension: participants are encouraged to use their intelligent creativity to firm up the derivative specification they want to work against.

The software system shall support at least the following features:

  • Users must be able to play a single game; support for playing a series of matches, with fixtures and associated rules, is optional and can be omitted
  • The chosen variant of the game shall be configurable in all relevant parameters, allowing for any of 5-a-side, 7-a-side, and the canonical 11-a-side formats
  • The members of the squads will feature individually configurable characteristics for, at least, technical and tactical skills, speed, physical parameters including fatigue; some of those parameters shall be dynamic and evolve with the match according to some programmed logic
  • Each squad shall have a (software) manager able to configure the initial players line up, the initial tactic and to issue commands for tactic changes and substitutions, all subject to the rules of the game as in the corresponding standard
  • Each squad shall play according to the tactic commanded by the manager; deviations shall be permitted in so far as they result from programmable characteristics of the players
  • Each match shall have one independent (software) referee and two to three subordinate (software) assistants who control the game and ensure that the applicable rules are followed; the behavior and the performance of the referee and assistants need not exhibit the physical limitations of actual humans.

The software system shall include at least:

  • A software core, whether centralized or distributed, implementing all of the logic of the simulation
  • One read-only graphical panel (window) for the display of the football field, the players, the ball, the referee and assistants; as for the (simulated) human figures on the pitch it shall be sufficient to represent them as moving numbered dots on the display without resorting to sophisticated graphical rendering, as in a view of a Subbuteo table seen from above.
  • Two distinct read-write graphical panels (windows) for the user to influence the otherwise independent action of the team managers; the panel shall display the current parameters for each player; the refresh rate of such display shall be user-configurable
  • One read-only graphical panel (window) for the display of a user-configurable selection of statistics; the refresh rate of such display shall be user-configurable.

The software core shall be programmed in Ada. The software design shall permit the principal algorithms to be modified and replaced at will: in other words, the software system shall be as modular, configurable and scalable as possible. These qualities will contribute to the evaluation.

The graphical panels can be programmed in any language that the participating teams will consider fit for purpose. The graphical beauty of such panels will however be only a minor factor in the evaluation. What shall matter instead is that the interaction and the flow of data and control between the software core and the graphical panels is governed by good architectural principles and shows sufficient accuracy and performance.

To be considered for evaluation, the system shall run out of the box. The target platform may be freely chosen between Linux, Windows and MacOS. Portability across them will however be a competitive advantage.

Participation requirements

Participating teams shall be composed by a minimum of 2 and a maximum of 7 members. Each team shall have a codename and a logo. Team work may be performed as part of an organized teaching/course activity or as a volunteer project. Either way, each team must be recognized and endorsed by an academic educator.

Team members must be full-time students: they must provide evidence of their status when submitting their project. The contest is open to undergraduate and Master students. Teams may but need not include a mix of undergraduate and graduate students.

Team members may belong to distinct institutions.

Reference Implementation

The 2010-11 regular season ended on 01 October 2011 with submissions attempted but no full submissions being made. For this reason, submissions have continued to be accepted past that deadline until 15 May 2012 and to be considered for a minor prize category. The evaluation committee chose one of those submissions as the reference implementation. The winning team was proclaimed during the Ada-Europe 2012 conference in Stockholm. The students in the winning team received a laminated Ada Way award donated by Ada-Europe; the story of their implementation will be told in a forthcoming issue of the Ada User Journal, the quarterly magazine of Ada-Europe; in due course, they will receive all elements of the prize attached to their fine achievement (see under the Evaluation and Prize heading for details of the minor prize).

The full source of the reference implementation (watch clip) is now posted on this site, along with its accompanying technical specification, build instructions and user manual: you can download it from here (7.04 MB).

That reference implementation is now proposed for a "Try and Beat Me" open-ended challenge: any student team willing to take that challenge is invited to make a submission that attempts to improve over the reference implementation under any of the evaluation criteria listed below: on 15 May of every year past 2012, any such new submission will be evaluated and the best one will be awarded a minor prize and will replace the previous reference submission in the continuation of the "try-and-beat-me" challenge.

"Try and Beat Me" Challenge Submission

The candidate submission shall be delivered in source (as a single compressed archive), accompanied by:

  1. A software specification document (in PDF), which describes the principal design decisions and argues their quality, and presents the points of extension and modification in the system; the specification shall clearly single out all places at which the team made arbitrary interpretation of the specification or added or extended requirements

  2. A user manual describing the compilation and installation procedures, the configuration options and the allowable use of the system (in PDF)

  3. The team codename, logo and composition: name, email contact, evidence of enrollment as full-time students (in a single PDF)

  4. The written endorsement to the submission by an academic or otherwise senior instructor in whose class the project was launched (in PDF).

The submission shall be made as a single compressed archive of all items listed above at the URL that will appear on this page in due time.

All sources shall be released for the good of the general public, to become reference material for educational and promotional purposes. To this end the use of GPL (GNU General Public License) is recommended, though we are not prescriptive of a specific scheme, so long as the general intent of free dissemination is preserved.

How to Submit

We will be using Dropbox to handle the submission process online. To submit your entry, write an email to adaway@adacore.com to request access to a shared folder on dropbox.com where you will then be able to upload your project. Upon receiving the invite from Dropbox, you will need to create a free account at dropbox if you don't already have one.

To upload from Dropbox:

  1. Create a Dropbox account (if you do not already have one)

  2. Go to dropbox.com link you received in the invitation

  3. Click the "Upload" button

  4. Select your compressed project file

  5. Click "start upload". And that's it.

Evaluation and Prize

The evaluation criteria include:

  • Coverage of requirements
  • Syntactic, semantic, programmatic and design correctness
  • Clarity and readability of the code
  • Quality of design
  • Ingenuity and cuteness of the solution
  • Time and space efficiency of the solution.

The evaluation will be performed by a team of distinguished Ada experts comprised of: John Barnes (UK), Tucker Taft (US), Joyce Tokar (US), Pascal Leroy (F), Ed Schonberg (US).

The winning team will be announced at the Ada-Europe yearly conference subsequent to the cut-off date at which submissions entered the try-and-beat-me competition.

The prize for the "try-and-beat-me" competition includes a framed award, an Ada book of choice, visibility in electronic and printed media, and an option for one free registration plus a monetary grant of up to EUR 1000 for the winning team to use for collective participation at any future Ada-Europe yearly conference of choice within 2 calendar years after selection for the prize.

Sponsors

logo_adacore logo_atego logo_ada_europe