Week # | Dates | General topic | Subtopics | Readings | Events |
Week 1 | September 3 to September 5 | 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 8 to September 12 | 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 15 to September 19 | 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 22 to September 26 | Conditional control flow |
- The if statement
- Boolean expressions revisited
- The switch statement
- Equivalence of conditional statements
- More operators
| 3.0 - 3.5 | Assignment 2 |
Week 5 | September 29 to October 3 | Repetition: loops |
- The while statement
- The do/while statement
- The for statement
- Equivalence of loop statements
| 3.6 - 3.9 |
Week 6 | October 6 to October 10 | Objects and Classes |
- Objects: attributes, state and behaviour.
- Anatomy of a Class: attributes and methods
- Classes as Types
- Creating new objects
- Parameter passing
- Scope
| 4.0 - 4.2 | Assignment 3 |
Week 7 | October 13 to October 17 | Objects and Classes (cont.) |
- Static variables and methods
- Recursion
| 5.1, 11.0 - 11.1 | |
Week 8 | October 20 to October 24 | Objects and Classes (cont.) |
- Object relationships: aggregation (the ``has-a'' relation)
- Method decomposition
- Method overloading
| 4.3 - 4.5 | Assignment 4, Tutorial |
Week 9 | October 27 to October 31 | Enhancing Classes |
- References (or pointers) and aliases
- Review
| 5.0, 5.2 - 5.4 | Midterm |
Week 10 | November 3 to November 7 | Graphics and Applets |
| 1.5, 2.10, 2.11, 3.10, 4.6, 4.7 | |
Week 11 | November 10 to November 14 | Arrays and Vectors |
- Arrays of primitive data objects
- Arrays of general objects
- Two-dimensional and n-dimensional arrays
- Sorting (Selection sort and Insertion sort)
- Vectors: growing arrays
| 6.0 - 6.4 | Assignment 5 |
Week 12 | November 17 to November 21 | Inheritance and Interfaces |
- Subclasses
- Shadowing attributes
- Overriding methods
- Polymorphism
- Accessing parent classes: the super reference
- Class hierarchy
| 7.0 - 7.4, 5.5, 7.5 | |
Week 13 | November 24 to November 28 | Exceptions, I/O Streams and Data Structures |
- Exceptions
- I/O Streams
- Saving and loading text files
- Introduction to data structures
| 8.0 - 8.3, 12.1 - 12.3 | Assignment 6 |
Week 14 | December 1 to December 5 | Dynamic Data Structures and Software Engineering |
- Dynamic memory allocation
- Linked lists
- Stacks
- Queues
- The Software development cycle
| 12.1 - 12.3 | Tutorial |