Teach with Lucy

Lucy is a python application for managing student assignments on GitLab. You can think of it as a GitLab-based learning management system (LMS).

Get Lucy

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.cecs.anu.edu.au/lucy/lucy

Features

  • Integrates with MyTimetable
    • Sync students details and lab enrolments from MyTimetable with one command
    • Export assignment results in CSV format for Wattle Gradebook
  • Never touch student repositories
    • Marking happens in convenor’s fork
    • Easily check completion/validity of tutor marking
    • Feedback sent back to students as a branch and/or forum DM
  • Deadline accuracy and flexibility
    • Mark content of latest push before deadline
    • Track student progress (forks, commits, CI jobs)
    • Easy to add extensions
  • Forum Integration
    • List students in correct format to add them to Ed
      • Note: Ed supposedly has API functionality, so this could be automated
  • Academic Integrity Tools
    • Consistent reporting
    • MOSS Integration

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:

  1. Fork the Lucy repository for your course (e.g., https://gitlab.cecs.anu.edu.au/comp1720/2021/lucy )
  2. Clone your copy of Lucy
  3. Configure Lucy by filling out course_info.yml
    1. GitLab access tokens (for you and for tutors)
    2. Course details (MyTimetable course ID string, GitLab group, marker username)
    3. Assessment task details (deadlines, number of marks)
    4. Tutor details (names and UIDs, which labs)
    5. Lab group details (activity and times from MyTimetable)
    6. Other API keys (Moss, etc.)
  4. Install Lucy’s python environment with poetry (poetry install)
  5. Run Lucy: poetry run ./lucy.py --help

Why should I use it?

There are many approaches to automatically managing computing student assignments. Why choose Lucy?

  1. It’s useful, reliable, and adaptable.
  2. It has many eyes checking code and many brains available to fix problems.
  3. 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: Moderation + Lab Reports
    • Moderation and 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? (Wattle, Email, Ed)
  • Fit in with ANU World
    • Harmonising Lucy with MyTimetable and Wattle
    • Developing helpful tools to help with Academic Integrity

Lucy Credits and Contacts

Lead Contact: Charles Martin

BDFL: Ben Swift

Devs:

  • Julian Crosby (current contributor)
  • Ashleigh Johannes (current contributor)
  • Brent Schuetze (lifetime achievement award)

Hall of Fame:

  • Harrison Shoebridge
  • Peter Davis
  • John Zhang
  • Kieran Browne
  • Zixian Cai
bars search times