Courses using version control will use a combination of GitHub and Classroom 50, supported by GitHub Education. Together, these tools provide the repository, assignment-management, version-control, and development workflow used throughout programming courses.
Programming courses, unless otherwise noted, will use Classroom 50 and GitHub for programming assignments, development, version control, and repository management. Blackboard remains the official submission and grading record. Programming courses are expected to follow strict versioning and committing best practices. Other courses that involve programming may have relaxed requirements, which will be explained within those courses.
Programming is not just writing code. Professional software development requires version control, disciplined workflows, testing, documentation, and the ability to manage software as it changes. My courses are designed to keep academic work as close to professional practice as reasonably possible, so GitHub is part of the development process—not simply a place to submit assignments.
This is even more important in the AI-Integrated Classroom. AI can generate code; your advantage comes from knowing how to direct, evaluate, test, modify, and manage that code as a software professional. GitHub makes that development process visible and gives you practical experience with tools and practices you can carry beyond the classroom.
You will need a personal GitHub account to participate in programming courses. You do not need a separate school GitHub account, and GitHub Education student benefits are not required. However, eligible students may wish to apply for GitHub Education student benefits for access to additional developer tools and services.
Use the same GitHub account throughout the course. Your GitHub username must match the account registered with your instructor and the account you use when accepting Classroom 50 assignments.
Once your GitHub account is set up, you may read the Git and GitHub tutorial and watch the companion video lecture part 1 and video lecture part 2. The tutorial and video are normally assigned as part of the first programming assignment in most programming courses, so you may also wait until the first assignment to complete it.
GitHub, Classroom 50, Blackboard, and your local development environment each have a different role in the assignment process. Understanding those roles makes the workflow much simpler.
When an assignment is complete, you do not upload the project files to Blackboard. You submit the normal GitHub web URL for the assignment repository. Blackboard records that the assignment is ready for grading; the actual programming work, project files, commit history, and Classroom 50 information remain in GitHub.
The following is the normal recurring workflow for a Classroom 50 programming assignment. The linked detailed student guide below explains the complete process, including first-time authorization, screenshots, and repository details. This section is only a high-level summary of the recurring workflow for each assignment.
main branch.
edit → test → commit → push → repeat.
.git URL, an individual file or commit, a pull
request, or the Classroom 50 assignment-acceptance link.
The Assignment Workflow above is intended as a quick reference. For your first assignments, use the complete illustrated student guide:
Classroom 50 Student Assignment Guide (PDF)
The guide provides complete instructions and screenshots for joining the course organization, first-time Classroom 50 authorization, accepting an assignment, understanding the generated repository, cloning with SSH, developing and pushing work, checking autograding feedback, and submitting the finished repository through Blackboard.
New students should follow the detailed guide closely for the first few assignments. Once the process becomes familiar, the Assignment Workflow section above should normally be enough to remind you of the recurring process.
Instructors interested in setting up Classroom 50 should visit the Instructor Resources page and contact me with any questions.