Week | Dates | Days and Topics | Readings | Homework
|
---|
0
| Sep. 2 - Sep. 3
| Day 1: Introduction to Course, Java and Development
Environment
| None
|
|
1
| Sep. 6 - Sep. 10
| Day 2: Process of implementing classes
| 2.1 - 2.10, 3.1 - 3.8
| PA 1
|
Day 3: Fundamental Data Types
| 4.1 - 4.6, 5.1 - 5.2
| PA 2
|
Day 4: Conditional Statements, Loops
| 5.3 - 5.5, 6.1 - 6.6
| PA 3
|
2
| Sep. 13 - Sep. 17
| Day 5: Data structures: arrays and ArrayLists
| 7.1 - 7.8
| PA 4
|
Day 6: Designing classes
| 8.1 - 8.4, 8.8
| Design Docs
|
Day 7: Polymorphism, interfaces, GUIs
| 9.1 - 9.3
| Testcases
|
3
| Sep. 20 - Sep. 24
| Day 8: Inheritance, Interfaces and Polymorphism
| 10.1, 10.2, 10.4, 10.6 (pp 435, 436)
|
|
Day 9: Overriding and Overloading methods, Static variables
| 8.6-8.7, 10.3, 10.5
| Game of Life
|
Day 10: Composing classes
| 10.6, 10.7, 8.9
|
4
| Sep. 27 - Oct. 1
| Day 11: Software design cycle, Review for
exam 1
| 12.1 - 12.2
| Facebook
|
Day 12: Exam 1
|
|
|
Day 13: File I/O, Exceptions
| 11.1 - 11.7
|
5
| Oct. 4 - Oct. 8
| Day 14: Recursion
| 13.1 - 13.2
| Pig Latin
|
Day 15: Efficiency and Tail recursion
| 13.3 - 13.5
| Recursion
|
Day 16: Linked Lists
| 15.1 - 15.2
| More Recursion
|
6
| Oct. 11 - Oct. 13
| Day 17: Linked Lists, Iterators
|
| Linked Lists - Part 1
|
Day 18: Stacks and Queues
| 15.3 - 15.4
|
|
7
| Oct. 18 - Oct. 22
| Day 19: Software engineering tools, Introduction to team project
| 12.3 - 12.5
| Linked Lists - Part 2
Abstract
Data Types
|
Day 20: Introduction to analysis of algorithms, Sorting,
Review for exam 2
|
| First round of CRC cards and user
stories
|
Day 21: Exam 2
|
|
|
8
| Oct. 25 - Oct. 29
| Day 22: Big-Oh Analysis, analysis of a sorting algorithm
|
| Second round of CRC cards and
user stories. First round of UML class diagram
|
Day 23: Analysis of another sorting algorithm
| 14.1 - 14.3
|
|
Day 24: Merge sort and its analysis, Writing compact code
| 14.4 - 14.5
| Third round of CRC cards and
user stories. Second round of UML class diagram
|
9
| Nov. 1 - Nov. 5
| Day 25: Generics, Comparable Interface
| 17.1 - 17.5
| Analysis Homework
Cycle 1 code
|
Day 26: Introduction to Multi-threading
| 20.1 - 20.2
|
Day 27: Multi-threading: Dealing with race conditions
| 20.3 - 20.6
| Cycle 2 code
|
10
| Nov. 8 - Nov. 12
| Day 28: Function objects, Comparators
|
| Cycle 3 code
|
Day 29: Project demos, acceptance testing
|
| Software demonstration/Acceptance
testing
Programming project 20.1
|
Day 30: Practice of Analysis of Algorithms, Review for final exam, Course evals
|
| Final deliverables
|