Lucy is a python application for managing student assignments delivered through GitLab. Lucy includes many time-saving and useful features for course convenors and tutors.
Lucy has been developed actively by ANU academics and tutors since 2017 (> 500 commits) and applied in both small and large courses.
This site includes:
- Documentation for installing, setting up, and using Lucy for course convenors and tutors.
- Explanation of the “Lucy way of doing things”.
- Explanation of Lucy’s features, and development roadmap.
Go have a look: https://gitlab.comp.anu.edu.au/lucy/lucy
- Integrates with Canvas
- Sync student details and lab enrolments from Canvas with one command (or import a MyTimetable export)
- Upload marks and comments straight to the Canvas gradebook
- Never touch student repositories
- Marking happens in a private marking fork owned by the course’s marker user
- Easily check completion/validity of tutor marking
- Feedback sent back to students as a branch of their repo
- Flexible marking workflows
- Allocate submissions to tutors (own lab, other labs, random, weighted)
- Tutors can mark locally with lucy, or entirely in the GitLab web UI with a published progress report
- Pre-marking moderation round so tutors calibrate before they mark
- Collated marks with summary statistics
- Deadline accuracy and flexibility
- Mark content of latest push before deadline
- Track student progress (forks, pushes, CI jobs)
- Easy to add extensions
- Forum Integration
- List students in correct format to add them to Ed
- Academic Integrity Tools
- Consistent reporting
- MOSS Integration
- Course plugins
- Add course-specific commands in your course’s
plugins/ directory
Installation and setup checklist
Lucy is a Python CLI app distributed through GitLab. Here’s a checklist for setting it up for your course. There’s more details on the installation page, but here is the short version:
- Fork the Lucy repository for your course (e.g., https://gitlab.comp.anu.edu.au/comp1720/2021/lucy )
- Clone your copy of Lucy
- Configure Lucy by copying
data/templates/course_info.yml to data/course_info.yml and filling it out
- Course details (Canvas course ID, GitLab marker username, tutor group)
- Assessment task details (deadlines, number of marks, marking files)
- Tutor details (names and UIDs, which labs)
- Lab group details (activity and times)
- MOSS settings (id, language)
- Put the marker user’s GitLab token and your Canvas token in
data/secrets.yml, starting from data/templates/secrets.yml
- Install Lucy’s python environment with poetry (
poetry install)
- Run Lucy:
poetry run ./lucy.py --help
- Pull the class list from Canvas:
poetry run ./lucy.py canvas-sync
There are many approaches to automatically managing computing student assignments. Why choose Lucy?
- It’s useful, reliable, and adaptable.
- It has many eyes checking code and many brains available to fix problems.
- When you make Lucy better, others benefit.
Current and Future Projects
Vision: Make Lucy so good that it is used in all core computing courses.
- Group Projects
- So far doesn’t support group projects Needed for core subjects (e.g., COMP1110)
- Improve Docs
- Create an easily navigated docs website/wiki Need quick reference and deeper documentation
- Core Features: Lab Reports
- Lab Reports applied in COMP2300/6300 and COMP1720/6720 Need to upgrade to be a core feature
- Student Communication and Forums
- Can this interact with other typical communication channels? (Canvas, Email, Ed)
- Fit in with ANU World
- Harmonising Lucy with Canvas
- Developing helpful tools to help with Academic Integrity