CS112F. Objects and Algorithms

Extends the foundation developed in CS111F to encompass object-oriented programming and design.

Prerequisites: CS111F

Syllabus:

  1. Fundamental programming constructs: Basic syntax and semantics of a higher-level language; variables, types, expressions, and assignment; simple I/O; conditional and iterative control structures; functions and parameter passing; structured decomposition
  2. Object-oriented programming: Object-oriented design; encapsulation and information-hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies; collection classes and iteration protocols; fundamental design patterns
  3. Fundamental data structures: Primitive types; arrays; records; strings and string processing; pointers and references; linked structures; strategies for choosing the right data structure
  4. Event-driven and concurrent programming: Event-handling methods; event propagation; managing concurrency in event handling; exception handling
  5. Using APIs: API programming; class browsers and related tools; programming by example; debugging in the API environment
  6. Algorithmic strategies: Brute-force algorithms; greedy algorithms; divide-and-conquer; backtracking; heuristics
  7. Fundamental computing algorithms: Simple numerical algorithms; sequential and binary search algorithms; sorting algorithms
  8. Virtual machines: The concept of a virtual machine; hierarchy of virtual machines; intermediate languages; security issues arising from running code on an alien machine
  9. Fundamental techniques in graphics: Hierarchy of graphics software; using a graphics API
  10. Software development methodology: Fundamental design concepts and principles; structured design; testing and debugging strategies; test-case design; programming environments; testing and debugging tools

Units covered:
PF1 Fundamental programming constructs   6 core hours (of 9)
PF2 Algorithms and problem-solving   1 core hour (of 6)
PF3 Fundamental data structures   5 core hours (of 14)
PF5 Event-driven programming   2 core hours (of 4)
AL2 Algorithmic strategies   2 core hours (of 6)
AL3 Fundamental computing algorithms   2 core hours (of 12)
PL1 Overview of programming languages   1 core hour (of 2)
PL2 Virtual machines   1 core hour
PL4 Declarations and types   2 core hours (of 3)
PL5 Abstraction mechanisms   2 core hours (of 3)
PL6 Object-oriented programming   8 core hours (of 10)
SE1 Software design   3 core hours (of 8)
SE2 Using APIs   2 core hours (of 5)
SE3 Software tools and environments   1 core hour (of 3)
SE5 Software requirements and specifications   1 core hour (of 4)
SE6 Software validation   1 core hour (of 3)

Notes:
[to be supplied]

Online resources for CS112F


 
CC2001 Report
December 15, 2001