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:
- Effectively integrate reusable OO libraries
- Analyse, enhance and debug existing OO programs.
- Design new OO programs.
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- 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.
- Describe the software lifecycle.
- Appreciate basic HCI and its relevance to UI design.
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.
- Manage your time in a collaborative project.
- Keep an effective record of the development and testing of your work.
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 |
---|---|
Completion of assessment task | 23.5 |
Wider reading or practice | 32.5 |
Tutorial | 12 |
Lecture | 36 |
Follow-up work | 18 |
Preparation for scheduled sessions | 18 |
Revision | 10 |
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
Summative assessment description
Method | Percentage contribution |
---|---|
Final Assessment | 40% |
Continuous Assessment | 60% |
Referral
Referral assessment description
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
Repeat assessment description
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External