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

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.
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.
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

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
Tutorial12
Follow-up work18
Wider reading or practice32.5
Lecture36
Revision10
Total study time150

Resources & Reading list

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

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

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%
Exam  (1.5 hours) 40%
Technical Laboratories 30%

Referral

MethodPercentage contribution
Exam 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisites

To study this module, you will need to have studied the following module(s):

CodeModule
ELEC1201Programming
Share this module Facebook Google+ Twitter 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.

×