This course focuses on design techniques for both small and large software systems. Techniques for the design of components (e.g., modules, classes, procedures, and executables) as well as complex architectures will be considered. Principles for software design and rules for helping to ensure software quality will be discussed. The techniques will be applied in a set of small assignments, and a large-scale project, where students will design, implement, and maintain a non-trivial software system.
All course related materials (syllabus, slides, assignments, lecture videos, etc.) are in eClass:
Course syllabus (Last modified: Sept. 6th, 2021)
5:30pm --7:00pm, Mondays, Wednesdays;
Section 01: 2:30pm --4:00pm,Wednesdays;
Section 02: 4:00pm --5:30pm,Wednesdays;
4:00pm – 7:00pm, Mondays; or by Appointments.
El-hajj, Yoland (yolandje @ eecs.yorku.ca)
Shiri Harzevili, Nima (nshiri @ eecs.yorku.ca)
Wei, Moshi (moshiwei @ eecs.yorku.ca)
Li, Yifan (yifanli @ eecs.yorku.ca)