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). |
|
 |