COMP-202 - Introduction to Computing 1 (Winter, 2004)

Welcome
News
Syllabus
Calendar
Assignments
Office hours
Hints
Links
Resources

Calendar

Week # Dates General topic Subtopics Readings Events
Week 1 January 5 to January 9 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 January 12 to January 16 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 January 19 to January 23 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 January 26 to January 30 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 February 2 to February 6 Repetition: loops

  • The while statement
  • The do/while statement
  • The for statement
  • Equivalence of loop statements
3.6 - 3.9
Week 6 February 9 to February 13 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 February 16 to February 20 Objects and Classes (cont.)

  • Static variables and methods
  • Recursion
5.1, 11.0 - 11.1
Week 8 February 23 to February 27 Winter Break Chill out and catch-up
Week 9 March 1 to March 5 Objects and Classes (cont.)

  • Object relationships: aggregation (the ``has-a'' relation)
  • Method decomposition
  • Method overloading
4.3 - 4.5 Assignment 4, Midterm: March 1st
Week 10 March 8 to March 12 Enhancing Classes

  • References (or pointers) and aliases
  • Review
5.0, 5.2 - 5.4
Week 11 March 15 to March 19 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 March 22 to March 26 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 March 29 to April 2 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 April 5 to April 9 Dynamic Data Structures and Software Engineering

  • Dynamic memory allocation
  • Linked lists
  • Stacks
  • Queues
  • The Software development cycle
12.1 - 12.3 Tutorial