Skip to main content

Examination in Moodle Using the C++ Environment with Code Expert

Each autumn semester, over 800 bachelor's students in Mechanical Engineering at ETH Zürich enroll in the course Computer Science I. At the end of the semester, their programming skills are tested in a digital examination conducted through Moodle. A central component of this exam is Code Expert, an online IDE (Integrated Development Environment) developed at ETH that is fully integrated into Moodle. For this course, Code Expert is specifically configured to provide a dedicated C++ programming environment. By solving problems in a realistic coding environment students can demonstrate their programming proficiency in a way that closely reflects real-world engineering challenges.

During the semester, students can already demonstrate their skills in Code Expert through exercise series. By doing so, they can earn a bonus of up to 0.25 points towards their final grade.

All Course Assessments

Overview of the Course

What is the subject context of the course?

This course provides an introduction to computer science, with a focus on systematically solving problems with algorithms. It includes a significant programming part, using the language C++. This is an important language for mechanical engineers in many robotics and embedded applications, and C++ was used in most of the «focus projects» presented in 2025. The goal of a Focus Project is to develop and build a product over the course of two semesters. Students work in teams of five to ten students. Examples include «Swissloop» (transport capsule) and «Project Formula Student Electric» (race cars).

Main objective of this course: What should students learn and be able to do at the end of the course?

Students should have a good command of the mechanisms to construct a program in C++.  They should know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They should have an idea of what happens «behind the scenes» when a program is translated and executed.

Why was the specific assessment format chosen?

This format gives students the chance to show their programming proficiency in a more realistic setting, with a compiler and testing available. The alternative, writing code on a piece of paper that is graded by a human, is very different, and not a useful skill for later.

How are students prepared for the assessment?

During the semester, every week students solve exercise tasks on Code Expert, include programming and theory. Additionally, in the exercise sessions, student teaching assistants help students program more, and also give programming demonstrations. Lastly, all past exams are available to students, with automated correction mechanisms enabled, so that students can get immediate feedback.

Course Fact Sheet

Name
Computer Science I
ECTS
4
Offered by
D-MAVT
Target Group
Bachelor Students
Offered in
D-MAVT: Mechanical Engineering Bachelor, First Year Examination Block A, Compulsory

Competencies Fact Sheet

Subject-specific Competencies
Concepts and Theories (assessed)
Techniques and Technologies (assessed)
Method-specific Competencies
Analytical Competencies (assessed)
Media and Digital Technologies (assessed)
Problem-solving (assessed)

Assessment Fact Sheet

Aim of the Assessment
Performance assessments at the end of a learning segment (summative)
Cohort
800
(Feasible for 100 - 800)
Format of the Assessment
Digital examination with ETH computers
Duration of the Assessment
120 Minutes
Assessment Timing
Examination session (with revision period)
Additional Information

The reason for the feasibility for 100 – 800 candidates:

  • The upper limit of 800 is determined by the room capacity constraints of ETH. From a purely technical standpoint, the number of exam participants could be scaled up further.
  • A repetition exam was already conducted with 20 students. However, this is not recommended because the effort to design and implement an exam is ideally based on a minimum of 100 students.

Bonus system

  • To obtain the bonus for the final grade, students must complete at least two-thirds of the weekly exercises. This unlocks access to the bonus exercises.
  • If at least two-thirds of the bonus exercises are also completed within a certain amount of time, students will be awarded a bonus of up to 0.25 points toward their final grade.
  • All exercises are initially graded automatically, with additional feedback and explanations provided by Student Teaching Assistants.

Resources

Location

Session examination: ETH computer rooms
‘Exercise series’: normal rooms

Hardware
Session examination: ETH computers
‘Exercise series’: BYOD
Examination Tool / LMS

Code Expert

  • An online IDE (Integrated Development Environment)

Moodle
The following Moodle question types are used:

  • External question type (Code Expert)
  • Embedded answer (Cloze)
  • Multiple True False (ETH)
  • Single Choice (ETH)
  • Short answer
  • True/False
Security Software

Safe Exam Browser

Sources of Information Available to Candidates

Summary (cheat sheet) written by the students themselves (maximum 4 A4 pages)

Grading and Feedback

Evaluation Method
Bonus system
Grade
Assessing for
Individual performance
Grading by
Moodle
Code Expert
Lecturers
Feedback by
Rule-based software
Student teaching assistant

Staff Workload (800 Candidates)

Time Staff
Creating Questions 0.3 FTE 4 - 5 Lecturers together
0.3 FTE 1 Doctoral Teaching Assistant
Administration and Coordination 5 d 1 Doctoral Teaching Assistants
Exam 4 h 2 - 3 Lecturers, 15 Doctoral Teaching Assistants and 15 Student Teaching Assistants
Grading 5 d 2 - 3 Lecturers

Creating Questions

Staff
4 - 5 Lecturers together
Time
0.3 FTE

Staff
1 Doctoral Teaching Assistant
Time
0.3 FTE

Administration and Coordination

Staff
1 Doctoral Teaching Assistants
Time
5 d

Exam

Staff
2 - 3 Lecturers, 15 Doctoral Teaching Assistants and 15 Student Teaching Assistants
Time
4 h

Grading

Staff
2 - 3 Lecturers
Time
5 d

Extra Information

  • Creating Questions
    • The time also includes solving the created questions to check whether they work as intended.
    • Code Expert: Becoming familiar with Code Expert for exam use typically takes around 2–3 days. An additional half day is usually sufficient to understand how to grade using Code Expert in combination with Moodle.

Shared Experience

How many times has the assessment been conducted in this format?

The assessment has been conducted more than ten times since at least 2020, typically once every semester.

What contributed to the success?

High scalability, with now over 800 participants, and comparatively quick correction. Students have the benefit of seeing during the exam whether their code does at least mostly the right thing by running a test set that is different from the final tests but quite similar. Additionally, test-based correction is entirely fair and not subject to any grading bias.

What were the challenges and how were they overcome?

Tasks need to be very precise, and there is no possibility to make changes after the exam starts, unlike a paper exam where changes are not ideal, but possible. This requires multiple rounds of internal testing before the exam. Also, exam creation in general does take longer, but this is more than made up by the correction efficiency gained for large cohorts.

Are there any further developments planned?

  • As the content of the course slowly changes, the exam changes with it.
  • No major disruptive changes are expected in the near future because using Code Expert for the exam is working very well.

What tips would you give lecturers who are planning a similar assessment?

Test, test, and test your exam. Let doctoral or student teaching assistants solve the full exam, reporting any and all issues. Do this in multiple rounds.

"Code Expert scales infinitely - until it hits the walls of ETH’s exam rooms."

Dr. Ralf Sasse

Examiners

  • Dr. Ralf Sasse

    Lecturer at the Department of Computer Science

  • Dr. Malte Schwerhoff

    Lecturer at the Department of Computer Science

  • Dr. Manuela Fischer

    Lecturer at the Department of Computer Science

  • Dr. Felix Friedrich Wicker

    Lecturer at the Department of Computer Science

  • Dr. Carlos Cotrini Jimenez

    Lecturer at the Department of Computer Science

Back to the Assessment View