Course Outline
CS125 has the following major sections:
- Phase 1: Simple programs (weeks 1 to 4).
- Phase 2: Using objects (weeks 4 to 7).
- Phase 3: Simple user-defined objects (weeks 7 and 8).
- Phase 4: Structured data (weeks 9 and 10).
- Phase 5: More Advanced objects (weeks 11 and 12).
The detailed outline:
- Week 1:
- Introduction to the course
- Computer hardware and memory; programming languages (Sav 1.1)
- A First Java application program (Sav 1.3)
- Compilers, interpreters and (virtual) machines (Sav 1.1, 1.3)
- Using an IDE
- Tokens, types, and values (Sav 2.1)
- Number systems and data representation (Sav 2.1)
- Week 2:
- Basic program structure (Sav 2.1)
- Variables and constants (Sav 2.1, 2.4)
- Operators (Sav 2.1)
- Expressions and simple statements (Sav 2.1)
- The class String (Sav 2.2) including a brief overview
of objects (i.e., methods, classes, but not constructors)
- Simple output (through a friendly library) (Sav 2.3)
- Week 3:
- Conditional statements: if-else (Sav 3.1)
- Logical and boolean expressions (Sav 3.1)
- Nested and compound statements (Sav 3.1)
- Week 4:
- Loops: while (Sav 3.2)
- Different kinds of loops (for, do-while) (Sav 3.2)
- Nesting loops (Sav 3.3)
- Tracing and debugging (Sav 3.3)
- Week 5:
- Defining methods (Sav 4.1)
- Invoking methods on objects of user defined classes (Sav 4.1)
- Simple parameters (Sav 4.1)
- Return values (Sav 4.1)
- Instance variables (Sav 4.1)
- local variables (Sav 4.1)
- Week 6:
- Scope, visibility and persistence; encapsulation (Sav 4.1, 4.2)
- Accessor and mutator methods (Sav 4.2)
- Variables of a class type and objects, writing your own
classes (Sav 4.3)
- Week 7:
- Objects in the memory model (Sav 4.3)
- Objects as parameters (Sav 4.3)
- Methods calling methods; helper methods being
private (Sav 5.1)
- Static methods and variables (Sav 5.2)
- Week 8:
- Top down design, systematic testing (Sav 5.3)
- Overloading (Sav 5.4)
- Writing constructors (Sav 5.5)
- Week 9:
- Arrays: declaration, creation and indexing (Sav 6.1)
- Arrays of primitive types (Sav 6.1)
- Iterating through arrays (Sav 6.1)
- Arrays as parameters and return values (Sav 6.2)
- Arrays of objects (Sav 6.2)
- Week 10:
- Searching arrays and simple array processing (Sav 6.3)
- Sorting an array (selection sort) (Sav 6.4)
- Two dimensional arrays (Sav 6.5)
- Week 11:
- Class structure and inheritance (Sav 7.1)
- Accessing the parent class (Sav 7.1)
- Overriding methods (Sav 7.1)
- Simple OO dispatch (Sav 7.1)
- Week 12:
- Inheritance (Sav 7.2)
- History of computing (not in Savitch, except as little asides)