These include data modeling, encapsulation and reuse, concurrent programming, and exceptions. Later laboratory sessions are devoted to developing code that will be directly applied to their projects, including polling and interrupt-based device drivers, implementation of a whistle class, and implementation of a turnout class. Turnouts are electromechanical devices that sometimes fail to operate correctly. The software must detect and correct turnout failures. Students derive their code from state machines they develop in one of the lecture sessions.
Teams are free to formulate their own projects.
Having at least one train controlled by a human engineer. Experiencing no collisions. A detailed user s manual. Object Modeling Template documents. Object model diagrams.