CS349 Fall 2024

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 Wed Sep 4 Fri Sep 13 at 6 PM
A1 Canvas Mon Sep 16 Fri Oct 4 at 6 PM
A2 SimpleKit Mon Oct 7 Fri Oct 25 at 6 PM
A3 Vanilla Mon Oct 28 Fri Nov 8 at 6 PM
A4 Preact Mon Nov 11 Fri Nov 29 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

© Daniel Vogel

Cheriton School of Computer Science, University of Waterloo

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