CS101 Fall 2025: Lab 08
🚀 The final project of our course is to develop a software application from a researched idea. The project will include coding all parts of the application (from scratch) using elements gained from class, and using techniques that you will have to research yourself. Before any code can be written, we are going to spend some time to determine the idea behind the application. This idea generation is important as it will help you to define (and maintain) the project scope, and envision the outcome of the completed application. In addition, beginning with an idea will allow you to begin your work with a focus on time management.
In this assignment, you will brainstorm and develop three potential project ideas for your semester-end course project. By the completion of this lab, you will have explored different project possibilities, researched their feasibility, anticipated project scope, and prepared detailed descriptions of the ideas that motivate you. You will also have a place to start when the final project details are released soon. This project is your opportunity to showcase your programming skills and creativity, but please remember that the project must be feasible within the time constraints alloted by the time we have left in our course.
- Assigned: Thursday, 13th November 2025 at 2:30pm
- Due: Thursday 20th November 2025 at 2:35pm
- Expiration: Thursday, 27th November 2025 at 2:35pm
Note: the expiration date is the last date you can submit your work for a grade.
By the end of this assignment, you will:
- Develop creative and technically feasible project ideas
- Research existing solutions and identify areas for innovation
- Assess the technical complexity and scope of programming projects
- Plan for individual or group collaboration
The semester-end project is your opportunity to demonstrate mastery of the programming concepts and skills that you have developed throughout CS101. In the final project (the details to be released later), you will be creating an application that showcases your abilities. Following from the general programming examples provided below, your project could be for a tool, a game, an analysis program, an artistic demonstration, or any other type of software that interests you. Note: While the provided examples may seem ambitious, you could follow their leads to find your own niche-project that interests you. Therefore, in order to prepare for your project, you must first invest time to ascertain your interests and motivations before embarking on the programming work. In this lab, you will brainstorm and research three distinct project ideas that you could potentially implement for your final project. You can work individually on the final project, or in a group of up to three (3) students.
As you research possible ideas for your project, you will discuss your thoughts, references and motivations. Please be sure to use clear and meaningful language as you address tthe questions of your writing/reflection.md document.
-
Describe the Project
- Function: What does it do?
- Users: Who would use it?
- Problem Solving: What problem does it solve or what value does it provide?
-
Research and Resources
- Identify 2-3 tutorials, libraries, or resources you used in your idea formation process to learn about the application domain
- Cite specific documentation or learning materials
- Explain what these bring to your project. Please be specific about what you learned from the resource. For instance, what is the value of the resource to your idea?
-
Individual or Group Decision
- Would you tackle this as an individual or with a group?
- If group: how would you divide the work? Who will complete which tasks? Why is it necessary to have a group working on this project?
- If individual: why is it appropriate for solo work?
Some potential ideas that may serve to inspire your idea search. Note: These ideas are perhaps better though of as "starting points" for project as they may be too complicated for the limited time fot the project. Your project ideas could be inspired from the following themes.
- Text-based adventure game with inventory system
- Battleship or chess with AI opponent
- Conway's Game of Life with different rule sets
- Dungeon crawler with procedural generation
- Card game simulation (Poker, Blackjack, etc.)
- Personal finance tracker with spending insights
- Weather data analyzer with trend predictions
- Sports statistics analyzer
- Stock market simulator
- Survey data processor with graphs
- Task management system with priorities
- Study flashcard app with spaced repetition
- Password manager with encryption
- File organizer that sorts by type/date
- Recipe manager with meal planning
- Web scraper for tracking prices
- Automated email/message sender
- File backup system
- Code snippet manager
- Music playlist generator based on mood
- Chatbot with conversation memory
- Quiz generator from text input
- Collaborative note-taking system
- Simple social network simulator
- Recommendation engine
- Math tutor with adaptive difficulty
- Physics simulation (projectile motion, collisions)
- Sorting algorithm visualizer
- Encryption/decryption tool
- Geometry calculator with visualization
- a Demonstration or visualization of mathematical fractals
- Music composition tool
- Digital drawing application
- Story generator using random prompts
- Poetry generator based on themes
🚀 If these ideas are not helpful, then see what you can find on your own that interests you! 💡✨
Some general ideas about what makes a successful project idea for this assignment.
- Start early - Good ideas need time to develop
- Be specific - "A game" is too vague. Instead discuss what kind of game. Add more details when describing the game. for instance, describe your idea as a "turn-based strategy game where players manage resources and collect coins and stars in a map" is better
- Research thoroughly - Understanding what's possible is crucial especially for the time that we have in this lab and for the project itself.
- Think about users - Who will use this and why?
- Be realistic - Some ambitious is good, but too much ambition may prevent the completion of the project. Think about possible (not impossible) ideas.
- Project Timing - Remember that you will have only a few weeks to implement the work.
- Show your work - Explain your thinking process, your citations and research in reaching the idea.
- No Copying, No plagiarism - Ensure your ideas are to be original and not direct copies of existing projects
- Do not choose ideas that are too simple - "A calculator" will not meet the complexity requirements. Remember this class is about learning programming concepts beyond basic input/output!
- Do not be too ambitious - "A full 3D Role Playing Game" is beyond the scope
- Do not copy existing projects - Inspiration is fine, but your implementation must be original
- Do not ignore the group complexity rule - Group projects must be 3x the work
- Do not pick projects you're not interested in - You'll be working on this for weeks!
- Do not forget to cite sources - Proper attribution is essential
- Instructor Review: Your instructor will review your three ideas to determine that they are not too ambitious or too simple for the final project.
- Feedback Session: You may receive guidance on scope and feasibility
- Final Project Release: Detailed requirements and rubric will be released next week
- Project Selection: Choose one of your three ideas (or a refined version) for your final project
- Group Formation: If working in a group, finalize team membership and determine who will do what. Remember, each person has to contribute equally to the coding and maintenance of the project.
- Implementation Begins: Start coding your chosen project after the project requirements are released!
- You'll choose one to actually implement for your final project
- You may combine elements from multiple ideas
- You can refine and adjust based on instructor feedback
- The other ideas remain as backup options if needed
- Reflection Document:
- Complete the File
writing/reflection.mdfile to address questions and explain your ideas in light of the requirements from above.
- Complete the File
🚀 As you are working on your lab, you are to commit and push regularly. The commands are the following.
git add -A
git commit -m "Your notes about commit here"
git pushSuper Important Advice!
After you have pushed your work to your repository, please visit the repository at the GitHub website (you may have to log-in using your browser) to verify that your files were correctly sent.
The grade that a student receives on this assignment will have the following components.
-
GitHub Actions CI Build Status [up to 10%]: For the lab08 repository associated with this assignment students will receive a checkmark grade if their last before-the-deadline build passes. This is checking baseline writing and commit requirements. An additional reduction will given if the commit log shows a cluster of commits at the end clearly used just to pass this requirement. An addition reduction will also be given if there is no commit during lab work times. All other requirements are evaluated manually.
-
Mastery of Technical Writing [up to 90%]: Students will receive a checkmark grade when the responses to the writing questions presented in the
reflection.mdreveal a proficiency of both writing skills and technical knowledge. To receive a checkmark grade, the submitted writing should have correct spelling, grammar, and punctuation in addition to following the rules of Markdown and providing conceptually and technically accurate answers.
Students who have questions about this project outside of the lab time are invited to ask them in the course's Discord channel or during instructor's or TL's office hours.
