Examples

This section contains some examples of what we mean by "practical" work.

In your second year, you will learn about software design: how to precisely describe the structure and behaviour of your software-to-be-built. In COMP-304 "Object-Oriented Design" for example, you will study the design and build parts of a spreadsheet application. You will also learn how to build a CD player application from a Statechart design.

Starting from the second year of your studies, you will be asked to implement group projects in courses such as COMP 303 - Programming Techniques or COMP-361 - Systems Programming Project. Students often implement games or simulation environments (see the picture on the left) during such a project.
In several courses we will teach you techniques that will help you to produce reliable software. The scope, complexity, and pervasiveness of computer-based and controlled systems continue to increase dramatically and the consequences of such systems failing can be important. Mission and safety-critical applications, e.g. software produced for the aerospace industry, use so-called fault tolerance techniques, that allow the software to continue to provide service in spite of hardware, software design faults and faults of the surrounding environment.
In the complementary course COMP-522 "Modelling and Simulation", you will learn how to model, analyze and efficiently simulate complex systems using various formalisms. You will study queueing systems (such as lane-merging in traffic), simulate the execution of distributed, real-time software (such as a chat-room application), and model and simulate the dynamics of populations (such as the growth of cities in a SimCity game).

McGill | SOCS | Software Engineering Last modified: 10/24/05, Jörg Kienzle