# Classroom

This page describes various ways to use the GitHub integration to create and collect assignments. The description here assumes that all students are able to register an account on https://github.com first.

## Assignments as repositories

Students can create new repositories, public or private, for each assignment. Repositories provide full tracability of the changes, collaboration features, and precise access control for the teachers.

There are a few different ways to use repositories, in order of complexity:

* [public assignments](/github/public-assignments) using public repositories. Easy to setup but code is public.
* [private assignments](/github/private-assignments) using private repositories. More setup steps but code is only visible to the student and the teacher.
* [GitHub classroom](https://classroom.github.com) provides an integrated classroom management system that automates a lot of the repository creation steps.

### ~ hint

#### GitHub Explorer

The [MakeCode GitHub Explorer](https://makecode.com/github-explorer) page allows you to list and browse MakeCode repositories seamlessly.

### ~