Module overview
To embed an understanding of Object Oriented development and grow specific skills in using C++ in a variety of situations.
Linked modules
Pre-requisite: ELEC1201
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- 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.
- Appreciate basic HCI and its relevance to UI design.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Implement effective application, kernel-level, and stand-alone C++.
- Make use of SystemC.
- Design, write and debug C++ using the Eclipse IDE.
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Model software systems before implementation.
- Use appropriate techniques to work effectively within a team.
- Manage your time in a collaborative project.
- Keep an effective record of the development and testing of your work.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Effectively integrate reusable OO libraries
- Analyse, enhance and debug existing OO programs.
- Design new OO programs.
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
Type | Hours |
---|---|
Preparation for scheduled sessions | 18 |
Tutorial | 12 |
Revision | 10 |
Completion of assessment task | 23.5 |
Wider reading or practice | 32.5 |
Follow-up work | 18 |
Lecture | 36 |
Total study time | 150 |
Resources & Reading list
Textbooks
Stanley B. Lippman (2005). C++ Primer. Josée Lajoie & Barbara E. Moo.
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
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Technical Laboratories | 30% |
Examination | 40% |
Collaborative Project | 30% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Examination | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Examination | 100% |
Repeat Information
Repeat type: Internal & External