Instructor: Eric Wohlstadter
Winter 2011, Term 1. Tuesday and Thursday 2:00-3:20 in DMP 101
The breadth of software systems executing around you as you read this page is truly remarkable,
 ranging from the operating system supporting the browser used to view this page to the control 
systems providing the electrical and communications infrastructure to support serving this page 
to your device. You may be carrying around multiple software systems at this moment: a watch,
 a music player, a phone, etc.  Adding to their complexity, most software systems run in 
environments that require them to constantly interact with other systems and humans.
This course will cover some of the foundational work that has made the construction of these
systems possible and some of the state-of-the-art approaches for how to improve the process 
to enable the more efficient construction of robust long-lived systems that meet the needs of their
 intended environment and users. Topics covered will include requirements engineering, 
software architecture and design, advanced implementation techniques and development tools 
and methods for evaluating software engineering research results.
In this course, you will be reading research papers, leading interactive paper discussion(s),
critiquing papers, particapting in peer-reviews and undertaking a reseach project or literature
For more information about the pre-requisites and the course structure, check out the syllabus.

(Note: much of this CPSC 507 course material was developed by Dr. Gail Murphy)