Week # | Dates | General topic | Subtopics | Readings* | Events |
Week 1 | January 4 to January 7 | Computer Systems |
- Introduction and course outline
- Computer Hardware
- Digital information
- Number systems (specially binary numbers)
- Computer Networks
- Programming
| 1.1 - 1.6, Appendix B. | |
Week 2 | January 10 to January 14 | 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.1 - 2.5 | Assignment 1 |
Week 3 | January 17 to January 21 | Primitive Data Types, Objects, Input/Output |
- Primitive Data Types
- Arithmetic operators
- Standard I/O
- String concatenation
- Creating objects
- Class libraries
| 2.1 - 2.6, 3.2, 3.3 | |
Week 4 | January 24 to January 28 | 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 | January 21 to February 4 | 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 | February 7 to February 11 | 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 | February 14 to February 18 | 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 | February 21 to February 25 | *STUDY* break |
- *STUDY*
- Party
- Sleep
- Relax
|
- Ch. 1 - 6
- Don Quixote
- War and Peace
- The Illiad
| |
Week 9 | February 28 to March 4 | 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: March 3rd @ 6:00 - 7:30pm @ ENGMC 204 |
Week 10 | March 7 to March 11 | 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 11 | March 14 to March 18 | 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 12 | March 21 to March 25 | 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 13 | March 28 to April 1 | 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 14 | April 4 to April 8 | 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 15 | April 11 to April 13 | 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
| |