Skip to content

Assignments

Course Assignments

Assignments Overview

There will be 5 major assignments and will distributed over the course of the semester such that you will have two weeks to complete each assignment. Each of these assignments will help you to implement and gain experience with the different concepts and reinforce the material taught during lectures. These assignments will range from implementing simple web apps with a minimal feature set to Frontend and Backend development, to evaluating the user experience of a web app.

Collaboration & AI Assistant Policies

Collaboration Policy

Homeworks should be completed individually, without close collaboration with other students. You are free to discuss "high-level" ideas with other students in the class. However, you are not allowed to share code under any circumstance. If you have any doubts about this policy, ask Dr. Moran or Divesh. We are here to help!

Policy on the Use of AI Coding Tools

Recently, we have seen the introduction and proliferation of AI tools (e.g., OpenAI ChatGPT and GitHub CoPilot) that are able to aid software engineers in their work. In this class, it is perfectly acceptable to make use of these AI assistants, and in fact, I would encourage students to try these tools and become familiar with them. The main reason for this is that learning to use AI effectively is an emerging and important skill for software engineers, and I will cover some basics about how to use these tools in certain lectures.

When using AI assistants, please adhere to the following policies and suggestions:

  • Put Effort into Crafting High-Quality Prompts: Tools like ChatGPT and CoPilot, while useful, have serious limitations, and hence are often incorrect. If you provide minimum effort prompts, you will get low quality results. You will need to refine your prompts in order to get good outcomes. This will take concerted effort.
  • Be Aware of AI Limitations: Even if you have crafted well-constructed prompts, do not blindly trust anything an AI assistant tool says or outputs. If it gives a snippet of code, number, or fact, assume that it is wrong unless you either know it to be correct or check it with another source. You are responsible for any errors or omissions provided by the tool, and these tools tend to work best for topics you fully understand.
  • Give the AI Tool Proper Attribution: AI is a tool, and one that you must acknowledge using. Thus, you must provide these tools proper attribution if you use them for assignments. As such, you are required to provide a paragraph or two either in a comment (for Assignment 1) or in the README file (for Assignments 2-4) explaining what you used the AI for, and what prompts you used to get the results. Failure to do this will result in a violation of GMU's Honor Code.
  • Know When to Use and Not Use AI Tools Be thoughtful about when AI tools are useful and when they are not. Don't use the tool if it isn't appropriate, or if you do not have full grasp of a given concept from class.

Assignment Schedule & Instructions

All HWs are due by the time class begins (4:30pm) on the due date indicated, unless otherwise noted. See the full course schedule for additional information.

Assignment

Due Date

Assignment Description

Assignment 1: Javascript February 7th
Assignment 2: Backend Development March 9th
Assignment 3: Persistence & Frontend Development April 14th
Assignment 4: Interactive Frontend April 28th
Assignment 5: User Experience Design May 5th