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
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Implement effective application, kernel-level, and stand-alone C++.
- Design, write and debug C++ using the Eclipse IDE.
- Make use of SystemC.
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Use appropriate techniques to work effectively within a team.
- Keep an effective record of the development and testing of your work.
- Model software systems before implementation.
- Manage your time in a collaborative project.
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 relationship between application, kernel and stand-alone code.
- Describe the principles of Object-Oriented programming, including the concepts of inheritance, abstraction and polymorphism.
- Describe the software lifecycle.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Design new OO programs.
- Effectively integrate reusable OO libraries
- Analyse, enhance and debug existing 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 |
---|---|
Lecture | 36 |
Completion of assessment task | 23.5 |
Follow-up work | 18 |
Tutorial | 12 |
Wider reading or practice | 32.5 |
Revision | 10 |
Preparation for scheduled sessions | 18 |
Total study time | 150 |
Resources & Reading list
Textbooks
Bjarne Stroustrup (2013). The C++ Programming Language.
Walter Savitch. Absolute C++.
Stanley B. Lippman (2005). C++ Primer. Josée Lajoie & Barbara E. Moo.
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 |
---|---|
Collaborative Project | 30% |
Technical Laboratories | 30% |
Examination | 40% |
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