Up and Running with GitHub, GitHub Classroom, and GitHub Actions

Hemani Alaparthi and Gregory M. Kapfhammer

Traditional Assignment Challenges

  • Inefficient workflows cause
    • Version chaos via email submissions
    • Time-consuming manual testing
    • Delayed feedback disconnected from code
    • Limited visibility into student progress
    • Unrealistic development practices

How can we create a workflow that automates repetitive tasks, provides immediate feedback, and teaches industry-standard practices?

Key Solution: GitHub, GitHub Classroom, and GitHub Actions

A complete ecosystem for programming education offering:

  • Industry-standard tools: Git, CI/CD, code review
  • Good practices: Commit messages, branching, reviews
  • Task automation: Testing, style checks, distribution
  • Immediate feedback: Pass/fail checks and detailed logs
  • Student portfolios: Real-world projects on GitHub
  • Instructor insights: Progress tracking and code reviews

GitHub Classroom Benefits

For Students

  • Version control
  • Immediate feedback
  • Clear guidance with TODOs
  • Portfolio building
  • Development environment

For Instructors

  • Automated distribution
  • Centralized collection
  • Automated testing
  • Progress visibility
  • Consistent environments

Summary: GitHub Classroom bridges the gap between learning and professional development while saving time for students and instructors

Implementation Workflow

Setup Repositories

  • Write full solution with tests
  • Apply implementation ablation
  • Set up CI/CD pipeline

Setup GitHub Classroom

  • Link organization and repositories
  • Set deadlines and visibility
  • Invite students to classroom

Feedback & Assessment

  • Track progress via GitHub insights
  • Code reviews via pull requests
  • Assignment clarifications via issues

Monitor Progress

  • Automated test results (✅/❌)
  • Detailed logs for error diagnosis
  • Student feedback and code review
  • Create solution and starter repositories for each assignment

Implementation Ablation

  • After solution creation, must create a starter repository:
    • Remove implementation details from your solution
    • Replace with well-documented TODOs as placeholders
    • Leave structure intact for students to complete
    • Keep tests and various checks to guide students
  • Tests run automatically on each push to student’s repository:
    • ✅/❌ Status checks provide immediate feedback
    • 🛠️ Detailed logs highlight errors for quick diagnosis

Multi-level Feedback System

Automated

  • GitHub Actions check: pass/fail status for each check
  • Code quality checks: PEP8 compliance with Ruff
  • Test coverage reports: Pytest and Coverage.py

Manual

  • In-line code comments: specific suggestions on code
  • Pull request reviews: detailed feedback on approach
  • Issue-based feedback: high-level design discussions

Integrating with External Tools

GitHub Actions can integrate with tools like

  • Pytest for test coverage
  • Ruff for style checking
  • Chasten for AST-based pattern checking
  • Custom grading tool such as ExecExam
  • And many more!

Integration Benefits: Automated feedback fosters code quality, adoptions of industry practices, and eases instructor workload

Common Challenges and Solutions

GitHub Classroom creates a realistic, automated workflow that benefits both students and instructors. But there are challenges!

Challenges Solutions
Git confusion Provide cheat sheet and office hours
Merge conflicts Teach basic conflict resolution
Test failures Make test output student-friendly
Missing setup Include detailed environment setup
Privacy concerns Use private repositories

Challenges: Learning curve for Git and GitHub and associated tools

Key Takeaways

  • Streamlined workflow from assignment creation to grading
  • Industry-relevant skills that benefit beyond the classroom
  • Automated testing for immediate feedback
  • Visible progress through tracking commit history
  • Reduced administrative overhead with integrated tools

Thank You! Questions?