Note: this schedule is just an approximation...
Further Note: this schedule is quite out of date. We are still following the approximate order shown here.
| week |
day |
readings |
topic |
|
W
E
E
K
1 |
28 |
ch 1 |
OOP: Statics
(Intro. to Java) |
Primitive Java
Memory organization
|
| 29 |
sec 7.1 |
Induction |
Formulas: iterative, closed, recursive forms
Weak & strong mathematical induction (over N) |
| 30 |
sec 7.1-5 |
Recursion |
Iterative vs. recursive programs
Stack frames during recursion |
| 1 |
none |
Recursion: Parsing |
Applications: expression parsing & calculating |
| 2 |
ch 2 |
OOP: Dynamics |
Objects as instances of classes
Aliases, live and dead objects, garbage collection
Static and instance variables and methods
Basics of method dispatching & name resolution |
W
E
E
K
2 |
5 |
- |
- |
(Holiday) |
| 6 |
ch 3 |
OOP: Philosophy |
Heap allocation
Basic Java objects: String, Object, Array, etc.
Wrapper classes: Integer, Double, Boolean, etc. |
| 7 |
sec 6.5, [ch 17] |
ADT: Lists |
Linked Lists and their operations
Variations on linked lists |
| 8 |
|
ADT: Lists |
cont. |
| 9 |
[sec 7.3.5, ch 18] |
ADT: Trees |
Trees and their operations
Traversals
Applications: parsing, searching |
W
E
E
K
3 |
12 |
|
PRELIM I |
Induction, Recursion, Lists and Trees, OOP |
| 13 |
sec 4.4 |
OOP: Interfaces |
Interface rules
Implementing
Sub-types and type checking |
| 14 |
ch 4 |
OOP: Inheritance |
Overriding, hiding, shadowing
Static & dynamic binding
Keyword super |
| 15 |
2.5, 5.6, 5.1-3 |
OOP: Exceptions |
Exceptions & Exception Handling
|
| Searching |
Searching in arrays
Informal intro. to analysis |
| 16 |
sec 4.7, 6.1-5, 15 |
Generic Programming |
Iterators
Inner classes, Anonymous classes
Adapters design pattern |
W
E
E
K
4 |
19 |
8 |
Sorting |
Select, Merge, Quick
Complexity of searching |
| 20 |
5 |
Complexity |
Big-O notation
Formal intro. to analysis |
| 21 |
- |
Data Structures |
Intro. to data structures
Graphs, state spaces
sequence & search structures |
| 22 |
6.6, 16 |
ADT: Sequences |
Motivation, definitions
Stacks, queues |
| 23 |
6.9, 21 |
ADT: Sequences |
Stacks, queues, priority queues, heaps |
W
E
E
K
5 |
26 |
|
PRELIM II |
Sort, search, analysis, OOP features, ADT sequences |
| 27 |
18, 19.1-2 |
ADT: Searching |
Using lists, balanced trees, search trees |
| 28 |
18, 19.1-2 |
ADT: Searching |
Using lists, balanced trees, search trees |
| 29 |
6.7-8, 20 |
ADT: Hashing |
Hashing & Hash tables |
| 30 |
14 |
Graphs & Theory |
|
W
E
E
K
6 |
2 |
14 |
Graphs & Theory |
|
| 3 |
14 |
Graphs & Theory |
|
| 4 |
|
Correctness |
(optional) |
| 5 |
|
Structural Induction |
(optional) |
| 6 |
|
GUIs |
(optional) |
E
X
A
M
S |
9 |
|
Exams / Projects |
|
| 10 |
|
Exams / Projects |
|
|
We will be covering the following topics:
- Program Organization and Development
- Uses of modules/classes (information hiding, organizational, etc.)
- Object Oriented Programming
- Classes and objects
- Sub-typing
- Inheritance
- Interfaces
- Nested, inner and anonymous classes
- Abstract Data Types (a.k.a. generic programming)
- Lists, stacks, queues, priority queues, heaps, trees
- Binary search trees, hash tables
- Graphs and graph theory
- Algorithms
- Sorting
- Searching
- Basic graph theory and algorithms
- Program Analysis
- Asymptotic complexity (a.k.a. big-O notation)
- Correctness of programs (pre/post conditions, etc.)
- Recursion and Induction
- Structural and mathematical induction
- Recursive data structures
- Recursive programming
The following topics will not be covered, or will be de-emphasized:
- Graphical User Interfaces
- Applets
- Event-driven programming
- Swing / AWT
- Grammars and parsing
- Networking (sockets, web, etc.)
- File and advanced I/O processing
- Programming Styles
- Event-driven, program-driven, search-driven
- Streams, GUIs, Components/Adapters, etc.
- Functional programming
- Java Features
- Exceptions
- Data types, toolkits, and libraries
|
The following topics are prerequisites for CS 211:
- Basic Programming
- Variables, arithmetic, order of operations, etc.
- Simple control flow (if, while, and for loops)
- Methods/Functions
- Basic Java
- Basic types (int, double, char, String, etc.)
- Variables (int x; double y;)
- Arithmetic and casting (double z = (double) x / 2)
- Objects, Classes, Instances, Constructors
- ‘this’, ‘super’, ‘public’, ‘private’, ‘protected’, etc.
- Static and instance variables and methods
- Simple input/output using console and files
|