A Two-Course Approach to Computational Competencies in Civil Engineering

Schliessen Icon
Kite Award 2026
NomineeLogo KITE Nominee

Innovedum

Competency-based
teaching

This project fosters digital literacy in civil engineering through two synergistic courses: Programming for Engineers introduces coding via hands-on tutorials and personalized feedback, guiding students to build their own engineering app. Scientific Computing builds on this foundation, applying numerical methods to simulate real-world phenomena. Together, they create a coherent pathway from first code to confident computational modeling.

Implementation of the Project/Courses

The complementary courses Programming for Engineers (1st semester) and Scientific Computing (6th semester) form a coherent pathway to foster computational competencies and digital literacy among civil engineering students. Together, they guide learners from writing first lines of code to confidently applying scientific computing tools in engineering practice.

Both courses are taught in person, combining interactive lectures, guided self-study, and personalized feedback. While lectures introduce key concepts and their relevance, we emphasize active learning through E-tutorials, coding exercises, and project work.

In Programming for Engineers, students—many with no prior experience—learn by doing. They progress through E-tutorials (using the ET platform of D-INFK), programming exercises, and an app development project. Every two weeks, students present their work one-on-one to a teaching assistant. This individualized coaching provides immediate feedback on their progress, and motivates continuous engagement throughout the semester. Appointment management is handled via the CodeExpert platform (D-INFK). A highlight is the app project, where each student develops a small engineering app. Starting with a basic text-based program, they incrementally add features and finally a graphical user interface. By the end of the semester, this functional product tangibly demonstrates their ability to integrate code with engineering domain knowledge.

Scientific Computing builds on this foundation, shifting the focus from syntax to computational thinking and modeling. Students explore numerical methods for linear algebra, ordinary and partial differential equations, and optimization. Through exercises and four mini-projects, they apply these methods to classical civil engineering simulation challenges. The mini-projects are assessed in summative one-on-one meetings with teaching assistants, serving as learning opportunities and fostering continuous engagement.

Both courses blend synchronous (lectures, presentations) and asynchronous elements (self-paced tutorials, exercises, projects), supported by Moodle, EduApp, CodeExpert, and direct assistance during Study Centers. For assessment, we combine ongoing evaluation through the one-on-one coaching with final computer-based exams, aligning formative learning with summative validation.

Together, these courses address key challenges in engineering education: motivating novices, supporting diverse learners, and linking computation to real-world contexts. The progression from foundational coding to applied scientific simulation gives graduates the confidence to use digital tools effectively in both research and practice.

Motivation, Project Mission, Vision Statement

Digital tools are now central to civil engineering, from structural optimization to sustainability analysis. However, many first-year students arrive at ETH with little to no programming experience. Our goal is to ensure that every student, regardless of their background, develops the computational literacy required for modern engineering.

The mission of our two-course pathway, Programming for Engineers and Scientific Computing, is to accompany students from their very first line of code to the development of practical engineering solutions. In Programming for Engineers, they gain confidence by creating their own small app, demystifying how software works. Later, in Scientific Computing, they learn to model, simulate, and analyse complex engineering problems by transforming theory into tools that serve practice.

Our core principles are the following:

  • Accessibility: Designed for complete beginners to ensure no student is left behind.
  • Authenticity: Exercises and projects are anchored in meaningful civil engineering contexts.
  • Autonomy: Students transition from guided tutorials to independent problem-solving.
  • Engagement: Personal projects and one-on-one coaching foster a sense of ownership and progress.

Our objective is to graduate civil engineers who are not just passive users of software, but who have the competence to adapt and design digital tools for their own research and practice.

Super Lernsystem mit: See, try, do, explain!! Hat mir sehr geholfen, obwohl mir zu Beginn des Semester das Programmieren sehr fremd war.
student voice

Innovative Elements

The project adapts the «See, Try, Do, Explain» framework to civil engineering, replacing isolated coding classes with a structured pathway that balances independent study with personalized interaction. The framework facilitates the transition from passive observation to active mastery. A central element are the one-on-one presentations for immediate feedback and continuous engagement. Integrated mini-projects incentivize progress through a performance bonus system.

A multi-layered assistance system supports students of all experience levels. E-tutorials enable self-paced learning, while help desks and in-class exercise sessions offer direct guidance from lecturers and TAs.

Coding tasks are aligned with engineering reality. Students develop functional apps and solve classical simulation challenges, ensuring programming is utilized as a practical tool for engineering insight. The courses build on each other and utilize tools like Moodle, EduApp, and CodeExpert for a cohesive, integrated learning experience.

Effects on Student Learning

The teaching model has significantly changed how civil engineering students engage with programming and computation. Evaluations show high levels of motivation and confidence, especially among beginners. Many students highlight the one-on-one feedback sessions as helpful in overcoming fear and building confidence.

Learning outcomes have been consistently high, with average grades of 5.00, 4.62, and 4.96 in 2022–2024. Over 25% achieved the maximum grade of 6, including many who started with no prior experience. In Scientific Computing, all students passed the first exam session with an average of 5.25, confirming the effectiveness of the approach.

Students demonstrate increased autonomy and the ability to transfer knowledge to simulation and modeling across the Bachelor program. The app project and open-ended assignments foster a sense of ownership over the material.

A strong sign of engagement: each year, more students apply to become teaching assistants than there are positions available, reflecting a sustained interest in the subjects.

ETH Competence Framework

The project fosters several core competencies:

Digital literacy & computational thinking: Students learn to design, implement, and test code. They learn to recognize engineering problems that can be solved or automated through computation.

Analytical problem-solving: Through app development and modelling tasks, students learn to decompose complex problems into structured computational steps.

Communication & self-management: One-on-one sessions develop technical communication, requiring students to explain their logic clearly to assistants. The self-paced E-tutorials and independent project work foster self-direction and time management throughout the semester.

Which Elements of Your Project Would You Recommend to Others?

The one-on-one feedback model is a central element of the curriculum, turning individual assessment into a coaching opportunity. This interaction supports student motivation and mastery and is scalable across other disciplines using trained teaching assistants.

Self-paced E-tutorials and context-rich tasks, such as developing a functional engineering application, ensure that programming remains tangible and relevant to professional practice.

The two-stage course design offers a blueprint for embedding digital literacy into engineering curricula. By progressing from basic syntax to applied scientific computing, the model ensures that even beginners can successfully transition into confident problem-solvers motivated to support the next cohort.

loading