Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Sep 3, 2025

This PR transforms the repository into a fully functional C++ programming classroom with comprehensive automated testing and grading capabilities.

🚀 What's Been Added

Complete Classroom Infrastructure

  • Professional CMake build system with Google Test framework integration
  • GitHub Actions workflow for continuous integration and automated grading
  • Modular assignment structure with organized directories for source code, headers, and tests
  • Template system for easy creation of new assignments
  • Cross-platform compatibility supporting Linux, macOS, and Windows development

Example Assignment Implementation

Created "Assignment 1: Hello World with Functions" demonstrating:

  • Function declarations in header files (include/hello.h)
  • Implementation in source files (src/hello.cpp)
  • Main program execution (src/main.cpp)
  • Comprehensive unit tests (tests/test_hello.cpp)

The assignment covers fundamental C++ concepts including:

std::string greet(const std::string& name);  // String manipulation
int add(int a, int b);                       // Arithmetic operations  
bool isEven(int number);                     // Boolean logic

Automated Testing & Grading

  • Unit tests run automatically on every push/pull request
  • Instant feedback with detailed test results and error messages
  • Grade report generation with downloadable artifacts
  • Build verification ensuring code compiles without warnings

Developer Experience

  • Student helper script (run_tests.sh) for local testing
  • Comprehensive documentation with setup instructions and troubleshooting
  • Template directory for rapid assignment creation
  • Professional .gitignore excluding build artifacts and temporary files

Documentation

  • Student README with clear setup, usage, and submission instructions
  • Instructor Guide detailing assignment creation, customization, and maintenance
  • Assignment-specific READMEs with objectives, requirements, and grading criteria

🎯 How It Works

Students can now:

  1. Clone their assignment repository via GitHub Classroom
  2. Navigate to assignment directories and read instructions
  3. Implement solutions following the provided structure
  4. Test locally using ./run_tests.sh
  5. Submit via git push and receive instant automated feedback

Instructors can:

  1. Create new assignments by copying the template directory
  2. Write custom tests for automatic grading
  3. View student submissions and test results in GitHub Actions
  4. Scale the classroom by adding new assignments to the build system

🧪 Verification

The system has been thoroughly tested:

  • ✅ CMake configuration and build process
  • ✅ Google Test integration and execution
  • ✅ GitHub Actions workflow syntax and functionality
  • ✅ Cross-platform compatibility verification
  • ✅ Student workflow simulation from clone to submission

This creates a production-ready C++ classroom environment that provides immediate, actionable feedback to students while streamlining assignment management for instructors.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits September 3, 2025 15:21
Co-authored-by: sverghes <94053918+sverghes@users.noreply.github.com>
Co-authored-by: sverghes <94053918+sverghes@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] Can you create a classroom space for C++ programming tasks that will have auto tests and will be autograded Create complete C++ classroom infrastructure with automated testing and grading Sep 3, 2025
@Copilot Copilot AI requested a review from sverghes September 3, 2025 15:26
Copilot finished work on behalf of sverghes September 3, 2025 15:26
Copy link
Collaborator

@sverghes sverghes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@sverghes sverghes marked this pull request as ready for review September 11, 2025 13:33
@sverghes sverghes merged commit 9b2af1c into main Sep 11, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants