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