Week # | Dates | General topic | Subtopics | Readings* | Events |
Week 1 | September 1 to September 3 | Computer Systems |
- Introduction and course outline
- Computer Hardware
- Digital information
- Number systems (specially binary numbers)
- Computer Networks
- Programming
| 1.1 - 1.4, Appendix B. | |
Week 2 | September 6 to September 10 | Introduction to programming |
- Programming Languages: Syntax and Semantics
- Java programs (Hello World)
- Compilers and Interpreters
- Introduction to objects
- Basic elements of Java: Keywords and literals
- Variables and assignments
- Primitive Data Types
| 2.0 - 2.5 | Assignment 1, Tutorial |
Week 3 | September 13 to September 17 | Primitive Data Types, Objects, Input/Output |
- Primitive Data Types
- Arithmetic operators
- Standard I/O
- String concatenation
- Creating objects
- Class libraries
| 2.6 - 2.9 | |
Week 4 | September 20 to September 24 | Conditional control flow |
- The if statement
- Boolean expressions revisited
- The switch statement
- Equivalence of conditional statements
- More operators
|
- 2nd ed
- 3.1 - 3.5
- 3rd ed
- 3.1 - 3.5
- 4th ed
- 5.1 - 5.4
| Assignment 2 |
Week 5 | September 27 to October 1 | Repetition: loops |
- The while statement
- The do/while statement
- The for statement
- Equivalence of loop statements
|
- 2nd ed
- 3.6 - 3.9
- 3rd ed
- 3.6 - 3.9
- 4th ed
- 5.5, 5.7, 5.8
| |
Week 6 | October 4 to October 8 | Objects and Classes |
- Objects: attributes, state and behaviour.
- Anatomy of a Class: attributes and methods
- Classes as Types
- Creating new objects
- Parameter passing
- Scope
- Visibility and Encapsulation
|
- 2nd ed
- 2.1, 2.5, 4.1 - 4.3
- 3rd ed
- 2.0, 2.1, 2.6, 4.0 - 4.2
- 4th ed
- 3.1, 3.2, 4.1 - 4.4
| Assignment 3 |
Week 7 | October 11 to October 15 | Objects and Classes (cont.) |
- Object relationships: aggregation (the ``has-a'' relation)
- Method decomposition
- Method overloading
- Static members
|
- 2nd ed
- 4.4 - 4.6
- 3rd ed
- 4.3 - 4.5
- 4th ed
- 6.1 - 6.4, 6.7, 6.8
| |
Week 8 | October 18 to October 22 | Objects and Classes (cont.) |
- Static variables and methods
- References (or pointers) and aliases
|
- 2nd ed
- 5.1 - 5.2
- 3rd ed
- 5.0 - 5.1
- 4th ed
- 6.3, 3.1 (sec on aliases)
| Assignment 4, Midterm: October 20th @ 7:00pm |
Week 9 | October 25 to October 29 | Arrays |
- Arrays of primitive data objects
- Arrays of general objects
- Two-dimensional and n-dimensional arrays
- Sorting (Selection sort and Insertion sort)
- Vectors: growing arrays
|
- 2nd ed
- 6.1 - 6.5
- 3rd ed
- 6.0 - 6.4
- 4th ed
- 7.1 - 7.3, 7.6, 7.7
| |
Week 10 | November 1 to November 5 | Inheritance |
- Subclasses
- Shadowing attributes
- Overriding methods
- Class hierarchy
- The Object class
|
- 2nd ed
- 7.1 - 7.3
- 3rd ed
- 7.0 - 7.2
- 4th ed
- 8.1 - 8.4
| Assignment 5 |
Week 11 | November 8 to November 12 | Interfaces and Polymorphism |
- Polymorphism
- Accessing parent classes: the super reference
- Abstract classes
- Interfaces
|
- 2nd ed
- 5.4, 7.4 - 7.6
- 3rd ed
- 5.5, 7.3 - 7.5
- 4th ed
- 6.5, 9.1 - 9.6
| |
Week 12 | November 15 to November 19 | Exceptions |
- Exception objects
- Throwing exceptions
- Catching exceptions
- Exception propagation
|
- 2nd ed
- 8.1
- 3rd ed
- 8.0
- 4th ed
- 10.1 - 10.4
| Assignment 6 |
Week 13 | November 22 to November 26 | Recursion and Data Structures |
- Recursion
- Dynamic memory allocation
- Linked lists
|
- 2nd ed
- 11.1 - 11.3, 12.1 - 12.2
- 3rd ed
- 11.0 - 11.2, 12.0 - 12.1
- 4th ed
- 11.1 - 11.3, 12.1 - 12.2
| |
Week 14 | November 29 to December 3 | Data Structures |
- More on linked lists
- Stacks
- Queues
|
- 2nd ed
- 12.3 - 12.4
- 3rd ed
- 12.2 - 12.3
- 4th ed
- 12.3 - 12.5
| The last day of lectures for sections 1 and 3 is Dec 3,
and for section 2 is Nov 30. |