4 Details for Teachers
4.1 Detailed Process Walkthrough
4.1.1 GitHub Organization Setup
To create your one-time organization, follow the steps below:
- Go to https://github.com/settings/organizations
- Click “New organization”
- Choose organization name:
UCL-[Department]-[Module]-[Year] - Set to “Private” initially
- Add description and contact information
The automation handles all repository creation and configuration.
4.1.2 Assessment Preparation
Before running automation, prepare:
Issue Templates (automatically created):
The scripts create structured peer review templates with sections for:
- Code quality assessment
- Correctness evaluation
- Constructive feedback
- Learning reflections
Marking Criteria Integration:
Customize the issue template in github_functions.R to align with your specific marking criteria:
# Edit the peer_review_template variable to match your assessment goalsAssignment Instructions:
Prepare clear instructions that reference:
- Learning objectives for peer review
- Timeline and deadlines
- Technical support resources
- Assessment weighting (if applicable)
4.1.3 Student Data Collection
Collect GitHub usernames efficiently:
4.1.4 Student Data Collection
Collect GitHub usernames at the start of the module.
Option 1 — Moodle Survey
Create a Moodle survey with:
- “GitHub username” text field
- Instructions for creating GitHub accounts
- Link to GitHub Education benefits
Option 2 — Submission Requirement
Include GitHub username as part of the assignment submission requirements.
Option 3 — Lab Session Collection
Collect usernames during the first computer lab session.
4.1.5 File Transfer Workflow
Automated Process (Recommended):
# Place files in submissions/[student_id]/ folders
# Run the main automation script
source("main_automation_script.R")Manual Process (Backup Method):
If automation fails, you can still upload files manually: 1. Create repositories individually 2. Upload files through GitHub web interface 3. Set permissions manually 4. Generate assignment lists manually
4.1.6 Managing the Review Process
Monitoring Student Engagement:
# Run daily or weekly progress checks
source("monitor_progress.R")
run_progress_check()
# Generates:
# - Completion rate summaries
# - Individual student progress
# - Reminder emails for laggardsFacilitating Quality Reviews:
- Monitor issue creation across repositories
- Look for generic or unconstructive feedback
- Highlight examples of excellent reviews to the class
- Provide additional guidance if review quality is poor
4.1.7 Assessment Integration
Assessing Peer Review Participation:
Quantitative Measures:
- Completion of required review templates
- Timeliness of feedback submission
- Engagement with issue discussions
Qualitative Assessment:
# Use monitoring script to extract review content
# Assess based on:
# - Constructiveness of feedback
# - Specificity of observations
# - Helpful suggestions provided
# - Professional communication tone4.1.8 Troubleshooting with Automation
Common Issues and Solutions:
Script Failures:
# Check configuration
source("setup_config.R")
validate_configuration()
# Test GitHub connection
test_github_connection()Student Access Problems:
- Verify GitHub usernames in
student_list.csv - Check repository permissions in GitHub organization
- Use monitoring script to identify access issues
File Upload Issues:
- Check file sizes (GitHub limit: 100MB per file)
- Verify file paths in submissions folders
- Review console output for specific error messages
Incomplete Reviews:
# Generate targeted reminders
source("monitor_progress.R")
run_progress_check() # Creates reminder emails automatically4.1.9 Advanced Features
Customizing Review Assignments:
Edit file_management.R to modify reviewer assignment logic:
# Change number of reviewers per student
assign_peer_reviewers(students, reviews_per_student = 3)
# Implement stratified assignment (e.g., by ability level)
# Custom logic can be added to the assign_peer_reviewers functionIntegration with Continuous Assessment:
- Use repository activity for participation grades
- Track improvement over multiple assignments
- Monitor collaborative discussion quality
Scaling for Large Classes:
The automation scripts handle classes up to 200+ students efficiently: - Batch processing minimizes API rate limits - Progress monitoring scales automatically - Email generation handles large volumes
4.1.10 Alternative Workflows
For Smaller Classes (<20 students):
Consider having all students review all submissions for maximum learning.
For Advanced Students:
- Enable pull request reviews in addition to issues
- Encourage code improvement suggestions
- Allow collaborative debugging sessions
For Assessment-Heavy Modules:
- Use multiple rounds of peer review
- Implement peer review of peer reviews (meta-review)
- Create portfolio-based assessment incorporating peer feedback
4.2 Evaluation and Improvement
4.2.1 Data Collection
Automated Metrics:
# Progress monitoring provides:
# - Completion rates
# - Engagement timing
# - Issue/PR creation patterns
# - Student interaction levelsStudent Feedback:
- Post-assignment surveys about GitHub experience
- Focus groups on peer review value
- Comparison with traditional feedback methods
Learning Outcomes Assessment:
- Code quality improvement over semester
- Development of collaborative skills
- Professional tool proficiency
4.2.2 Iterative Improvements
Based on Student Feedback:
- Adjust issue template questions
- Modify review assignment algorithms
- Update student guidance materials
- Refine technical support processes
Based on Teaching Observations:
- Identify common student misconceptions
- Adjust scaffold levels for GitHub introduction
- Modify assessment weightings
- Update marking criteria
4.3 Resource Requirements
4.3.1 Technical Infrastructure
- GitHub Organization: Free for educational use
- Automation Scripts: Provided, no additional cost
- R/RStudio: Free, open-source software
- Computing Resources: Minimal - runs on standard academic workstations
4.3.2 Time Investment
Initial Setup (First Time):
- Script configuration: 30 minutes
- GitHub organization setup: 15 minutes
- Student data preparation: 45 minutes
- Total: ~1.5 hours
Per Assignment (Ongoing):
- File organization: 15 minutes
- Running automation: 5 minutes
- Monitoring and reminders: 10 minutes weekly
- Total: ~20 minutes + weekly monitoring
4.3.3 Support Requirements
For Students:
- Provide comprehensive student guide
- Offer optional GitHub tutorial sessions
- Establish peer mentoring system
- Create backup support during lab sessions
For Teaching Staff:
- Train additional instructors on script usage
- Establish backup procedures for technical failures
- Document customizations and local adaptations
- Plan for software updates and maintenance
4.4 Success Metrics and Expectations
4.4.1 Short-term Indicators
- >90% successful repository setup
- >80% completion of peer reviews within deadline
- <5% technical support requests requiring instructor intervention
- Positive student feedback on learning experience
4.4.2 Long-term Outcomes
- Improved code quality in subsequent assignments
- Increased student confidence with collaborative tools
- Enhanced peer learning culture in the module
- Transferable skills development for industry preparation
4.5 Emergency Procedures and Backup Plans
GitHub Service Outages:
- Monitor GitHub status page
- Extend deadlines if necessary
- Use manual review process as fallback
- Communicate clearly with students
Script Failures:
- Revert to manual repository creation
- Use provided troubleshooting guide
- Contact technical support resources
- Document issues for future improvement
Student Technical Difficulties:
- Provide alternative access methods
- Offer individual technical support
- Consider accommodation for accessibility needs
- Maintain flexible deadline policies
Remember: The automation scripts handle the complex technical setup, allowing you to focus on the pedagogical aspects of peer review and student learning outcomes. Start small with one assignment, gather feedback, and iterate based on your experience and student needs.