Computing and Numerical Methods 1

Module aims

This course introduces basic computing and programming skills for the solution of engineering problems. Assuming no prior knowledge, it introduces students to the key constructs and thought processes required in order to construct complex algorithms using the MATLAB and Python scripting languages. Numerical methods for interpolation, numerical integration and root finding are discussed and implemented.

Learning outcomes

On successfully completing this module students should be able to:

1. explain the limitations in computation associated with finite precision;
2. demonstrate understanding of and implement the essential procedural programming constructs in MATLAB and Python;
3. translate mathematical problems into algorithms suitable for programming implementation;
4. apply iterative processes of root finding and understand reasons for their convergence
5. apply interpolation and numerical integration techniques for the solution of engineering problems;

Module syllabus

Basic computing: Computing fundamentals, Storing Numbers on a Computer: Binary. Rounding errors. Implications for numerical computations, Introduction to programming
MATLAB: The MATLAB environment, help system, basic calculations, graphics and file I/O, control structures, loops, vectors and arrays, scripts and functions, good programming style
Python: Running Python, types and variables, basic syntax, containers and modules
Numerical Methods: Interpolation, Numerical Integration, Solution of Nonlinear Equations

Teaching methods

The instruction of programming is carried out using a flipped-classroom approach. Prior to the tutorial session, you will review a pre-recorded lecture and test your understanding by solving short exercises through an online portal. During the 2-hour in-class tutorial that follows, you will have the opportunity to discuss the solution of the online self-assessment with the tutor and raise any questions. A problem sheet is then attempted, with tutors available to answer questions.

For the part of the module addressing numerical methods, you will be introduced to the fundamental idea behind the methods using large whole class lectures, with half-class tutorial sessions, held in computer labs, used to apply and reinforce your understanding.

Assessments

The module offers extensive opportunities for self-assessment, through both the pre-session online tests and weekly tutorials. 
 You will be further assessed through two in-class programming tests (assessing your mastery of the Matlab and Python languages respectively), a multiple choice test on numerical methods and a computing project.  
 
Assessment type Assessment description Weighting Pass mark
Examination MATLAB Mastery Test 30% 40%
Examination Python Mastery Test 10% 40%
Examination Numerical Methods MCQ 10% 40%
Coursework Project 50% 40%

You will be offered opportunities to receive both structured and opportunistic feedback. Through the weekly programming tutorials, you will be able to self-assess your progress and understanding, as well as ask for feedback from the class tutors.
Written feedback will be provided for your submission for the project and your in-class test submission.
Further individual feedback is available on request via this module’s online feedback forum and staff office hours.

Reading list

Core