| Week |
Session |
Topics |
Reading |
Summaries and References |
DyKnow notebooks |
Homework |
Projects |
| 0 |
0 before Thu Sep 4 Details |
- Install software
- Read syllabus
|
|
|
Complete Homework 0
before the first class session.
|
|
| 0 |
1 Thu Sep 4 Details |
- Version control: TortoiseSVN and Subclipse
- IDE: Eclipse
- UML class diagrams
- Object-Oriented Programming (OOP)
- Review: Object references, Iteration
|
- Section 2.10: Object References
- Section 6.1 through 6.4: Iteration
- Chapters 1 through 6 (skim)
|
|
|
Homework 1 |
|
| 1 |
2 Mon Sep 8 Details |
- Introduce capsule format
- UML class diagrams
- Object-Oriented Programming (OOP)
- Java interfaces
- Javadoc documentation
- Using APIs
|
- Chapters 1 through 6 (skim)
|
|
|
Homework 2 |
|
| 1 |
3 Wed Sep 10 Details |
- Unit testing using JUnit
- Implementing interfaces: a tool to writing to a specification
- Using generics
|
- Chapters 1 through 6 (skim)
|
|
|
Homework 3 |
|
| 1 |
4 Thu Sep 11 Details |
- Using APIs: Sun's and user-defined ones
|
- Section 11.1: Reading and Writing Text Files
|
|
|
Homework 4 |
|
| 2 |
5 Mon Sep 15 Details |
- Exceptions
- Example of capsule deliverables
|
- Chapter 11: Input/Output and Exception Handling
|
|
|
Homework 5 |
|
| 2 |
6 Wed Sep 17 Details |
- UML as a communication tool
- Writing methods you don't call
- The this keyword
- Inheritance
|
- Sections 9.1 - 9.2
- Sections 10.1 - 10.4
|
|
|
Homework 6 |
|
| 2 |
7 Thu Sep 18 Details |
- Polymorphism and dynamic binding
|
|
|
|
Homework 7 |
|
| 3 |
8 Mon Sep 22 Details |
- Polymorphism and dynamic binding
- Arrays and ArrayLists
- Debugging in Eclipse
|
|
|
|
Homework 8 |
|
| 3 |
9 Wed Sep 24 Details |
- Implementing Graphical User Interfaces (GUIs) - Swing
- UML class diagrams
|
|
|
|
Homework 9 |
|
| 3 |
10 Thu Sep 25 Details |
- Using Swing
- Event-driven Programming
- Iterative Enhancement Plans
|
|
|
|
Homework 10 |
|
| 4 |
11 Mon Sep 29 Details |
- Adapter classes
- Nested classes
|
|
|
|
Homework 11 |
|
| 4 |
12 Wed Oct 1 Details |
- Function objects
- The Comparator interface
- Using generic classes
|
|
|
|
Homework 12 |
|
| 4 |
13 Thu Oct 2 Details |
|
|
|
|
Homework 13 |
|
| 5 |
14 Mon Oct 6 Details |
- Iterators
- The Big-Oh notation
- Big-Oh analysis: loops
|
|
|
|
Homework 14 |
|
| 5 |
15 Wed Oct 8 Details |
- The Java Collection hierarchy
- Choosing data structures based on efficiency
- Big-Oh analysis: sequential lists, linked lists
|
|
|
|
Homework 15 |
|
| 5 |
16 Thu Oct 9 Details |
- Implementing linked lists
- Recursion on recursive data structures
- Trees
|
|
|
|
Homework 16 |
|
| 6 |
17 Mon Oct 13 Details |
- Implementing linked lists
- Recursion on recursive data structures
|
|
|
|
Homework 17 |
|
|
| 6 |
EXAM Mon Oct 13 Details |
- Written Exam 1:
Sequential, linked and recursive data structures;
Choosing appropriate data structures and algorithms on them;
and Big-Oh analysis
- 1 hour EVENING EXAM, 7 - 8 p.m., in G-310
- You may start as early as 6 p.m. & stay as late as 9 p.m.
|
|
|
|
| 6 |
18 Wed Oct 15 Details |
- Project workday, attendance is optional
|
Homework 18 |
|
|
| 6 |
-- Thu Oct 16 |
Fall break, no class |
|
|
|
|
|
|
| 7 |
19 Mon Oct 20 Details |
- Project management: Scrum, standup meetings
- Recursive algorithms
- Tail recursion and Memory tables
|
|
|
|
Homework 19 |
|
| 7 |
20 Wed Oct 22 Details |
|
|
|
|
Homework 20 |
|
| 7 |
21 Thu Oct 23 Details |
- Advanced GUI topics
- File input/output
|
|
|
|
Homework 21 |
|
| 8 |
22 Mon Oct 27 Details |
- Algorithms for searching and their efficiency
- The Java Collection hierarchy: Algorithms and data structures for searching
|
|
|
|
Homework 22 |
|
| 8 |
23 Wed Oct 29 Details |
- Algorithms for sorting and their efficiency: insertion sort, selection sort
- The Java Collection hierarchy: Algorithms and data structures for sorting
|
|
|
|
Homework 23 |
|
| 8 |
24 Thu Oct 30 Details |
- More algorithms for sorting and their efficiency: mergesort, quicksort
- Lower bound on sorting; linear-time sorting algorithms
|
|
|
|
Homework 24 |
|
| 9 |
25 Mon Nov 3 Details |
- C for Java Programmers
- C: Compiling
- C: Expressions
- C: Statements, including branching and iteration
- C: Functions, writing and calling
- C: Arrays
- C: Pointers and call by reference
- C: Input and output
|
|
|
|
Homework 25 |
|
|
| 9 |
26 Wed Nov 5 Details |
- C: Arrays and Pointer arithmetic
- C: Pointers and memory allocation
|
|
|
|
NO Homework 26 |
|
|
| 9 |
EXAM Wed Nov 5 Details |
- Written Exam 2:
Recursion ;
Choosing appropriate data structures and algorithms on them;
and Big-Oh analysis
- 1 hour EVENING EXAM, 8 - 9 p.m.
- You may start as early as 7:15 p.m. & stay as late as 10 p.m.
|
|
|
|
| 9 |
27 Thu Nov 6 Details |
- C: Pointers and memory allocation, continued
- C: File input/output
|
|
|
|
NO Homework 27 |
|
|
| 10 |
28 Mon Nov 10 Details |
- C: Strings
- C: String library functions
|
|
|
|
Homework 28 |
|
|
| 10 |
29 Wed Nov 12 Details |
- C: Structures
- Implementing linked lists in C
|
|
|
|
Homework 29 |
|
|
| 10 |
30 Thu Nov 13 Details |
- Implementing trees in C
- Course evaluations
- Written Exam 3: Compare and contrast C and Java
|
|
|
Homework 30 |
|
| 11 |
31 Tue Nov 18 Details |
- Final Exam (optional), Tuesday November 18, 6 p.m., Olin 257
|
|
|
|