Classroom 50

Classroom 50 connects course assignment links to GitHub repositories. Students use the course web frontend briefly to sign in, accept an assignment, and open their repository.

Use the UWF self-hosted Classroom 50 frontend at uwf-dsa-teaching.github.io. The course website and Classroom 50 CLI tools are pinned to version 1.28.1 for stability.

Use the course-provided assignment links rather than searching for assignments manually.

Sign in with a Personal Access Token

Students must sign in to the self-hosted portal with a GitHub Classic Personal Access Token (PAT). Do not use the standard Sign in with GitHub OAuth option; OAuth may fail because of the self-hosted proxy and CORS configuration.

Generate a token using GitHub’s pre-configured token link. On GitHub, modify the token’s expiration date to the end of the semester. After GitHub creates the token, copy it immediately, return to the Classroom 50 portal, choose Other sign-in methods -> Use a personal access token, and paste the token. GitHub displays the token only once; never commit or share it.

Student workflow

Use the assignment link supplied by your instructor to get to your GitHub repository. After that, do all normal work in GitHub and your local clone: clone, edit, test, commit, and push. The optional GitHub CLI guide is for experienced command-line users.

GitHub account

Before accepting an assignment, you need an active GitHub account.

  • Use an existing account or create a new account at GitHub.com.

  • Add and verify your UWF email address under GitHub Settings > Emails.

  • Accept the GitHub organization invitation sent by your instructor.

Accept an assignment

Your instructor will provide a Classroom 50 assignment link through Canvas or the course website.

  1. Open the assignment link from your course site or instructor and sign in to the UWF Classroom 50 portal with your PAT.

  2. Select your exact name from the roster and accept the assignment.

    Do not select another student’s name. If your name is missing or you selected the wrong name, stop and contact the instructor immediately.

  3. Classroom 50 creates your private GitHub repository and displays its link.

  4. Open the new repository and copy its clone URL.

If your name is missing or you selected the wrong name, stop and contact the instructor or TA immediately. Do not try to repair the roster binding yourself.

Clone and submit your work

Clone the repository, edit the provided files, and commit and push your work:

git clone <repository-url>
cd <repository-directory>

Following the instruction in the README.md file in the repository, make the necessary editions to the provided files, then commit and push your changes:

git add .
git commit -m "Complete assignment"
git push origin main

Depending on the assignment settings, grading runs on every push or only when you submit. For submit-only assignments, use the submission method specified by your instructor. Experienced CLI users can find the optional command in the GitHub CLI guide.

The standard Git submission-tag method is:

git tag submit/final
git push origin submit/final

The instructor may also configure milestone tags such as phase1.

Provided files and Makefiles

The provided Makefile and test configuration are part of the assignment contract. Do not modify or remove them. Classroom 50 may restore the provided Makefile before grading, so make sure your code works with the original file.

Run the provided make targets locally before pushing. Do not add generated executables, editor files, or unrelated directories to your submission.

Common commands are:

make clean
make build
make test
make test-1
make test-2

Group assignments

For a group assignment, the first teammate accepts the assignment and creates the shared repository. That teammate then adds the other members through the assignment page or with the Classroom 50 student CLI. Invited teammates should accept the repository invitation before cloning and contributing.

Grades and feedback

  • The latest GitHub Release in your repository contains the score summary and detailed result.json output when enabled. This is the easiest place for students to find grading results.

  • If course staff use feedback pull requests, open the repository’s Pull Requests tab to read line comments and suggestions.

Late work

If you submit late, notify the instructor according to the course policy. The instructor may need to review or adjust the recorded grade manually.