Computer Science 225
Advanced Programming

Spring 2022, Siena College

Course Schedule

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.


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