Programming for Engineers

Prof. Dr. Bruno SUDRET and Dr. Nora LÜTHEN

Programming for Engineers is a first-semester course of the new Bachelor's programme of Civil Engineering. This course is a hands-on introduction to programming with Matlab and Python, oriented at the needs of civil engineers. The course is held in a novel format comprising self-paced tutorials, a project consisting of implementing an engineering application including graphical user interface, and individual meetings with teaching assistants to demonstrate understanding and progress.

Fall Semester

  • Lecture: Monday 12:15-14:00, HG D 1.1
  • Exercise sessions: Individual meetings with teaching assistants every second week, Tuesday 16:00-18:00 and Thursday 14:00-18:00.

Content

The course is structured into six modules. The first five are using Matlab, while the last introduces Python.

  1. Getting to know Matlab: Matlab as a calculator, variables and arrays
  2. Programming basics I: iterating and branching
  3. Programming basics II: input and output, functions, visualization
  4. Introduction to scientific programming: implementing simple algorithms from numerics, statistics and discrete math; validation, testing and debugging
  5. From structures to objects to GUI: basics of object-oriented programming, introduction to interactive programming and graphical user interfaces (GUI)
  6. Introduction to programming with Python

Learning objectives

Students recognize the usefulness and power of computer tools in civil engineering, and are prepared to independently use Matlab or Python for solving future problems.

  • Students are able to explain basic computer science concepts in simple terms.
  • Students are able to understand and explain the functionality of existing code.
  • Students are able to analyse a simple civil engineering problem in order to partition it into logical blocks and devise an algorithm to systematically solve the problem.
  • Students are able to implement simple imperative algorithms in Matlab and Python and explain the functionalities of their code. They are able to extend existing code with new functionalities.
  • Students are able to validate, test and debug their own code as well as existing code.
  • Students are able to explain the basics of object-oriented and interactive programming and are able to extend existing skeleton code to create simple graphical user interfaces.

Script

A script will be provided. The students will discover the topics of each module through online E.tutorials that they will work on at their own pace.

Course material

protected pageLink to the course material (Restricted Access to ETH members)

JavaScript has been disabled in your browser