Module overview
This module introduces some advanced programming, simulation and design modelling frameworks and tools. Teaching activities are a combination of taught sessions, expanded self-study supported by the Professional Skills Hub and practical hands-on sessions in computer laboratories. The tools and techniques studied in this module are also used in the companion design module in practical hands on applications.
Aims and Objectives
Learning Outcomes
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Understand and choose appropriate commercial numerical simulation tools for different physical problems.
- Model software systems before implementation.
- Address novel design challenges by choosing appropriate analysis and design methods.
- Select an appropriate numerical approach for different simple mathematical problems.
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The use of programs for numerical solution of mathematical equations.
- Approaches for numerical simulation of electrical and electromagnetic fields and systems.
- The principles of Object-Oriented programming, including the concepts of inheritance, abstraction and polymorphism.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Analyse, enhance and debug existing OO programs.
- Effectively integrate reusable OO libraries.
- Describe the most appropriate numerical approach for different electrical problems.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Use simple numerical programs to solve physical problems
- Design, write and debug Object-Oriented programs
- Use numerical simulation software for a range of practical applications and design questions.
Syllabus
Advanced Programming
•Introduction to Object Oriented Programming (C++)
•Encapsulation; Classes; Objects; Inheritance; Polymorphism
•Programming in C++: The software lifecycle; Source code control; Testing
•Use of OO modelling tools, including UML
•Exception Handling; Storage (Files & Databases); Dynamic memory allocation
•Introduction to data structures; Trees and Graphs; Stacks queues and linked lists; Searching and sorting
•Programming Skills; Use of high-level program development tools; Collaborative programming
Numerical Programming
•Introduction to numerical simulation
•Numerical solution of ODEs
•Numerical simulation of PDEs
Numerical Analysis of Fields and Electrical Systems
•Methods for numerical integration
•Software approaches for PDEs in Field Problems
•Finite Element Method
•Simulation and Analysis of Circuits
Learning and Teaching
Teaching and learning methods
The content of this module is delivered through lectures, module website, directed reading, pre-recorded materials and practical sessions.
Students work on their understanding through a combination of independent study, preparation for timetabled activities and tutorials.
Students work on their practical skills and professional skills through laboratory sessions and discussion tutorials.
| Type | Hours |
|---|---|
| Specialist Laboratory | 36 |
| Completion of assessment task | 60 |
| Follow-up work | 12 |
| Preparation for scheduled sessions | 18 |
| Lecture | 24 |
| Total study time | 150 |
Assessment
Assessment strategy
This module is assessed entirely by a combination of coursework exercises, presentations and reports, along with demonstrations. There is no referral opportunity for this module. There is no external repeat opportunity for this module.Summative
This is how we’ll formally assess what you have learned in this module.
| Method | Percentage contribution |
|---|---|
| Coursework | 100% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
| Method | Percentage contribution |
|---|---|
| Coursework | 100% |
Repeat Information
Repeat type: Internal