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

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

Follow-up work18
Wider reading or practice32.5
Completion of assessment task23.5
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
Continuous Assessment 60%
Final Assessment  40%


MethodPercentage contribution
Set Task 100%


MethodPercentage contribution
Set Task 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
Privacy Settings