This course builds on the knowledge of object-oriented programming, data structures, systems programming. Students are introduced to object-oriented software analysis and design concepts (such as cohesion and coupling), and design practices currently used in industry , (such as design patterns and refactoring). These concepts and practices will be discussed through case studies and programming exercises. (Prerequisite: COMP-2120 and COMP-2540)(3 lecture hours a week)

This is an online course and has no labs. Lectures take place on Mondays from 19:00 to 21:50 (7:00 P.M. to 9:50 P.M.).

This course is designed for people who want to make their data available to others over the Internet. Topics will include WWW authoring, WWW site planning, executable programs that create dynamic documents, the client-server model, multi-tier WWW software architecture, and security aspects. (Prerequisite: COMP-2120 and COMP-2540.) (3 lecture hours a week)

This is an online course and has no labs. Lectures take place on Wednesdays from 19:00 to 21:50 (7:00 P.M. to 9:50 P.M.).

The main objective of this course is to explore advanced topics of the object oriented paradigm through the use of the C++ programming language. Topics covered include: advanced object oriented design, the use of abstraction to manage complexity, objects and classes, inheritance and class hierarchies, multiple inheritance, operator and method overloading, namespaces and visibility, templates, dynamic binding and virtual functions, exception handling, multi-threading and C++ standard library. In addition, the course will include a practical project, solving a real-life problem, implemented in C++, involving the client/server methodology, and an interface to a database using a graphics toolkit. (Prerequisites: COMP-2120, COMP-2560.) (3 lecture hours a week) 

Class location and time: Tuesdays from 7:00 P.M. to 9:50 P.M. in Erie Hall 3123. This course has no labs. Midterms do not take place during class time (see the course outline for the details).