30.100 Computational and Data-Driven Engineering

Home / Education / Undergraduate / Courses / 30.100 Computational and Data-Driven Engineering

This course will provide you with the indispensable computational skills required by modern engineers. We will use statistical, numerical, and computational methods to efficiently design complex engineering systems. We will go on a journey beyond the simple “toy” models that can be handled analytically to solving systems that are similar to those seen in real-world industry.


Course Lead/Main Instructor


The objective of this course is to provide students practical experience applying the major analytical techniques that are essential in modern engineering analysis. After completing the course, the students will be able to use computers to statistically design and optimise complex engineering systems and use numerical methods to model the performance of engineering and physical systems.

Besides developing fundamental modelling and statistical analysis skills, students will further develop their programming skills and working principles to a level that they can computationally design engineering systems.

Learning Objectives

  • Describe, plan, and program algorithms to analyse practical problems in physics, engineering and related fields.
  • Use statistical models to optimise a complicated engineering design, and to interpret design interactions in complex engineering systems.
  • Analyze, evaluate, and apply numerical methods to find roots of an equation, integrate equations, solve sets of ordinary differential equations and partial differential equations (both explicit and implicit)
  • Use numerical and analytical methods to design, analyze, and evaluate complex engineering systems.

Measurable Outcomes

  • Analyse and model the errors in a complicated engineering system using the propagation of error approach and justify design choices using empirical models based on statistical arguments.
  • Explain and apply methods to find roots, integrate equations, and solve sets of ordinary differential equations and partial differential equations (both explicit and implicit)
  • Use Python to analyse, design, and evaluate complex engineering systems.
  • Develop and deliver oral and written reports that clearly describe the engineering model, the Python program implementation, and the result of the model.
  • Solve engineering problems by writing Python code to apply the methods learned in this course.


Students will participate actively and will be encouraged to openly clarify problems during the class. Each topic will be delivered in a mini-lecture form with interactive quizzes incorporated into the mini lecture. Following the mini lectures, students will work on group-based case problems and individual computer programming exercises. Throughout the course students will gain hands-on experience solving engineering problems by writing programming code in Python. The final three weeks of the term will be dedicated to individual projects, which will provide each student with practical experience applying statistical and numerical modelling methods to real engineering systems.

Tentative Course Schedule

Week 1 Error Propagation and Monte Carlo approach
Week 2 Analysis of Variance
Week 3 Statistical Design of Experiments (Example Practical: Optimising 3D Prints)
Week 4 Root finding and Optimization
Week 5 Numerical integrals
Week 6 Analysing Ordinary Differential Equations
Week 8 Finite differences 1 (single ordinary differential equation)
Week 9 Finite difference 2 (systems of ordinary differential equations)
Week 10 Integrating partial differential equations
Weeks 11-13 Project with ethical considerations
Week 14 Industry Guest Speaker + Exams

Texts and Recommended Reading

The course will follow selected chapters from the following textbooks:

  • Engineering Statistics, Douglas C. Montgomery & George C. Runger & Norma F. Hubele
  • Numerical Methods for Engineers, Steven C. Chapra & Raymond P. Canale

In addition, the following texts are good references for the course:

  • Numerical Methods in Engineering with Python 3, Jaan Kiusalaas
  • Analysis of Numerical Methods. Isaacson and Bishop Keller
  • Numerical Analysis. Burden, Faires, Burden
  • Numerical Analysis. Suli, Mayers


  • Homework: 10%
  • Project: 25%
  • Mid-term Exam: 25%
  • Final Exam: 35%
  • Class Participation: 5%


  • Standard university policies apply.
  • Attendance to lessons is compulsory due to the nature of group learning. The 5% class participation includes attendance and active involvement in discussion.
  • Homework is intended to be individual work.
  • Late homework is not allowed.
  • Makeup exams may only be granted due to medical emergencies, urgent family matters, sickness, and for official events and competitions approved by the OSA.