Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Projects

Programming projects constitute 25% of your final grade, broken down into two parts. My goal is to give you 5 projects throughout the semester. Your lowest project grade will be automatically dropped.

General Guidelines

Projects in this course will be in C++ unless otherwise stated. You are expected to track project progress using GitHub. Projects will ask you to solve one or a series of problems, with varying difficulty.

My goal is for projects to help you focus on the concepts you are practicing in class, but also have you handle other tasks that often come with building programs (e.g., handling I/O, handling different requirements, etc.). As such, you will often be given only a handful of files that you are expected to write in. You can include other files (e.g., other .h and .cpp files), but do not go overboard (if you submit a project with 100 extra files when you do not need them, we are going to have a problem).

Project Submission

You will submit your projects to me in the form of a GitHub repository, where I can see any and all commits made during your project. You are expected to know how to use Git and GitHub. My general rule of thumb:

Tip

Commit early, commit often.

If you give me a GitHub repo with a single commit of thousands of lines of code, this is not good conduct and signals to me you are likely using AI to write large portions of your codebase. The projects in this course should not require such large codebases; please keep your code contained and free of bloat.

Autograding

Each project will include an autograder with some tests you can run yourself. Instructions will be included in each project repository.

Project Grades

The code you submit for your project will consist of 15% of the 25% of your final grade. The autograder will be used to test your code and output your grades.

Project Evaluation

Each project will have a project evaluation. This evaluation occurs after you have submitted the code for your projects. Evaluations will be in-class, written assessments of the projects you have submitted. The evaluation will test your understanding of the code you submitted. This portion of your projects will account for the remaining 10% of the total 25% project grade.

Warning

You should never be submitting code you do not understand. This is bad practice and can cause devastating issues down the line in real life scenarios.

GitHub Repository for all Projects

Please see my GitHub repo for this course here. It contains the relevant information you need to set up your projects and any other code I add to the repository (e.g., adding code we did in class).

Project 1

Date Assigned: Monday, August 24th, 2026.
Due Date: Sunday, September 6th, 2026, by 11:59pm Central Time.
Project Instructions:https://github.com/arblock-uic/uic-cs-402-fall-2026/tree/project-1/project-1#readme
Direct link to GitHub branch: https://github.com/arblock-uic/uic-cs-402-fall-2026/tree/project-1/ (this includes instructions for how to set up your repository).

Project 2

Date Assigned: Monday, September 7th, 2026.
Due Date: Sunday, September 27th, 2026 by 11:59pm Central Time.
Project Instructions:https://github.com/arblock-uic/uic-cs-402-fall-2026/blob/project-2/project-2/README.md
Direct link to GitHub branch:https://github.com/arblock-uic/uic-cs-402-fall-2026/tree/project-2

Project 3

Date Assigned: Wednesday, September 30th, 2026.
Due Date: Sunday, October 25th, 2026, by 11:59pm Central Time.
Project Instructions:https://github.com/arblock-uic/uic-cs-402-fall-2026/blob/project-3/project-3/README.md
Direct link to GitHub branch:https://github.com/arblock-uic/uic-cs-402-fall-2026/tree/project-3