# Assignments

This page is a master list of all assignments and due dates for the course. It will be updated as assignments are made available.

**Assignments are due at 2:30pm**, unless otherwise noted. I will often make them due slightly later in Gradescope to account for upload delays, last-minute problems, and whatnot; but ultimately you are responsible for setting aside enough time to submit each assignment on time.

Solutions, when available, are password-protected; the course username and password are on the Moodle site.

Note that the estimated time to complete each assignment is just that: an estimate. It assumes that you are fluent in Java through the 121 material, and have had no difficulty with in-class exercises and homework assignments. If these assumptions are not true, you will want to budget more time. Don’t take an estimated time of an hour to mean that it’s OK to start at 1pm on the due date!

Start assignments early so the course staff can clarify points of confusion for you and give you time to complete the assignment.

- Due Jan 26 Thu: Homework 01: Variables and Scope [solution]
- Due Jan 31 Tue: Homework 02: Control Flow [solution]
- Due Jan 31 Tue: Lab 01: Installing the JDK
- Due Jan 31 Tue: Lab 02: Installing the Eclipse IDE
- Due Feb 02 Thu: Homework 03: Classes, Objects, Methods [solution]
- Due Feb 02 Thu: Programming Assignment 01: Hamspam
- Quiz Feb 06 Mon: Quiz 1 will be in discussion; sample questions
- Due Feb 07 Tue: Homework 04: Namespaces, Packages, and the CLASSPATH [solution]
- Due Feb 10 Fri: Homework 05: Arrays and Lists [solution]
- Due Feb
~~07 Tue~~10 Fri: Lab 03: Using JARs - Due Feb
~~09 Thu~~11 Sat**10pm**: Programming Assignment 02: Bus Simulator - Due Feb 16 Thu: Homework 06: Linked Lists [solution]
- Due Feb 17 Fri
**10pm**: Programming Assignment 03: Working with Strings and Lists - Due Feb 21 Tue: Homework 07: Working with Lists [solution]
- Due Feb 23 Thu: Homework 08: Writing Comparators [solution]
- Due Feb 24 Fri
**10pm**: Programming Assignment 04: DNA Sequence Assembly - Quiz Feb 27 Mon: Quiz 2 will be in discussion; sample questions
- Due Feb 28 Tue: Homework 09: Math Sets, Java Sets [solution]
- Due Mar 02 Thu: Homework 10: Hashcodes [solution]
- Due Mar 03 Fri
**10pm**: Programming Assignment 05: Similarity Detector - Due Mar
~~07 Tue~~08 Wed: Homework 11: More Help for Santa [solution] - Due Mar
~~09 Thu~~10 Fri: Homework 12: Map Finger Exercises [solution] - Due Mar 10 Fri
**10pm**: Programming Assignment 06: Needle in a Haystack - Quiz Mar 20: Quiz 3 will be in discussion; sample questions
- Due Mar
~~21 Tue~~22 Wed: Homework 13: Static Method Finger Exercises [solution] - Due Mar 24 Fri
**10pm**: Programming Assignment 07: Image Mosaic - Due Mar 28 Tue: Homework 14: Running Time [solution]
- Due Mar 30 Thu Homework 15: Sorting [solution]
- Due Mar 31 Fri
**10pm**: Programming Assignment 08: Information Retrieval - Quiz Apr 03 Mon: Quiz 4 will be in discussion; review material
- Due Apr 04 Tue: Homework 16: Graphs [solution]
- Due Apr 06 Thu: Homework 17: Simple Graph Search [solution]
- Due Apr 11 Tue: Homework 18: Directed Graph Search [solution]
- Due Apr 11 Tue
**10pm**: Programming Assignment 09: Search - Due Apr 13 Thu: Homework 19: Directed Graph Search, Again [solution]
- Quiz Apr 18 Tue: Quiz 5 will be in discussion
- Due Apr
~~18 Tue~~19 Wed**10pm**: Programming Assignment 10: Crawler - Due Apr 20 Thu: Homework 20: Growable Stack [solution]
- Due Apr 25 Tue: Homework 21: Reversing a Queue [solution]
- Due Apr
~~25 Tue~~26 Wed**10pm**: Programming Assignment 11: War - Quiz May 01 Mon: Quiz 6 will be in discussion; sample questions
- Due May 02 Tue: Homework 22: Recursion [solution]
- Due May 02 Tue
**10pm**: Programming Assignment 12: Hangman

- Exam May 10 Wed 3:30pm in ILC S140; an exam review is now available