Skip to main navigationSkip to main content
The University of Southampton

ELEC1204 Advanced Programming

Module Overview

To embed an understanding of Object Oriented development and grow specific skills in using C++ in a variety of situations.

Aims and Objectives

Module Aims

The module main aim is to introduce students to fundamental concepts of low frequency electromagnetics with examples from electrical power engineering. - To give the students an appreciation of the importance of computational electromagnetics in the context of engineering. - To introduce the students to fundamental numerical techniques for solving field problems. - To equip the students with basic programming, computing and CAD skills. - To introduce the students to the more advanced concept of principles of electromechanical energy conversion based on Hamilton’s principle. - To increase the awareness of the students of the role of mathematics in engineering

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Appreciate basic HCI and its relevance to UI design.
  • Describe the software lifecycle.
  • Describe the principles of Object-Oriented programming, including the concepts of inheritance, abstraction and polymorphism.
  • Describe the relationship between application, kernel and stand-alone code.
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Analyse, enhance and debug existing OO programs.
  • Design new OO programs.
  • Effectively integrate reusable OO libraries
Transferable and Generic Skills

Having successfully completed this module you will be able to:

  • Model software systems before implementation.
  • Keep an effective record of the development and testing of your work.
  • Manage your time in a collaborative project.
  • Use appropriate techniques to work effectively within a team.
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Design, write and debug C++ using the Eclipse IDE.
  • Implement effective application, kernel-level, and stand-alone C++.
  • Make use of SystemC.


Relationship between C and C++; other OO languages Introduction to the Raspberry Pi platform Introduction to C++ - Encapsulation - Classes - Objects - Inheritance - Polymorphism Programming in C++ - The software lifecycle - Source code control - Testing - Object-oriented programming - Use of OO modelling tools, including UML - GUIs; UI design - Exception Handling - Storage (Files & Databases) - Dynamic memory allocation Introduction to data structures - Trees and Graphs - Stacks queues and linked lists - Searching and sorting Use of high-level program development tools Approaches to collaborative programming Databases and other persistent storage Operating systems and device drivers Introduction to System C Multi-threaded programming in C++ 2011 Introduction to distributed computing

Learning and Teaching

Completion of assessment task23.5
Wider reading or practice32.5
Follow-up work18
Preparation for scheduled sessions18
Total study time150

Resources & Reading list

Walter Savitch. Absolute C++. 

Bjarne Stroustrup (2013). The C++ Programming Language. 

Stanley B. Lippman (2005). C++ Primer. 


Assessment Strategy

These technical labs consider C++ programming, addressing the above-listed learning outcomes. They are conducted under the umbrella of ELEC1029 but the marks contribute towards this module.


MethodPercentage contribution
Collaborative Project 30%
Examination  (1.5 hours) 40%
Technical Laboratories 30%


MethodPercentage contribution
Examination 100%


MethodPercentage contribution
Examination 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisite: ELEC1201

Share this module Share this on Facebook Share this on Twitter Share this on Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.