Engineering

Note: If you wish to add a link on another site which will always find the *current* module descriptor please use the following format: http://intranet.exeter.ac.uk/emps/modules/[modulecode] replacing [modulecode] with the appropriate code.

e.g: http://intranet.exeter.ac.uk/emps/modules/ECM1101

ECMM171 - Programming for Engineering (2019)

Back | Download as PDF
MODULE TITLEProgramming for Engineering CREDIT VALUE15
MODULE CODEECMM171 MODULE CONVENERDr David Moxey (Coordinator), Dr Evangelos Papatheou (Coordinator)
DURATION: TERM 1 2 3
DURATION: WEEKS 12 weeks 0 0
Number of Students Taking Module (anticipated) 66
DESCRIPTION - summary of the module content

This course will focus on developing an understanding of basic issues related to programming for engineering applications. You will be introduced to the basic concepts and principles of computer programming, resulting in the ability to form algorithms to solve problems, write your own code and create your own computer applications. The course will start with an introduction/overview of basic computer programming principles such as defining variables, evaluating conditions and evaluating functions. This will be followed by the description of principles in procedural software programming using either the Python programming language or Matlab. You will also be exposed to real world applications of computation within engineering.

AIMS - intentions of the module

This module will introduce you to basic software development and programming principles to solve engineering and computational problems using either Matlab or Python. The module content is customised for beginners with specific applications in engineering.

INTENDED LEARNING OUTCOMES (ILOs) (see assessment section below for how ILOs will be assessed)

This is a constituent module of one or more degree programmes which are accredited by a professional engineering institution under licence from the Engineering Council. The learning outcomes for this module have been mapped to the output standards required for an accredited programme, as listed in the current version of the Engineering Council’s ‘Accreditation of Higher Education Programmes’ document (AHEP-V3).

This module contributes to learning outcomes: SM5m, EA3m, EA1fl, EA4m, G1m, G1fl

A full list of the referenced outcomes is provided online:
https://intranet.exeter.ac.uk/emps/studentinfo/subjects/engineering/accreditation/

The AHEP document can be viewed in full on the Engineering Council’s website, at http://www.engc.org.uk/

On successful completion of this module, you should be able to:

Module Specific Skills and Knowledge:

1. Understand the algorithmic and code development process;

2. Learn how to write your own software code in Python or Matlab;

3. Use the code you have written to solve real-life problems, both in engineering and elsewhere in computing.

Discipline Specific Skills and Knowledge:

4. Identify the key processes relevant to solving computational engineering problems.

Personal and Key Transferable / Employment Skills and Knowledge:

5. Show enhanced independent learning.

SYLLABUS PLAN - summary of the structure and academic content of the module

This course will be run in two different tracks, using either Python or Matlab, depending if you are on the undergraduate or taught postgraduate programme:

• If you are on the undergraduate programme (i.e. MEng and registered on the module ECMM171), you will be in the Python cohort;

• If you are on the taught postgraduate programme (i.e. MSc, Pg-Dip or Pg-Cert and registered on the module ECMM171P), you will be in the Matlab cohort.

The two different cohorts will have different timetables and slightly different course materials, owing to the requirements for Python and Matlab. Different languages are used because most undergraduates have already seen Matlab in previous years and are therefore more likely to benefit from a broader investigation of programming languages. Since some masters’ level modules utilise Matlab and PGT students typically have a more varied background, they benefit more from a Matlab course. However, content and assessments between the two languages are broadly extremely similar.

Each section below outlines the module materials for each cohort. Note that this is intended to give an overview of general overview of the topics being covered, and may be subject to change.

Python cohort

• Week 1: Introduction to programming;

• Week 2: Variables and flow control;

• Week 3: Lists and loops;

• Week 4: Functions and modules;

• Week 5: Exceptions and I/O;

• Week 6: Numerical Python with NumPy;

• Week 7: Plotting with matplotlib;

• Week 8: Testing and good practice;

• Week 9: Numerical methods I: Integration;

• Week 10: Numerical methods II: optimisation;

• Week 11-12: Object-orientated programming.

Matlab cohort

• Week 1: Introduction to Matlab;

• Week 2: Program flow control;

• Week 3: Loops and functions I;

• Week 4: Loops and functions II;

• Week 5: Linear algebra and curve fitting;

• Week 6: Roots and function handles;

• Week 7: Advanced data structures;

• Week 8: File I/O;

• Week 9: Numerical calculus and ODE solving;

• Week 10: Plots and figure handles;

• Week 11: Symbolic toolbox and optimization;

• Week 12: Introduction to Simulink.

LEARNING AND TEACHING
LEARNING ACTIVITIES AND TEACHING METHODS (given in hours of study time)
Scheduled Learning & Teaching Activities 36.00 Guided Independent Study 114.00 Placement / Study Abroad 0.00
DETAILS OF LEARNING ACTIVITIES AND TEACHING METHODS
Category Hours of study time Description
Scheduled learning activities 12 Lectures
Scheduled learning activities 24 Workshops
Guided independent studies 114 Assessment preparation, private study

 

ASSESSMENT
FORMATIVE ASSESSMENT - for feedback and development purposes; does not count towards module grade
Form of Assessment Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
Questions posed and answered in the class N/A All Verbal
Workshop Exercise Sheets 2 hours All Verbal, written ideal solutions released at end of class
       
       
       

 

SUMMATIVE ASSESSMENT (% of credit)
Coursework 80 Written Exams 0 Practical Exams 20
DETAILS OF SUMMATIVE ASSESSMENT
Form of Assessment % of Credit Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
Coursework 1: Python/Matlab Exercises 30 6 hours, done at home All Written
Coursework 2: Applied Programming Python/Matlab 50 12 hours, done at home All Written
In-Class test (practical exam) 20 2 hours, done in workshop All Written
         

 

DETAILS OF RE-ASSESSMENT (where required by referral or deferral)
Original Form of Assessment Form of Re-assessment ILOs Re-assessed Time Scale for Re-assessment
Summative Assessment Alternative Coursework Assessment All August Ref/Def period
       
       

 

RE-ASSESSMENT NOTES

If you fail assessment (as defined above) or are deferred you will be reassessed via another coursework assessment which will be set in July. Your final mark for the module will be 100% based on this test.

RESOURCES
INDICATIVE LEARNING RESOURCES - The following list is offered as an indication of the type & level of
information that you are expected to consult. Further guidance will be provided by the Module Convener

Basic reading:

ELE: http://vle.exeter.ac.uk/

Web based and Electronic Resources:

Python documentation: https://www.python.org/doc/

Mathworks online tutorial for MATLAB: https://www.mathworks.co.uk/academia/student_center/tutorials/register.html

Other Resources:

 

Reading list for this module:

Type Author Title Edition Publisher Year ISBN Search
Set Downey, A.B. Think Python Green Tea Press/O'Reilly 2015 [Library]
CREDIT VALUE 15 ECTS VALUE 7.5
PRE-REQUISITE MODULES None
CO-REQUISITE MODULES None
NQF LEVEL (FHEQ) 7 AVAILABLE AS DISTANCE LEARNING No
ORIGIN DATE Tuesday 10 July 2018 LAST REVISION DATE Monday 08 July 2019
KEY WORDS SEARCH Engineering programming; software engineering; procedural; object-oriented; Python