EE Department Intranet -
Close window CTRL+W

ELEC40004 (ELEC40004) Programming for Engineers

Lecturer(s): Dr Max Cattafi


Electrical and computer engineers often need to interface software to low-level systems and use software to control hardware directly, so this courses introduces programming using C++, which delivers both modern abstractions as well as the ability to do bare-metal programming. The course assumes no prior programming experience, and spends the first term teaching standard imperative programming skills such as control-flow, variables, and data structures. The second term then moves onto higher-level aspects of programming such as encapsulation and OOP, with increased emphasis on designing more complex software systems.

Learning Outcomes

Upon successful completion of this module, you will be able to:
Use the fundamental components of imperative programming in terms of control-flow and data structures.
Design and implement C++ programs that communicate using file-based I/O and in a text-based environment.
Verify the correct behaviour of programs using test benches and diagnose and fix incorrect behaviour.
Select and use data-structures from the STL according to needed performance and functionality and gain insight into their implementation.
Use encapsulation, and abstraction to manage software complexity.
Approach the modelling of real-world domains by means of object-oriented software engineering.


Programming environments
Basic I/O
Text Files
The Standard Template Library
Structured data types
Abstraction and encapsulation
Arrays, pointers, dynamic memory
Implementing data structures (vectors, lists, trees)
Algorithms and recursion
Introduction to inheritance and polymorphism
Exam Duration: N/A
Coursework contribution: 100%

Term: Autumn & Spring

Closed or Open Book (end of year exam): N/A

Coursework Requirement: Programming Assignments and Team Project
Coursework assessment: Continuous during term
Coursework Weighting: 80% and 20% respectively

Oral Exam Required (as final assessment): no

Prerequisite module(s): None required

Course Homepage: unavailable

Book List: