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
Week 1 January 6 to January 10 Computer Systems

  • Introduction and course outline
  • Computer Hardware
  • Digital information
  • Number systems (specially binary numbers)
  • Computer Networks
  • Programming
1.1 - 1.4 (core), Appendix B.
Week 2 January 13 to January 17 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
1.5 (core), 1.6 (fun), 2.1 - 2.3 (core)
Week 3 January 20 to January 24 Primitive Data Types, Objects, Input/Output

  • Primitive Data Types
  • Arithmetic operators
  • Standard I/O
  • String concatenation
  • Creating objects
  • Class libraries
2.4 - 2.8 (core)
Week 4 January 27 to January 31 Conditional control flow

  • The if statement
  • Boolean expressions revisited
  • The switch statement
  • Equivalence of conditional statements
  • More operators
2.9-2.10 (fun) 3.1 - 3.5 (core)
Week 5 February 3 to February 7 Repetition: loops

  • The while statement
  • The do/while statement
  • The for statement
  • Equivalence of loop statements
3.6 - 3.9 (core) 3.10 (fun)
Week 6 February 10 to February 14 Static methods

  • Functions in general
  • Static methods: definition and invocation
  • Parameter passing
  • Scope
  • Static variables in a single class
None
Week 7 Midterm exam February 17 to February 21 Objects and Classes

  • Objects: attributes, state and behaviour.
  • Anatomy of a Class: attributes and methods
  • Encapulation
  • Classes as Types
  • Creating new objects
  • Object relationships: aggregation (the ``has-a'' relation)
  • Method decomposition
  • Method overloading
4.1 - 4.6 (core), 4.7 - 4.8 (fun)
Week 8 February 24 to February 28 Study break

  • Relax
  • Catch-up
  • Do the assignments
All you have not read due to procrastination
Week 9 March 3 to March 7 Enhancing Classes

  • References (or pointers) and aliases
  • Static variables and static methods vs normal attributes and methods
  • Interfaces and polymorphism
5.1 - 5.4 (core) 5.5 - 5.6 (fun)
Week 10 March 10 to March 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.1 - 6.5 (core) 6.6 (fun)
Week 11 March 17 to March 21 Inheritance and Exceptions

  • Subclasses
  • Shadowing attributes
  • Overriding methods
  • Polymorphism
  • Accessing parent classes: the super reference
  • Class hierarchy
  • Exceptions
7.1 - 7.5 (core) 7.7 - 7.8 (fun) 8.1 (core)
Week 12 March 24 to March 28 I/O Streams and Recursion

  • I/O Streams
  • Saving and loading text files
  • Introduction to recursion
8.2 - 8.4 (core) 8.5 (fun) 11.1 - 11.3 (core) 11.4 (fun)
Week 13 March 31 to April 4 Dynamic Data Structures

  • Dynamic memory allocation
  • Linked lists
  • Stacks
  • Queues
12.1 - 12.3 (core) 12.4 (fun)
Week 14 April 7 to April 11 Introduction to Software Engineering and Review

  • The Software development cycle

    • Analysis: problem domain models and requirements
    • Design
    • Prototypes
    • Implementation
    • Testing
    • Maintainance
  • Language features that aid Software Engineering

    • Reusability
    • Abstraction
    • Modularity
  • Review
10.1 - 10.4 (core) 10.5 (fun)