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.