Assignments are meant to provide meaningful, engaging experiences in constructing interfaces while giving you the opportunity to create applications you will want to share with others. However, the assignments in this course often require a significant amount of time. Do not underestimate the time it takes to code interactive applications!


There are five assignments: A0 is ungraded (i.e. worth 0%). Assignments A1 through A4 are worth 15-30% each (see below). You can work on these assignments in a lab (MC 3004), or on your own personal machine. For Android assignments, you additionally need an Android phone: you can work in an Android virtual machine, an Android phone if you own one, or one of the Android phones that is on reserve in the DC library.

All of the assignments require you to use IntelliJ, with a specific project and directory structure. The starter project (linked below) is an IntelliJ project that you can modify for your assignments.

# Description Weight Due date Code
A0 Getting Started N/A Fri May 22 starter project
A1 Command-Line: Search Files Utility (Java) 15% Fri Jun 5 intro samples
A2 Drawing and Events: Beat'em up (Java) 25% Fri Jun 26 JavaFX and graphics samples
A3 Widgets and Layouts: Avatar Maker (Java) 30% Fri Jul 17 events, widget and layout samples
A4 Widgets, Layout and multitouch: Notepad (Java Android) 30% Fri Aug 7 Android samples

Due Dates

Assignments are due by 11:59 PM on the date listed above. Late assignments will not normally be accepted. If you do not submit by the deadline, you will receive a grade of 0% for the assignment unless one of the following conditions is met:

Submission Policies

Specific submission policies are listed on each assignment. The following general policies apply to every assignment.

Regarding these policies, we recognize that honest mistakes occur. If the TA can easily modify a build, correct an errant character in a source file, or comment out small portions of code so they can build or run your code, they will do so. If you made an error submitting to git, and you can provide substantial proof that you completed your solution on time, we may still accept it. However, in either case, marks will still be deduced based on factors such as the amount of extra effort required by the TA to rectify your mistake, amount of time past the deadline, etc.

Academic Integrity

Assignments are your own individual work:

MOSS (Measure of Software Similarities) is used in this course as a means of comparing students' assignments to ensure academic integrity. We will report suspicious activity, and penalties for plagiarism/cheating are severe. Please read the available information about academic integrity very carefully.