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.

Pre-Requisites
Course Lead/Main Instructor
  • Robert E Simpson

Goal

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.
Pedagogy

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 1Error Propagation and Monte Carlo approach
Week 2Analysis of Variance
Week 3Statistical Design of Experiments (Example Practical: Optimising 3D Prints)
Week 4Root finding and Optimization
Week 5Numerical integrals
Week 6Analysing Ordinary Differential Equations
Week 8Finite differences 1 (single ordinary differential equation)
Week 9Finite difference 2 (systems of ordinary differential equations)
Week 10Integrating partial differential equations
Weeks 11-13Project with ethical considerations
Week 14Industry 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
Grading
  • Homework: 10%
  • Project: 25%
  • Mid-term Exam: 25%
  • Final Exam: 35%
  • Class Participation: 5%
Policies
  • 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.