200 likes | 221 Views
Explore the intersection of Ada programming, model railroading, and software engineering in a hands-on course that blends theory with practical skills. Learn to design and implement real-time embedded software while working on engaging projects with physical systems. Discover why Ada excels where C falls short, and gain valuable experience through laboratory assignments and capstone projects.
E N D
Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa
Computer Controlled Systems Study Option • For students interested in the specification, design, and implementation of real-time embedded software. • Core courses from the ACM curriculum. • Additional courses in • Continuous mathematics • Physics • Electronics Ada, Model Railroading, and Software Engineering Education
CSC 416Real-Time Systems • A capstone course. • To perform well students must integrate knowledge from: • Computer Science • Physics / Electronics • English • Mathematics Ada, Model Railroading, and Software Engineering Education
CSC 416Real-Time Systems • Students are exposed to fundamental scientific issues in real-time computing and practical skills of software development. • Goal is to train software engineers capable of working as part of a development team. • Many topics covered at a survey level. Ada, Model Railroading, and Software Engineering Education
The Laboratory A major problem with teaching real-time embedded software engineering is finding suitable equipment for assignments and projects. Ada, Model Railroading, and Software Engineering Education
The Laboratory • Simulators • Do not provide many of the frustrating problems associated with actual physical systems • Lack of experience with real systems is one reason cited by those who would exclude computer science graduates from development teams. Ada, Model Railroading, and Software Engineering Education
The Laboratory • The problem now becomes finding a physical system for students to control • In 1984 I began using a large model railroad in my course. • Why a model railroad? • Let’s look at some pictures! Ada, Model Railroading, and Software Engineering Education
Projects in C Ada, Model Railroading, and Software Engineering Education
Projects in Ada Ada, Model Railroading, and Software Engineering Education
Why does Ada succeed where C fails? • Modeling of scalar quantities • Strong typing • Range checking • Enumeration types • Parameter modes • Named parameter association Ada, Model Railroading, and Software Engineering Education
Why does Ada succeed where C fails? • Arrays whose indices do not begin at zero • Representation clauses for modeling device registers • Record types • Enumeration types Ada, Model Railroading, and Software Engineering Education
Why does Ada succeed where C fails? • High level of abstraction for tasking. • Ada students use rendezvous • C students used semaphores • Exception handling • Encapsulation • Package specifications and bodies • Compilation model • Obsolete units are detected! • No make files! Ada, Model Railroading, and Software Engineering Education
Laboratory Assignments Code for learning Ada features • Basic language features • Packages • Tasking • Generics • Exceptions Ada, Model Railroading, and Software Engineering Education
LaboratoryAssignments Code for the course project • Polling and interrupt based device drivers • Implementation of whistle class • Implementation of turnout class • Electro-mechanical devices which sometimes fail to move correctly • Code must detect and attempt to correct the problem • Code derived from a state machine model Ada, Model Railroading, and Software Engineering Education
Project Specification & Design Deliverables • System concept document • Detailed user manual • Rumbaugh OMT documents • Object model diagrams • Dynamic model diagrams • Functional model diagrams • Data dictionary • Package specifications • Package test plans Ada, Model Railroading, and Software Engineering Education
Minimum Project Requirements • Multiple trains • At least one train controlled by a human engineer • No collisions • Detect and recover from hardware failures • Turnouts • Sensors • Lost cars • Devious professors Ada, Model Railroading, and Software Engineering Education
Popular Project Themes • Races • Train wars • Scheduling (usually combined with project in the AI class) Ada, Model Railroading, and Software Engineering Education
Where do we gofrom here? Ada, Model Railroading, and Software Engineering Education
Over 50 Schools have inquired about duplicating the laboratory Only about 3 schools have actually built a model railroad Commercial interface boards too expensive Too much time or expertise required to build electronics in house My Solution Design and manufacture inexpensive plug-n-play model railroad interfaces Ada, Model Railroading, and Software Engineering Education
Corporate Sponsors Maytag Ada, Model Railroading, and Software Engineering Education