Schedule
Day | Date | Lecture | Work due |
---|---|---|---|
Tue | June 20 | Lecture 1: Overview, structured programming, Java syntax, types Reading: Transition to Java, slides,code, (more) |
Assignment 1 [released] |
Wed | June 21 | Mini-Lecture 2, Discussion 1: Integrated Development Environments (IDEs) And Types handout, discussion code, slides, demo code |
Discussion activity 1 |
Thu | June 22 | Lecture 3: Objects Reading: Appendix B: Java Classes, Reference Semantics (more) Abstraction, encapsulation Reading: Prelude: Designing Classes—Encapsulation (more) slides, demo code |
|
Fri | June 23 | Lecture 4: Encapsulation cont, Specifications, testing, Scope, Arrays Reading: Appendix A: Documentation and Programming Style (more), slides |
Assignment 1 [due] Assignment 2 [released] |
Mon | June 26 | Lecture 5: Interfaces, subtyping Inheritance, dynamic dispatch, equality Reading: Appendix C: Creating Classes from Other Classes (more) slides, demo code |
|
Tue | June 27 | Test 1 | Test 1 |
Wed | June 28 | Discussion 2: Arrays, Testing, Polymorphism and the Collections class in java handout, discussion code |
Discussion activity 2 |
Thu | June 29 | Lecture 6: Exceptions, Autoboxing, Bags, Generics Reading: Java Interlude 2: Exceptions (more) slides, demo code |
|
Fri | June 30 | Lecture 7: Bags, Generics continued, linked dastructures Reading: Chapter 1: Bags; Java Interlude 2: Generics Chapter 2: Bag Implementations That Use Arrays; (more) Linked Structures Reading: Chapter 3: A Bag Implementation That Links Data (more) slides, demo code |
Assignment 2 [due] Assignment 3 [released] |
Mon | July 3 | Lecture 8: Efficiency and Recursion Reading: Chapter 4: The Efficiency of Algorithms Chapter 19: Searching (more) efficiency slides, recursion slides |
|
Tue | July 4 | Holiday | |
Wed | July 5 | Discussion 3: Java ADTs, Efficiency handout, discussion code |
Discussion activity 3 |
Thu | July 6 | Lecture 9: Recursion slides, demo code |
|
Fri | July 7 | Lecture 10: Trees slides, demo code |
Assignment 3 [due] Assignment 4 [released] |
Mon | July 10 | Lecture 11: Loop Invariants, Searching, Sorting slides, demo code |
|
Tue | July 11 | Test 2 | |
Wed | July 12 | Discusison 4: Invariants handout, code |
Discussion Activity |
Thu | July 13 | Lecture 12: Searching and Sorting slides, demo code |
|
Fri | July 14 | Lecture 13: Introduction to Graphs slides, demo code |
Assignment 4 [due] Assignment 5 [released] |
Mon | July 17 | Lecture 14: Graph traversals slides, demo code |
|
Tue | July 18 | Shortest Paths, Priority Queues slides |
|
Wed | July 19 | Discussion 5: Work on A5 | Discusison 5 Assignment 5 part 1 due as discussion |
Thu | July 20 | Lecture 15: Finishing up Graphs slides |
|
Fri | July 21 | Lecture 16: Hash Tables slides |
Assignment 5 Checkpoint Due |
Mon | July 24 | Lecture 17a: GUI and Concurrency slides,demo code |
|
Tue | July 25 | Test 3 | |
Wed | July 26 | Discussion 6: Concurrency, Iterators and Hash Tables handout, discussion code |
Discussion activity 6 |
Thu | July 27 | Lecture 17b: Wrap Up Concurrency and Synchronization slides,demo code |
|
Fri | July 28 | Lecture 18: Design patterns and software engineering And The Java ecosystem [Last Lecture] slides |
Assignment 5 due |
Mon | July 31 | ||
Tue | Aug 1 | Final Exam |