SOEN 229: System Software

Hardware-software interface, system kernel, system services, system evolution. Assemblers, compilers, linkers, and loaders. System component interfaces. User-level view of operating systems. Lectures: three hours per week.

SOEN 287: Introduction to Web Applications
(fall 2009)

Internet architecture and protocols. Web applications through clients and servers. Markup languages. Client-side programming using scripting languages. Static website contents and dynamic page generation through server-side programming. Preserving state (client-side) in Web applications. Using query languages to access server-side data.

SOEN343: Software Design and Architecture (fall 2010)

From requirements to design to implementation. Planned vs. evolutionary design and refactoring. Model-driven design and Unified Modelling Language (UML). Structural and behavioural design descriptions and specifications. General and domain-specific design principles, patterns and idioms. Object-oriented design concepts such as interfaces vs. abstract types, polymorphism, generics, and delegation vs. subclassing. Introduction to software architecture (styles and view models). Design quality. Design rationale. Design methodologies (e.g. based on responsibility assignment).