Computer Science 225
Advanced Programming

Spring 2021, 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.

"Bailey" refers to the free online textbook Java Structures: Data Structures in Java for the Principled Programmer, "Root 7" Edition (a free online textbook) by Duane Bailey. This text has been made freely available as a PDF by the author.

Date

Topic and/or Event Readings
February 22 Lecture 1: Introduction and Overview; Problem Set 1 Out Topic Notes: Java You Know
February 24/25 Lab 1: Java and Data Structures Refresher (in Canvas and GitHub)
February 26 Lecture 2: Java You Know
March 1 Lecture 3: Java Interfaces Topic Notes: Interfaces
March 3/4 Lab 2: Java Interfaces (in Canvas and GitHub) Topic Notes: Inheritance
March 5 Lecture 4: More Interfaces; Anonymous Classes; Introduction to Inheritance (online synchronous)
March 8 Lecture 5: Recaps and Problem Set 2 Intro (online asynchronous)
March 10/11 Lab 3: Introduction to Java Swing (in Canvas and GitHub)
March 12 Lecture 6: Inheritance
March 15 Lecture 7: Abstract Classes
March 17/18 Lab 4: More Java Swing (in Canvas and GitHub)
March 19 Lecture 8: Problem Set 3 Intro; Inheritance Case Study
March 22 Lecture 9: Inheritance Case Studies Topic Notes: Graph Structure Design; Bailey Ch. 16
March 24/25 Lab 5: Java Graphics and Mouse Events (in Canvas and GitHub)
March 26 Lecture 10: Spatial Data Structures Topic Notes: Spatial Data Structures
March 29 Lecture 11: Quadtrees
March 31/April 1 No labs, exam week
April 1 Evening Exam
April 2 Lecture 12: Quadtrees and Traversals; More Interesting Event Driven Programs Topic Notes: Event-Driven Programming
April 5 Easter Monday; No Class
April 7/8 Lab 6: Quadtrees and More Java Graphics (in Canvas and GitHub)
April 9 Lecture 13: More Event-Driven Programming
April 12 Lecture 14: Introduction to Animation Topic Notes: Threads and Animation
April 14/15 Lab 7: Recursive Graphics and Graphics Objects (in Canvas and GitHub)
April 16 No class: CCSCNE 2021 Conference
April 19 Lecture 15: Threads and Animation
April 21/22 Lab 8: Animation (in Canvas and GitHub)
April 23 Lecture 16: Dangers of Concurrency
April 26 Lecture 17: More Threads; Handling Keyboard Events Topic Notes: Keyboard Events; Topic Notes: More Threads and Animation
April 28 No Lab; President's Holiday
April 29 Exam 2: 10:40 AM-12:40 PM, RB 304 and RB 306
April 30 Lecture 18: Thread Safety; Java Packages Topic Notes: Packages and Jar Files
May 3 Lecture 19: Creating a Java Package Java Tutorial page: Controlling Access to Members of a Class
May 5/6 Lab 9: Threads for Parallel Processing (in Canvas and GitHub)
May 7 Lecture 20: Jar Files and Animation with Collisions Topic Notes: Animation with Collisions
May 10 Lecture 21: Lab 9 Work
May 12/13 Lab 10: Working with Regular Expressions (in Canvas and GitHub)
May 14 Lecture 22: Threads and Memory
May 17 Lecture 23: 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 19/20 Lab 11: Advanced Inheritance and Java Odds and Ends (in Canvas and GitHub)
May 21 Lecture 24: Project Demonstrations
May 25 Final Exam, 11:00 AM - 1:00 PM, RB 350