Lab 5: Project Progress Demonstration and Repository Checkpoint
Overview
By this point in the semester, you should have already begun meaningful work on your course project. The purpose of this lab assignment is to provide a structured checkpoint where you demonstrate the progress you have made so far and document the current state of your project. Rather than focusing on completing a specific feature or milestone, this assignment is intended to capture your development trajectory, encourage consistent progress, and give you an opportunity to reflect on what has been accomplished and what remains to be done.
Projects evolve over time, and successful software development is rarely linear. Instead, it involves iterative exploration, experimentation, debugging, and refinement. This lab serves as a progress snapshot of your project at this stage of the semester. The emphasis is not on perfection or completeness, but rather on evidence that you have begun building, testing, and organizing the components of your project.
You will demonstrate your progress by submitting your project repository. Your repository should contain the work you have completed so far, including code, documentation, experiments, prototypes, or any other materials that reflect your development process.
This assignment is primarily intended as a progress verification milestone rather than a graded evaluation of project quality. As such, the primary requirement is simply that you submit your repository showing the work you have completed.
Goals of This Assignment
This lab is designed to accomplish several objectives:
- Encourage steady and continuous progress on your project.
- Provide a checkpoint to verify that students have begun meaningful work.
- Give you an opportunity to organize and document your project repository.
- Help identify potential issues early in the development process.
- Promote good development practices such as version control and incremental commits.
- Provide visibility into your implementation approach and development process.
In many real-world development environments, teams regularly produce progress snapshots, development builds, or internal checkpoints. This assignment mirrors that practice by requiring you to share the current state of your project.
What You Need to Do
Your task for this lab is simple:
Submit your project repository showing the work you have completed so far.
Your repository should contain the current implementation of your project and reflect the progress you have made up to this point. There are no strict requirements regarding how complete your project must be, but the repository should demonstrate that you have started implementing your project and are actively working toward your final deliverable.
The repository may include, but is not limited to:
- Source code files
- Experimental code or prototypes
- Partial implementations
- Configuration files
- Build scripts
- Test programs
- Documentation or notes
- README files
- Planning documents
- Diagrams or design sketches
Not every project will include all of these elements, and that is perfectly acceptable. What matters most is that your repository accurately reflects the work you have done so far.
Evidence of Progress
While there are no strict requirements regarding what must be implemented at this stage, your repository should ideally show signs of active development. Examples of evidence of progress include:
- Initial project structure or directory layout
- Early implementations of core components
- Working prototypes or proof-of-concept programs
- Experiments exploring key technologies or libraries
- Commit history demonstrating incremental development
- Notes about design decisions or architecture
- Basic documentation explaining what has been implemented so far
Again, the goal is not to have a finished project, but to demonstrate that you have begun the development process.
Version Control Expectations
Your project should be managed using a version control system (such as Git). Using version control is an essential part of modern software development, and this assignment provides an opportunity to practice maintaining a well-organized repository.
Your repository should ideally show:
- Multiple commits over time
- Meaningful commit messages
- Evidence of iterative development
However, the primary requirement remains simply that you submit the repository containing your current progress.
README and Documentation (Recommended but Not Required)
Although not strictly required, it is strongly recommended that your repository include a README file describing the current state of your project. This file can help explain:
- The goal of your project
- What has been implemented so far
- What remains to be completed
- How to run or build the project (if applicable)
- Any challenges or open questions
Documentation is a valuable habit that will help both you and others understand your project as it evolves.
What Counts as “Progress”?
Progress can take many forms. For some projects, progress may involve writing substantial amounts of code. For others, it may involve research, experimentation, or architectural planning.
Examples of legitimate progress might include:
- Implementing part of a core algorithm
- Creating a basic user interface
- Building the initial infrastructure for your application
- Integrating a library or external system
- Writing test cases
- Prototyping ideas that will later be refined
- Designing system components
Even if your implementation is incomplete or still evolving, it still counts as progress.
What If My Project Is Not Working Yet?
That is completely fine.
Many projects go through extended periods where the system does not fully compile, run, or behave as expected. Development is inherently iterative and often involves experimentation, debugging, and revising earlier work.
For this assignment, your project does not need to be functional or complete. The only requirement is that your repository reflects genuine effort and development activity.
Submission Instructions
To receive credit for this lab, you must submit your project repository, either in person, via Slack, or email.
Make sure that the repository contains the work you have completed so far.
If you are using a hosted repository (e.g., GitHub, GitLab, etc.), ensure that:
- The repository is accessible
- The link provided works correctly
If the repository is private, make sure the instructor has access.
Grading
This assignment is graded primarily on completion.
You will receive credit if you submit a repository that demonstrates that you have begun working on your project.
There are no strict requirements regarding:
- Code completeness
- Project functionality
- Project quality
- Number of features implemented
This assignment exists to verify that progress has begun and to provide an opportunity for early feedback if needed.
Academic Integrity
All work submitted must be your own. While it is acceptable to use external libraries, frameworks, or publicly available tools, your repository should reflect your own effort and development process.
If your project builds on existing codebases, clearly document that in your repository.
Final Notes
Think of this assignment as a development checkpoint rather than a traditional lab exercise. Its purpose is to encourage steady forward movement on your project and provide a moment to reflect on what you have accomplished so far.
Software projects rarely begin fully formed. Instead, they grow through experimentation, iteration, and gradual improvement. This lab captures the early stages of that process.
Your future self will thank you for the progress you make now.
Good luck, and keep building! 🚀