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.
|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|
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:
- If you are ill, and speak with us prior to the due date, we may grant you an extension. We require a Verification of Illness (VIF) form signed by a doctor, which must also be submitted to the Math Undergraduate Office (MC 4022). Asking after the assignment deadline, even with a VIF, will result in a grade of 0%. The extension is intended to provide you with sufficient time to complete the assignment (typically we grant a number of extra days equal to the number of days that you were ill, as recorded on the VIF). We strongly prefer that you complete assingments and rarely defer or shift of the weight of the assignments.
- Everyone has 2 "slack days" that they can use at their discretion, to provide extra time for an assignment. Each slack day that you use extends an assignment by a day (i.e. you could get an automatic 1 day extension for an assignment by using 1 slack day). You must fill in a web form on this site, telling us how many of your allocated days to use up on a particular assignment, and it must be submitted before the deadline. You are responsible for keeping track of your own slack days (i.e. asking for a third slack by "by accident" will not work).
Specific submission policies are listed on each assignment. The following general policies apply to every assignment.
- Assignment A0 is not graded, but must be completed before any other assignments can be submitted.
- You may develop on your own machine (Windows, macOS, Linux), but you must confirm to the tools/versions specified in the assignment description. Typically this means running specific versions of Java etc. as specified in the assignment description. All required tools are also installed on MC lab computers.
- All required source code, assets (e.g. images, sound files) must be submitted for each assignment. If the TAs cannot run or build your submitted solution, you may receive a grade of 0%. Details on how a particular assignment should build are included in the assignment description.
- All submissions must made be via your Git repository. Assignments submitted by any other method (e.g. email) will not be graded.
- Assignments will be graded and returned approximately one week after the submission deadline. An announcement will be made on Piazza, indicating how to see your (confidential) grades and how to request a remark.
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.
Assignments are your own individual work:
- You must design and implement the assignments by yourself. There are no group assignments.
- You can use code examples provided in-class (i.e. in the public repo for the site). You are allowed to directly use or include portions of in-class samples in your assignments. Some assignments may also, at the instructor’s discretion, provide starter code that you can also use.
- You cannot use anyone else’s code in your assignments (this includes current or past students of this course), and you are prohibited from sharing your code with anyone else in the course. You can discuss how you accomplished something in general terms with other students, but under no circumstances may you directly share code.
- No third-party code or libraries are allowed in your assignments, other than those explicitly permitted by the assignment description. You should not use code you find on the Internet (e.g. GitHub, Stack Overflow, etc.). It is perfectly acceptable to search for a general technique (e.g. how does this class work?) but you cannot use any published code in your assignments.
- You should not make your code publicly available on any hosting sites (e.g. GitHub), even after the end of the term. If you wish to show your code to potential employers, you should post in a private/restricted repository instead.
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.