CS349 W24

User Interfaces

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.

You are expected to use your own computer for these assignments, A0 will ensure your setup works.

Schedule

Assignment Released Due Date
A0 Setup Mon Jan 8 Fri Jan 19 at 6 PM
A1 Canvas Fri Jan 19 Fri Feb 2 at 6 PM
A2 SimpleKit Fri Feb 2 Fri Feb 16 at 6 PM
A3 Vanilla Fri Mar 1 Fri Mar 15 at 6 PM
A4 Preact Fri Mar 15 Fri Mar 29 Sat Mar 30 at 6 PM

General Assignment Policies

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

Late Submissions

You are expected to commit your assignment solution to your repository before the posted deadline.

Please do not expect course staff to answer Piazza posts about an assignment after the deadline has passed.

Out-of-scope Language Features

In principle, there's no restriction on using JavaScript or TypeScript language features not covered by the course, unless they're described in the assignment restrictions. But note all required language features needed for an assignment are covered in lectures and demos.  By "features not covered by the course" we're referring to something like ES6 Sets or TypeScript generics, not additional methods for a feature we cover already (like the CanvasRenderingContext2D).

If you choose to use features not covered by the course, be aware:

  1. We won't help you with issues related to those features in office hours or on Piazza.

  2. TAs may not be familiar with those features, so we strongly recommend you add some explanation to your README to justify why you use them and provide some background about how they relate to the features we do cover. For example, what is the advantage of using Set over an Object or Array? (this is to avoid losing marks and having to file a remark request later).

  3. Using those features will attract additional scrutiny of your source code for potential assignment requirement violations, plagiarism, and un-documented use of GenAI. So in addition, consider:

(a) you need to make absolutely certain those features don't violate assignment restrictions;

(b) if you learned about those features from an online source or a GenAI suggestion, you must clearly document the source and be ready to explain how those features and why you use them;

(c) those features won't be covered on an exam, so you're depriving yourself of the opportunity to use the assignment to learn course material;

(d) you better learn exactly how those features work before using them due to item #1, #3a, and #3b

Academic Integrity

Please review policies for Academic Integrity, Using Code from Other Sources, and Using Advanced AI Systems under Course Policies.

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 and cheating are severe. Please read the available information about academic integrity very carefully.

page last updated

©2024 Daniel Vogel

Cheriton School of Computer Science, University of Waterloo

Made with ❤ using Eleventy, Tailwind, and Alpine.js