Welcome to the course webpage for the Summer 2016 term of CSC207H1, Software Design, at St. George campus. One major goal of this course is to introduce you to large-scale software design and development concepts and to tools that become useful as you work on projects in teams. We will discuss effective team behaviours and communication skills, practice agile methods for designing software, and use tools such as a fully-featured IDE and a version control system. The other primary goal of this course is to help you practice how to learn a new language. We will compare salient features of Python and Java, expecting you to fill in details outside of class, and will investigate Java's memory model, scoping facilities, and object-oriented structures in depth.
To do this week
- Sprint II of the final project must be complete by this Thursday evening!
- More office hours have been added for next three weeks
Contact Information and Regular Office Hours
|Instructor||Lecture Times||Office Hours|
|Ilir Dema ||L5101 R 18:00-20:00||R 16:00-18:00 (BA3289)|
Special Office Hours
|Wed, July 27 14:00-16:00 (BA3289)|
|Wed, Aug 3 14:00-16:00 (BA3289)|
|Wed, Aug 10 14:00-18:00 (BA3289)|
Textbook and References
There is no required textbook for this course. Instead, the relevant course notes will be posted online (in this website and on portal as well).
However, if you wish to own a good book on object-oriented software design, you may find the
following book useful:
Barbara Liskov, John Guttag. Program Development in Java: Abstraction, Specification, and Object-oriented Design, Addison-Wesley, 2001.
- Oracle Java documentation web site
- Version Control with Subversion: available here.
- Unix in 10 minutes: here.
- In the beginning ... was the command line.
- E.W.Dijkstra: The threats to computing science
- The best book on Agile: The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity (2nd Edition)