This document outlines the weekly assignments for an entire Java programming course (PRG 421). Over the 5 weeks, students will write Java programs to demonstrate singleton patterns, ArrayLists, iterators, JDBC, and concurrency. They will also work as a learning team to improve programs submitted by teammates from previous weeks. The programs and improvements relate to core Java topics like collections, file I/O, databases, and threading.