Projects
Programming projects constitute 25% of your final grade. I expect there to be 4-6 projects throughout the semester. Your lowest project grade will be automatically dropped.
General Guidelines
Projects in this course will be in C++ unless othewise 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:
Commit early, commit often.
Project Evaluation
Each project will have a project evaluation. This evaluation occurs after you have submitted the code for your projects. It will consist of two parts.
Correctness
The first portion will evaluate the correctness of your code. I will run several tests to see if your code passes. This is purely point-based and will (most likely) be handled automatically.
Understanding
The second portion will require you (or your group) to present your program to me. You are expected to present to me how and why your program works, and expected to answer any questions I ask about your code. These evaluations will happen the week a project is submitted, and will be by appointment.
You should never be submitting code you do not understand. This is bad practice and can cause devastating issues down the line.
In the event you fail this portion of the project, you are allowed to resubmit your project within 1 week to get half credit (you are again expected to pass the “Understanding” portion of the project). If you fail again, there are no more attempts and you get a 0 for this project.
GitHub Repository for all Projects
Please see my GitHub repo for this course here. It contains the relevant information you need to setup your projects and any other code I add to the repository (e.g., adding code we did in class).
Project 1
Date Assigned: September 09, 2025.
Due Date: Wednesday, September 24th, 2025, by 11:59pm Central Time.
Project Instructions: https://github.com/alexander-r-block/uic-cs-402-fall-2025/tree/project-1/project-1#readme
Direct link to GitHub branch: https://github.com/alexander-r-block/uic-cs-402-fall-2025/tree/project-1 (this includes instructions for how to set up your repository).
Project 2
Date Assigned: October 23, 2025.
Due Date: Thursday, November 13, 2025 by 11:59pm Central Time.
Project Instructions:https://github.com/alexander-r-block/uic-cs-402-fall-2025/blob/project-2/project-2/README.md
Direct link to GitHub branch:https://github.com/alexander-r-block/uic-cs-402-fall-2025/tree/project-2/
Project 3
Date Assigned: November 22, 2025.
Due Date: Sunday, December 14, 2025 by 11:59pm Central Time.
Project Instructions:https://github.com/alexander-r-block/uic-cs-402-fall-2025/blob/project-3/project-3/README.md
Direct link to GitHub branch:https://github.com/alexander-r-block/uic-cs-402-fall-2025/tree/project-3/