Module Leader

Dr Thrishantha Nanayakkara
t.nanayakkara@imperial.ac.uk

Dr Nicolas Rojas
n.rojas@imperial.ac.uk


This module aims to introduce students to computer programming and analysis through a hands-on approach. They will learn the Python programming language using the Jupyter Notebook environment. The module will focus on the fundamental algorithms and data structures that are the foundations of computer programming in any language. Students will use Python coding to solve maths problems, a key foundation skill needed in design engineering. By the end of the module, students should be able to write moderately complex programs based on the Python language and be able to transition easily to other high-level languages, such as Java, C#, .NET, C++, etc. The idea of this introductory course is to lay a foundation such that the students can undertake independent learning for application-specific programming in their subsequent analytical work.      

        

Learning Outcomes

On completion of this module, students will be better able to:

  •   Use variables and data structures to solve computing problems
  •   Use functions/classes from software libraries to write efficient code
  •   Use functions to solve repeating problems
  •   Code decision trees and recurrent commands
  •   Develop algorithms to solve a given problem
  •   Design object oriented solutions to solve complex problems
  •   Enact good collaborative practices of documentation, commenting, and version control
  •   Solve computational problems using coding and mathematics             

 

Description of Content

Introduction to the Central Processing Unit:
  Data (integer, boolean, float, dictionaries)
  Instructions
  Memory
Functions:
  Solve equations
  Manipulate variables
Practice using software libraries:
  Math
  Numpy
  Symbolic python
  Plotting
Decision making:
  Conditions
  For and While loops
Problem solving:
  Object oriented problem formulation
  Algorithm planning and testing
  Error handling
  Communication