Assignments

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 four assignments, and each one is worth 20% (4 x 20% is 80% of your final grade).

Specifications

All of the assignments require you to design and build an application that meets specific functional requirements. You are expected to use use your own computer (see setup). Specific assignment details are listed below.

# Topic Description Videos Weight Due Date
A1 Input & Interaction (Java) FindFiles Utility Starting A1 20% Fri Oct 2 @ 11:59 PM
A2 Drawing & Events (Java/JavaFX) Snake Game Starting A2 20% Fri Oct 23 @ 11:59 PM
A3 Widgets & Layouts (Java/JavaFX) SketchIt 20% Fri Nov 13 @ 11:59 PM
A4 Mobile & Multitouch (Java/Android) PDF Reader [starter code!] 20% Mon Dec 7 @ 11:59 PM

Submission Policies

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

Using Your Git Repo for Submissions

To get a local copy of your Git repository:

  1. git clone https://username@git.uwaterloo.ca/cs349-fall2020/username.git assignments (replacing username with your WatID). This will produce a directory named `assignments` with empty subdirectories `A1` though `A4`.
  2. Your assignment should be created in the appropriate subdirectory.

To submit an assignment:

  1. Make sure that your required files are in the appropriate subdirectory, in the repository that you cloned above.
  2. git add all of your files.
  3. git commit to commit them to the repository.
  4. git push to send changes to the server.

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 are met:

When granting an extension, we tend to grant an extension for the number of days that you were reported ill. We strongly prefer that you complete assingments and rarely defer or shift of the weight of the assignments.

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.