CSC207H: Summer 2009

Lecture slides

This page will contain links to lecture slides. I will try to post these notes after each lecture, but if I haven't posted them by mid-Thursday morning, please feel free to e-mail me a reminder. Code examples will be posted to the shared repository. You can check out the repository using
svn co svn://greywolf.cdf.toronto.edu:7796/200905/csc207h

The slides are printed one to a page, but you should be able to print them in a paper-saving format. For example, Preview on the Macintosh allows printing multiple "pages" on a piece of paper, and we suspect that Adobe's Reader allows the same on a Windows machine. On CDF, the pdfnup command does it.

1 Welcome to CSC207H
Installing course software
Version control
Introduction to Java
Welcome to CSC207H
Getting started
Version control systems
2 Agile programming
Systematic testing
Software Design and Development
Systematic testing
3 JUnit
Arrays & Collections Framework
JUnit
Java Arrays & Collections
4 Eclipse, Subclipse
Exceptions (no code)
Visibility
Static vs. instance
Overloading
Setters and getters
Not Business As Usual
5 Abstract classes
Interfaces
Coding standards
See code annotations.
6 What is Java? Abstract classes, Interfaces (example)
Java Memory Model
What Is This Java Thing?
The Unreferenced Leaves Garbage Collect At My Feet
7 Java Memory Model - more examples
More examples of abstract classes
8 Mid-term test
9 Exercise 3 -- what went wrong
Mid-term test -- what went right?
Regular Expressions
Regular Expressions
10 Examples of Regular Expressions
User Documentation
Writing a User Guide
11 Another memory model example
Reflection
A Bit of Reflection
12 Design patterns
Design Patterns