Computer science teachers try to do a lot with a little—growing course enrollments stretch resources, class sizes continue to expand, and there’s never enough time to fix everything that’s broken.
Almost every teacher asks about ways to automate their coursework:
- How can we scale our assignments?
- How can we integrate automated testing for assessment?
- How can we use battle-tested problem sets?
- How can we run tests to check for plagiarism?
This year’s Special Interest Group on Computer Science Education (SIGCSE) featured two sessions that will save you countless hours of marking and administrative friction.
For the first session at SIGCSE, we heard about near-total automation. Dr. Dan Wallach was looking for a scalable, reliable solution for his course. In 2015 the peak loads from his students’ work crashed their campus server, forcing them to extend their deadlines and taxing the Rice IT group. He tried GitHub Classroom in 2017 and never looked back. Wallach continues to use Classroom for his 200-level course at Rice University.
Dr. Paul Salvador Inventado teaches 60-120 students per semester at California State University Fullerton—that’s a lot of checking. Inventado combines the use of a unit-testing framework with Classroom to automate problem assignment, feedback, and checking.
Another helpful session at SIGCSE was CS50’s tools to help students be even more successful when writing their programs. CS50 at Harvard developed a suite of GitHub-based tools to streamline their course activities, and scale the course to meet the needs of one million students.
Among those tools are:
- check50: a Python-based API for functional testing of programs
- submit50: a command-line tool that submits students’ work via Git and prepares it for web-based commenting
- CS50 Lab: a web application that enables teachers to create step-by-step programming lessons
Wallach, Inventado, and many teachers across the world use GitHub Team to automate their coursework, and you can, too! GitHub Team is free to faculty members.
As a teacher, you own the Team account, so even though students have their own repositories for side projects, you manage the account.
Team gives you and your course:
- Full access to your students’ code
- Unlimited private repositories and collaborators
- GitHub Classroom integration