The assignments are designed to be cumulative skill-building exercises that will help you develop the knowledge and techniques necessary for building interactive web applications.

Some assignments will introduce important new material that isn’t directly covered in lectures, but will likely be present in demos.

Assignment submission and grading

You will submit all assignments through GitHub classroom. Instructions for setting this up are in the instructions for the first assignment.

All of the assignments will be autograded, meaning you will get near-instant feedback about your grade as you are working.

You may resubmit autograded assignments as many times as you wish, so feel free to keep trying until you find something that works.

Due dates

Due dates are there to guide you as to roughly where you should be relative to the time remaining in the semester. Assignment submission will not close at the due date. You can still push to your assignment code repositories after the due date and it will update your grade.

To be successful in COMP 426, it is crucial to keep up with submitting assignments regularly and plan for the future assignments. It is a big class that covers a lot of material and it can be easy to get behind or feel overwhelmed.

We will try to focus on workflow management and planning practices in this class, since they are not usually explicitly taught.

Plagiarism in programming assignments

We learn by example and use examples to inspire us and help shape our approaches to solving problems. That does not mean that it is okay to copy and paste code to solve a problem without attribution.

Most code examples you find will be but ONE example of how something can be done. There are myriad ways to do any given thing, and they are all right, just different. Some are more efficient than others, by some metric. Some are more elegant than others.

This is where you get to be creative. So, look at code, be inspired, and then BE CREATIVE.

Do your own work. Do not copy and paste the work of others.

Final term project (a99)

The final assignment for COMP 426 is a term project which you will complete as part of a team. Students will be assigned, based on interest, to teams of 5 to design and debug a single term project.

We will begin working on the final project within the first several weeks of the class.

Collaborative development

Each team members’s contribution to the project must be the result of their own individual effort. Be careful that you do not submit any code that you did not personally write.

Your contributions to your team’s project should be apparent in the GitHub repository itself. This is how we will track engagement.

If you adapt open source code, make sure that you are following the license that the developers/maintainers distribute with the code.

Submitting code copied from others or from the internet may result in your submission being flagged by the system for plagiarism.

Assignment list

See below for links to assignment instructions as they are posted.

Links to accept the GitHub Classroom assignment and access the starter code will be listed in Sakai.

a00 Setup
This assignment for COMP 426 will help you get through setting up tools and installing some of the basic software you will need to have for the course. It is a walkthrough for installing and setting up your development environment, including: Node.js, VIsual Studio Code, Chrome, git, and using GitHub Classroom for submissions.
a01 Node
This assignment for COMP 426 will help you get started working with Node.js and hacking your way through creating a webserver from scratch. This assignment is intended also to hone your skill at reading documentation and engaging in problem-solving.
a02 Functions and modules
This assignment for COMP 426 is intended to give you a sense of how to work with modules and functions in Node packages (and otherwise). This assignment is, as ever, an exercise in finding, reading, interpreting, and applying documentation.
a03 Make an API
This assignment for COMP 426 is intended to help you work through creating an API using Node.js and Express.js. This assignment is, as ever, an exercise in finding, reading, interpreting, and applying documentation.
a04 Databases, logs, errors, and middleware
This assignment for COMP 426 will help you create and connect a database and to record access and error logs and for your API server from a03 with some middleware. This is an important piece of building an API, because it allows you to break down what happened if something goes wrong. It also helps other developers use and deploy your software.
The midterm for COMP 426 is a survey, but it is also an exercise in following instructions and using the skills that you have been developing in this course.
a05 Human Interface
In this assignment, you will build an HTML human interface for your existing coinserver API. You will also document your API endpoints and consider package structure.
This optional assignment is intended to help you add a little polish to your HTML and CSS if you wish to do so. You can receive extra credit for it if you wish to submit it.
e02 React
Create a React app to calculate your grade.
a99 Final Project
Create a public health information app or system using an interface to interact with a backend API & database.
The final for COMP 426 is a survey, just like the midterm. You will submit it in exactly the same way. It includes a self-assessment and a team assessment.