Nominee
Learning with
Digital Tools
Code Expert is a unique teaching and learning platform for programming-related content. It fosters students activity in a wide variety of courses. A broad range of different teaching approaches and methods is being supported. The spectrum ranges from (introductory or advanced) programming courses, data science, machine learning topics, to application-oriented content such as robotics, mechatronics, and signal processing. It is used in lectures for live coding, in exercises, and in graded high-stakes exams.
Implementation of the Project/Course
Code Expert (CX) is a teaching and learning platform that fosters students activity in programming-related courses. It is being developed at D-INFK and is available to all ETH lecturers for both exercises and exams.
Collaboratively developed with lecturers and students, CX offers innovative elements to foster active learning at scale through flexible elements that support diverse teaching methods. Key elements of CX address didactical, organizational, and technical challenges in everyday teaching (for a more general overview see point 10, “Motivation, Mission, Vision”).
Didactical challenges: Feedback drives learning. CX lets lecturers attach test cases to coding tasks, so students can run checks anytime and make learning progress visible [A]. This automated feedback is complemented by manual feedback from TAs, efficiently supported by a bespoke user interface for reviewing, executing, and commenting on student submissions [B]. To foster personal exchange, CX includes a booking system for dynamic exercise groups, facilitating scalable one-on-one progress meetings where students discuss their progress with TAs [C]. Those meetings are a central pillar of the introductory programming courses for life science students and several CAS modules. CX also offers gamification features that motivate students to engage, e.g. by unlocking bonus tasks [D].
Organizational challenges: CX offers tools for student-centered teaching in large groups. Predefined environments support various programming languages, streamlining assignment and test case creation. Tasks are distributed via automatic, time-controlled activation [E]; students and TAs overview ongoing and past tasks. Continuous central storage of student code enables efficient support, personalized feedback, and flexible work places, ideal for scaling up to large courses such as «Computer Science 1 for MAVT» (750 students). In collaboration with the eduIT team, CX is used for many high-stakes exams from creation to review, and students value the strong alignment between exercises and exams. CX embeds in Moodle, enabling seamless integration of both platforms.
Technical challenges: CX minimizes entry barriers. Students and TA work in the browser without installing software; saving time, reducing support effort, and ensuring code runs under uniform, reproducible conditions. Ready-to-use containers efficiently support large foundational courses, while courses with special hardware requirements, e.g. GPUs for “Hands on Deep Learning”, benefit from CX flexible hosting options [F].
Motivation, Project Mission, Vision Statement
Every instructor seeks to facilitate their students‘ application of subject knowledge; in computer/data science, that is often programming. This raises didactic, organisational, and technical challenges that impact instructors, TAs, and students, in particular for large introductory lectures with high-stakes exams.
Didactically, educators may favor different teaching concepts, from foundational bottom-up to project-based top-down approaches, and different feedback mechanisms, from instantaneous machine-generated responses to holistic guidance by TAs.
Organizationally, a unified course managing system becomes crucial: distributing tasks, collecting submissions, delivering feedback, and maintaining an overview of tasks, deadlines, students‘ progress and learning success.
Technically, the landscape can be arbitrarily complex and involve different programming languages, libraries, data sources, and systems. For non-expert audiences, the necessary administrative support quickly becomes impractical. On the other hand, specialized subjects for technical experts often require specific resources, such as GPUs for machine learning.
CX addresses these challenges by providing a flexible solution that supports instructors, students, and TAs, across different teaching concepts, backgrounds, and levels of expertise. It seamlessly integrates a scalable computation platform with an efficient course management system, maximizing students‘ time-on-task while minimizing instructor overhead.
Innovative Elements
CX offers a wide range of functionalities that can be used and combined very flexibly, to account for instructors‘ and audiences‘ preferences. Particularly innovative elements of CX include the diverse testing and feedback options, the gamification approach with experience points and conditional exercises, and the functionality for flexible scheduling of dynamic practice groups and progress meetings.
CX user interfaces have been designed together with lecturers and TAs, to efficiently support common tasks arising in teaching and exam situations, e.g. quickly providing feedback to large cohorts, or overviewing and comparing grading stages.
Most students and TAs, in particular beginners, typically work in CX’s built-in web-based code editor, and thus do not have to worry about locally installing and maintaining potentially complex programming environments. Advanced users, however, can use CX Sync to work locally in the environment of their choosing, which fosters self-efficacy.
Effects on Student Learning
Code Expert is indirectly evaluated in many courses through regular course evaluations. The questionnaire does not explicitly ask about CX, but instructors regularly receive positive free-text comments regarding CX. Examples can be found in the Sharepoint folder, indicating that CX successfully fosters student activity and active learning.
In addition, we also surveyed active Code Expert users directly at the end of the 2024 semester. A total of 315 people from 10 different departments responded. Of these, 94% were students, 7% were teaching assistants, and 2% were instructors. 88% of respondents said that Code Expert helped them better understand the programming skills they were taught. 77% said that the feedback in Code Expert was (very) helpful in improving their own code. Furthermore, 96% think it is important that Code Expert can be used in both classes and exams. Finally, 91% of students also said that they would (very) likely use Code Expert if they were teaching themselves.
ETH Competence Framework
-
Method-specific
Competencies -
Social
Competencies -
Personal
Competencies
With its rich set of features, Code Expert enables lecturers to foster different competences by integrating CX into their preferred teaching model, depending on factors such as the course level (e.g. BSc or MSc), target audience (e.g. application-oriented or foundational), cohort size, etc. That said, we believe that CX is particularly well-suited to foster the following competences:
* Analytical Competencies and Problem-solving — since CX‘ focus is on programming and data/computer science
* Self-direction and Self-management — since students overview all tasks, deadlines, and their learning progress (automated feedback); also gamification
* Communication — since CX facilitates organising one-on-one meetings
* Cooperation and Teamwork — since cloud storage supports group projects
Which Elements of Your Project Would You Recommend to Others ?
1st recommendation dimension: How to successfully develop a tool such as CX. * Development: inhouse developers + explicit inclusion of stakeholders (lecturers, TAs, students), e.g. via monthly meetings * Clear project goal & scope, at least early on: large cohorts, non-expert audiences, exercises & exams * Agile incremental releases, combined with rigorous quality assurance (static analyses, automated tests, test playbooks). This benefits from stakeholders that feel included in the development process.
2nd dimension: Best practices for using CX. Since CX is teaching-mode agnostic and supports diverse settings; we do not recommend any particular style. What seems to work universally well, though, is the combination of automated and manual feedback, which CX provides several features for.