Date | Topic and/or Event | Readings |
January 21/22 | Lecture 1: Introduction; Problem Set 1 Out; Lab 0: Setting Up and Refresher | |
January 24 | Lecture 2: Java You Know | Topic Notes: Java You Know |
January 27 | Lecture 3: More Java You Know | |
January 28/29 | Lecture 4: Lab 1: Java Interfaces | |
January 31 | Lecture 5: Interfaces; Problem Set 2 Out | Topic Notes: Interfaces |
February 3 | Lecture 6: Interfaces; Introduction to Inheritance | Topic Notes: Inheritance |
February 4/5 | Lecture 7: Lab 2: Introduction to Java Swing | |
February 7 | Lecture 8: More Inheritance; Problem Set 3 Out | |
February 10 | Lecture 9: Abstract Classes and and Inheritance Case Study | Bailey Ch. 7; Bailey's Structure Package: Code on GitHub, Javadoc |
February 11/12 | Lecture 10: Lab 3: More Java Swing | |
February 14 | Lecture 11: Designing a Graph Data Structure | Topic Notes: Graph Structure Design; Bailey Ch. 16 |
February 17 | Lecture 12: Spatial Data Structures | Topic Notes: Spatial Data Structures |
February 18/19 | Lecture 13: Lab 4: Java Graphics and Mouse Events | |
February 21 | Lecture 14: More Quadtrees; More Event-Driven Programming | |
February 24 | Lecture 15: Event-Driven Programming: Dragging | Topic Notes: Event-Driven Programming |
February 25/26 | No Labs: Optional Review during first hour of each lab meeting | |
February 26 | Evening Exam | |
February 28 | Lecture 16: More Event-Driven Programming; Problem Set 4 Out | |
March 2 | Lecture 17: Custom Graphics Objects; Introduction to Animation | Topic Notes: Threads and Animation |
March 3/4 | Lecture 18: Lab 5: Object-Oriented and Recursive Graphics | |
March 6 | Lecture 19: More Threads and Animation | |
March 9-13 | Spring Break! | |
March 16-20 | Extended Pandemic Break | |
March 23 | Lecture 20: Dangers of Concurrency; Problem Set 5 Out | |
March 24/25 | Lecture 21: Lab 6: Animation | |
March 27 | Lecture 22: Keyboard Events; More Animation | Topic Notes: Keyboard Events; Topic Notes: More Threads and Animation |
March 30 | Lecture 23: More Advanced Animation; Final Project Introduction | |
March 31/April 1 | Lecture 24: Lab 7: Memory with Threads | |
April 3 | Lecture 25: Exam Review | |
April 6 | Lecture 26: Thread Safety | |
April 7/8 | Exam 2 During Lab Meetings | |
April 9-13 | Easter Break | |
April 14/15 | Lecture 27: Lab 8: Threads for Parallel Processing | |
April 17 | Lecture 28: Java Packages | Topic Notes: Packages and Jar Files; Java Tutorial page: Controlling Access to Members of a Class |
April 20 | Lecture 29: Jar Files, Collisions, and Branches in Git | Topic Notes: Animation with Collisions |
April 21/22 | Lecture 30: Lab 9: Working with Regular Expressions | |
April 24 | Lecture 31: Merge Conflicts; Files, NIO.2 and Exceptions; Java Odds and Ends | Topic Notes: Files and Exception Handling; Java Tutorial page: File I/O (Featuring NIO.2); Topic Notes: More Java: Odds and Ends |
April 27 | Lecture 32: More Java: Odds and Ends | Covariant Return Type in Java; 5 Java concepts explained: Overloading, overriding, shadowing, hiding, and obscuring |
April 28/29 | Lecture 33: Lab Recaps; Final Project Work | |
May 1 | Office Hours Only, No Lecture Meetings | |
May 4 | Lecture 34: Course Review and Wrapup (during regular time slots) | |
May 4 | Lecture 35: Final Project Demos (7-9 PM) | |
May 7 | Final Exam, 1:30-3:30 | |
|