Using Python, Travis CI, and GitHub to Effectively Teach Programming

4:55pm - 5:20pm on Friday, October 5 in PennTop North

Gregory M. Kapfhammer

Audience Level:


Have you ever wanted to effectively teach your students or colleagues about programming? Suitable for full-time educators and industrialists who instruct their colleagues, this hands-on talk will explain how you can teach programming using Python, GitHub Classroom, and Travis CI.


Real-world software engineering is collaborative, commonly involving the use of Git, GitHub, and continuous integration with Travis CI. Suitable for both full-time educators and members of industry who educate their colleagues, this presentation will explain how to use these technologies and platforms to teach interdisciplinary and introductory courses in computer programming and software engineering.

The presentation will first show how to create a GitHub organization connected to a GitHub Classroom with unlimited private repositories that contain instructor solutions and starter kits and submissions from both individual and team-based assignments. The talk will next explain how to connect GitHub repositories to continuous integration servers hosted by Travis CI, thus supporting the cloud-based execution of tests and checks.

The presentation will subsequently introduce the design and implementation of and the testing strategy for a Python program that supports the local and cloud-based checking of the source code and technical writing for a project. Designed to complement the automated checks performed by a test suite, this tool, called GatorGrader, can verify that a submission contains the required number of comments and produces the correct number of lines of console output. It can also, for instance, ensure that a student makes the requisite number of commits to a GitHub repository and implements a program in a specified fashion.

Ultimately, people who attend this talk will learn more about how to use platforms like GitHub and Travis CI, open-source Python packages, and Python programming language features to effectively deliver instructional materials and assess assignment submissions.

Want to edit this page?