Classroom 50

How to use Classroom 50 to work on and submit assignments

We will use Classroom 50 for the assignments in this course. Classroom 50 is a free, open-source alternative to GitHub Classroom for distributing, managing, submitting, and grading programming assignments through GitHub.

This guide covers the typical student workflow: accept an assignment, clone its repository, work locally, submit your work, and review feedback. Your instructor’s instructions for a particular assignment always take precedence over this general guide.

For more detail, see the official Classroom 50 Web Student Guide and CLI Student Guide.

Prerequisites

Before you start, make sure you have the following:

  1. A GitHub account. If you do not already have one, follow GitHub’s guide to creating an account. Use the same account throughout the course.

  2. Git installed. Download Git from the official Git website. See this tutorial if you need help installing Git.

  3. Access to the course’s GitHub organization. We will add you to the course roster later during the semester. GitHub may email you an organization invitation. You can accept it from the email, from Classroom 50, or by opening the assignment link.

  4. The Classroom 50 student command-line tool (recommended). The gh student submit command provides the most reliable submission workflow. It requires the GitHub CLI and the Classroom 50 student extension. After installing the GitHub CLI, run:

gh extension install foundation50/gh-student

For complete setup instructions, see the official Classroom 50 installation guide.

Getting started

1. Accept the assignment

We will provide a Classroom 50 assignment link. Open that link and:

  1. Select Sign in with GitHub and authorize Classroom 50 if prompted.
  2. Confirm that you are signed in with the GitHub account you use for this course.
  3. Accept the invitation to the course’s GitHub organization if Classroom 50 shows one.
  4. Review the assignment information and select Accept assignment.
  5. Wait while Classroom 50 creates and configures your assignment repository. Do not click the button repeatedly.
  6. Select Open repository when setup is complete.

The repository is created in the course’s GitHub organization, not in your personal account. It is normally private, although an instructor may configure an assignment to use a public repository. Classroom 50 will warn you before creating a public repository.

Important

Do not fork the starter repository yourself. Work only in the repository that Classroom 50 creates for you or your group.

If Classroom 50 reports that you are not yet a member, ask your instructor to add you to the course roster. Once the invitation arrives, accept it and try the assignment link again.

2. Clone the repository

Cloning downloads the assignment repository to your computer. On the GitHub page for your assignment repository, select Code and copy the HTTPS or SSH URL. Then open a terminal, navigate to the folder where you keep your coursework, and run:

git clone <repository_url>
cd <repository_folder>

Replace <repository_url> and <repository_folder> with the values for your assignment. You only need to clone a repository once.

Before starting a new work session, enter the repository folder and download any remote updates:

git pull

This is especially important if you work on more than one computer, collaborate on a group assignment, edit files on GitHub, or your instructor updates the assignment workflow.

3. Work on the assignment

Read the instructions and inspect the starter files in the repository. Use the editor or development environment of your choice. Work incrementally and test your work as you go.

Classroom 50 may add administrative files such as .classroom50.yaml and files under .github/workflows/. Do not edit or delete them unless your instructor explicitly tells you to do so.

4. Commit and push your progress

A commit records a meaningful checkpoint in the repository’s history. Save your files, then run:

git status
git add .
git commit -m "Describe the completed change"
git push

Commit and push regularly. A commit exists only on your computer until you push it to GitHub.

Note

Use short, descriptive commit messages that explain what the commit accomplishes. For example, Add input validation is more useful than Update. See How to Write a Git Commit Message for additional guidance.

For a group assignment, pull your teammates’ changes before you begin and again before you push:

git pull

If Git reports a conflict, resolve it carefully before continuing. Do not force-push unless your instructor explicitly tells you to do so.

5. Submit the assignment

The recommended submission method is the Classroom 50 student command. From inside the cloned assignment repository, run:

gh student submit

This snapshots the files that should be submitted, pushes the submission to the repository’s default branch, and starts grading when autograding is enabled. It also prints links to the relevant GitHub pages.

Submission behavior can vary by assignment:

  • Every-push assignments: a normal git push triggers grading. Using gh student submit is still recommended for the final submission.
  • Submit-only assignments: a normal push saves your work but does not trigger grading. You must run gh student submit or follow the tag instructions supplied by your instructor.
  • Milestone-tag assignments: your instructor may require a specific tag such as phase1 or complete. Use exactly the tag name given in the assignment instructions.
Important

Do not create, close, or merge a pull request to submit unless your instructor explicitly asks you to. If Classroom 50 created a Feedback pull request, leave it open; Classroom 50 uses it to display changes, automated results, and instructor feedback.

6. Verify the submission and review feedback

Return to Classroom 50 and open the assignment’s My submission page (or Group submission for a group assignment). Confirm that your latest submission appears.

If the assignment has a Feedback pull request, leave it open. Your instructor may use it to review your work and provide comments.

When autograding is enabled, you can also:

  • open the repository’s Actions tab to follow the grading workflow; and
  • open Releases to view automated scores and per-test results.

Automated results may cover only part of the assignment. Your instructor may assess additional requirements and provide feedback separately.

Troubleshooting

  • The organization or assignment does not appear: verify that you are using the correct GitHub account and have accepted the course organization invitation.
  • The assignment link says “Not a member yet”: ask your instructor to add you to the roster, accept the resulting invitation, and try again.
  • gh is not recognized: install the GitHub CLI, then install the student extension with gh extension install foundation50/gh-student.
  • Authentication fails: run gh student login, follow the browser or device-code prompts, and then retry.
  • A push is rejected because the remote has new changes: run git pull, resolve any conflicts, and push again.
  • A normal push was not graded: the assignment may be submit-only. Run gh student submit or follow the instructor’s required tag instructions.

For more help, consult the official Classroom 50 troubleshooting guide or contact your instructor or teaching assistant.

Tips

  • Run git status often; it shows which files changed and whether commits still need to be pushed.
  • If you use Visual Studio Code, its built-in source control tools can help you review, commit, pull, and push changes. You can still use gh student submit in VS Code’s integrated terminal.

Quick reference

Task Command
Check the repository git status
Download remote changes git pull
Stage changes git add .
Commit changes git commit -m "Describe the change"
Push commits git push
Submit with Classroom 50 gh student submit

Further reading