Computer Science 225
Advanced Programming
Spring 2022, Siena College
Links will be added here with additional information about lectures and problem sets. All assignment dates are subject to change, and are provided only as a general guideline until the actual assignment is posted.
Date | Topic and/or Event | Readings |
January 24 | Lecture 1: Introduction and Overview; Problem Set 1 Out | Topic Notes: Java You Know |
January 26/27 | Lab 1: Java and Data Structures Refresher (in Canvas and GitHub) | |
January 28 | Lecture 2: Java You Know | Topic Notes: Interfaces |
January 31 | Lecture 3: Interfaces | |
February 2/3 | Lab 2: Java Interfaces (in Canvas and GitHub) | |
February 4 | Snow Day! | |
February 7 | Lecture 4: More Interfaces; Anonymous Classes; Problem Set 2 Out | |
February 9/10 | Lab 3: Introduction to Java Swing (in Canvas and GitHub) | |
February 11 | Lecture 5: Inheritance | Topic Notes: Inheritance |
February 14 | Lecture 6: Inheritance | |
February 16/17 | Lab 4: More Java Swing (in Canvas and GitHub) | |
February 18 | Lecture 7: Object-Oriented Programming; Problem Set 3 Out | |
February 21 | Lecture 8: Inheritance Case Studies | Topic Notes: List Structure Design |
February 23/24 | Lab 5: Java Graphics and Mouse Events (in Canvas and GitHub) | |
February 25 | Snow Day! but watch the short video | ;Topic Notes: Graph Structure Design; Bailey Ch. 16 |
February 28 | Lecture 9: Spatial Data Structures | Topic Notes: Spatial Data Structures |
February 28 | Evening Exam 1 | |
March 2/3 | No Labs due to Evening Exam | |
March 4 | No Class: SIGCSE Technical Symposium 2022 | |
March 7 | Lecture 10: Event-Driven Programming; Quadtrees and Traversals | Topic Notes: Event-Driven Programming |
March 9/10 | Lab 6: Quadtrees and More Java Graphics (in Canvas and GitHub); Problem Set 5 Out | |
March 11 | Lecture 11: Event-Driven Programming Practice | |
March 14 | Lecture 12: Introduction to Animation | Topic Notes: Threads and Animation |
March 16/17 | Lab 7: Recursive Graphics and Graphics Objects (in Canvas and GitHub) | |
March 18 | Lecture 13: Animation and Threads | |
March 21-25 | Spring Break - No Classes or Labs | |
March 28 | Lecture 14: Dangers of Concurrency; Problem Set 6 Out; Final Project Out | Topic Notes: Keyboard Events |
March 30/31 | Lab 8: Animation (in Canvas and GitHub) | |
April 1 | Lecture 15: Memory and Threads | Topic Notes: More Threads and Animation |
April 4 | Lecture 16: More Threads and Concurrency | |
April 6/7 | Lab 9: Working with Regular Expressions (in Canvas and GitHub) | |
April 8 | Lecture 17: Recaps | |
April 11 | Lecture 18: Review | |
April 12/13 | Exam 2 | |
April 13/14 | No Labs: Easter Break | |
April 15/18 | No Classes: Easter Break | |
April 20/21 | Lab 10: Threads for Parallel Processing (in Canvas and GitHub) | |
April 22 | Lecture 19: Thread Safety; Java Packages | Topic Notes: Packages and Jar Files |
April 25 | Lecture 20: Java Packages | Topic Notes: Animation with Collisions; Java Tutorial page: Controlling Access to Members of a Class |
April 27/28 | Lab 10: Threads for Parallel Processing (in Canvas and GitHub), continued | |
April 29 | Lecture 21: Jar Files and Animation with Collisions | |
May 2 | Lecture 22: Java Odds and Ends; Course Review and Wrapup | Topic Notes: More Java: Odds and Ends;Enum Types at the Oracle Java Tutorials, Covariant Return Type in Java; 5 Java concepts explained: Overloading, overriding, shadowing, hiding, and obscuring; Topic Notes: Files and Exception Handling; Java Tutorial page: File I/O (Featuring NIO.2) |
May 4/5 | Lab 11: Advanced Inheritance and Java Odds and Ends (in Canvas and GitHub) | |
May 6 | Academic Showcase: Final Project Demos 10-11 AM, RB 340 | |
May 8 | Final Exam, High Noon | |