Skip to main navigationSkip to main content
The University of Southampton
Courses

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.

Syllabus

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

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

Resources & Reading list

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

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

Walter Savitch. Absolute C++. 

Assessment

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.

Summative

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

Repeat

MethodPercentage contribution
Examination 100%

Referral

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
Privacy Settings