## What is GitHub Classroom? GitHub Classroom is a tool designed to help teachers manage coursework on GitHub. It allows educators to distribute assignments, provide feedback, and grade student work all within GitHub. It automates repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub. Teachers can also track student progress through a dashboard and use automated grading tools. ## Useful Links - https://github.com/V0ldek/DotnetClassroomTemplate - https://github.com/AI-Assistant/conditionals_challenge_autograding ## How to Use GitHub Classroom? 1. **Create an Organization:** The first step is to create a GitHub organization for your class. This will serve as the central place where all the repositories for your assignments will live. 2. **Create a Classroom:** Once you have an organization, you can create a classroom within that organization on GitHub Classroom. 3. **Create Assignments:** After setting up your classroom, you can start creating assignments. You can choose to create individual or group assignments, and can provide starter code if desired. 4. **Distribute Assignments:** Once you’ve created an assignment, you can distribute it to your students by providing them with a unique link. Students will be able to accept the assignment, which automatically creates a new repository in the classroom organization for their work. 5. **Review and Grade Work:** As students complete their assignments and push their code to GitHub, you can easily review and grade their work directly within GitHub Classroom. 6. **Provide Feedback:** You can provide feedback on student's work by commenting directly on lines of code in GitHub. ## Benefits of Using GitHub Classroom - It simplifies administrative tasks: With automatic repository creation and permissions management, teachers save time on administrative tasks. - It encourages real-world experience: By using Git and GitHub, students gain experience with industry-standard tools. - It supports any programming language: Assignments can be written in any language that runs on Git, which includes almost all programming languages. - It provides automated grading: Some assignments allow for automated grading using testing tools like JUnit (for Java), pytest (for Python), and others. - It allows for easy distribution of starter code: Teachers can easily distribute the same set of starter code to all students. - It offers transparency and visibility: Teachers have full visibility into each student's progress and they can see each student's repository. - It facilitates collaborative learning: Students can collaborate on group projects more easily within the GitHub environment. ## Derived Concepts - [[Remote Learning]]: GitHub Classroom is a tool that can be used in remote learning environments, allowing teachers to distribute, review, and grade assignments digitally. - [[Coding Education]]: GitHub Classroom is a useful tool for teaching coding, as it allows students to gain real-world experience with industry-standard tools. - [[Project Management]]: By organizing assignments into repositories and tracking changes with Git, GitHub Classroom introduces students to basic project management concepts. - [[Peer Review]]: With GitHub's commenting features, peers can review each other's code and provide feedback, promoting a collaborative learning environment. - [[Continuous Integration / Continuous Deployment (CI/CD)]]: Advanced usage of GitHub Classroom could include the use of CI/CD pipelines for automated testing and deployment of student projects.