CS349 S24

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 local environment is setup properly.

Schedule

Assignment Due Date
A0 Setup Fri May 17 at 6:00 PM
A1 Canvas Fri June 7 at 6:00 PM
A2 SimpleKit Fri June 21 at 6:00 PM
A3 Vanilla Fri July 12 at 6:00 PM
A4 Preact Fri July 26 at 6:00 PM

General Assignment Policies

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

For accommodations/extensions due to illness or self-declared short-term absence, please refer to our Policies section.

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 work and why you used 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, Kris Frasheri

Cheriton School of Computer Science, University of Waterloo

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