Module overview
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Explain purposes and uses of overloading, templates, and sub-typing in C++.
- Summarise the main purposes of compilation, and explain how compilation differs from interpretation.
- Summarise how the stack and the heap are used by a C program.
- Explain how low-level languages interact with memory using pointers, references, and addresses.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Write and compile programs in a low-level programming language.
- Execute the aforementioned programs both on an embedded devices and on computers more generally.
- Apply testing and debugging techniques to find and fix programming errors.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Use memory transactions to communicate with devices in an embedded system
- Write, compile, and execute programs in an embedded device
Syllabus
- Introductory C: Strong typing (vs weak typing), compilation (vs
interpretation).
- Memory management: Stack/heap memory models, pointers and references, fault diagnosis techniques.
- Features commonly found in low-level programming languages (e.g. the preprocessor)
- Tooling: Memory checkers, testing frameworks, debuggers, and techniques for effective use of these.
- Practical experience working with an embedded system as a case study.
- OOP in a low-level programming with C++: templating, and the Standard Template Library, static vs dynamic types, overloading, and inheritance and containment relationships.
Learning and Teaching
Teaching and learning methods
- Lectures
- Guided self-study
- Labs as part of the AICE Lab Programme which will cover practical aspects
Type | Hours |
---|---|
Specialist Laboratory | 30 |
Independent Study | 80 |
Lecture | 32 |
Completion of assessment task | 8 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
CAA Exam | 10% |
Final Assessment | 65% |
Computing Laboratories | 25% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Lab Marks carried forward | 25% |
Final Assessment | 75% |