C++ AND OBJECT-ORIENTED DESIGN - 2017/8

Module code: EEE2047

Module provider

Electrical and Electronic Engineering

Module Leader

HADFIELD SJ Dr (Elec Elec En)

Number of Credits

15

ECT Credits

7.5

Framework

FHEQ Level 5

JACs code

Module cap (Maximum number of students)

N/A

Module Availability

Semester 2

Overall student workload

Assessment pattern

Assessment type Unit of assessment Weighting
Examination 2 HOUR CLOSED-BOOK WRITTEN EXAMINATION 80%
Coursework CONTINUOUS ASSESSMENT BASED ON LABS (4 TOTAL, EACH WORTH 5%) 20%

Alternative Assessment

Not applicable: students failing a unit of assessment resit the assessment in its original format.

Prerequisites / Co-requisites

None.

Module overview

Expected prior learning:  A good working knowledge of procedural programming, preferably in the C programming language.  [Surrey EEE students should have achieved this in their Year 1 studies.

Module purpose:  Object orientated programming (OOP) is a popular programming methodology for large application programming. C++ is a powerful programming language which, being backwards compatible with C, provides efficient access to low level components of a system. This makes it important for Electronic Engineering yet it is also a fully functioning industrially recognized language for large scale application programming. The module will provide students with the fundamentals of Object Orientated Design and Programming, with specific emphasis on its implementation in the C++ language.

Module aims

Familiarise students with advanced object orientated methodology, software design and implementation, assuming that

Cover the features of the C++ language and how they relate to object orientated methodology

Present the use of OO methodology in application programming.

Learning outcomes

Attributes Developed
Describe the fundamental principles of object orientated design KC
Demonstrate the implementation of object orientated design principles in C++ KP
Apply object orientated design to large/complex programming problems CPT
Design and implement computer code to solve large, complex, programming problems in C++ KCP

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Module content

Indicative content includes the following.

[1-2]        Introduction to Object-Oriented design - The case for object-oriented design. Abstraction, encapsulation, modularity, reuse of software.  Overview of the course.

[3-4]        A Refresher Course in C - Overview of C, Procedural Programming, Structures.

[5-8]        The C++ Class - Basics of the C++ class, constructors, destructors, memory allocation, operator overloading, friend operators.

[9-12]      Inheritance - Inheritance, public/private/protected, member functions/variables, casting, virtual and abstract.

[13-14]    Templates - templates and generic programming, design and use.

[15-16]    Standard Template Library - namespaces, streams, strings, vectors, lists, iterators, maps and algorithms

[17-18]    A Review of C++ - general review of the key components of C++

[19–20]   Object Orientated Design Methodology - Design issues and planning

                [21–22]    Revision

Methods of Teaching / Learning

The learning and teaching strategy is as follows. There will 2 hours of lectures per week, with an associated 2 hours of computer-laboratory-based material (starting in week 2) that will closely follow the lectured material. The purpose of the programming laboratories is for students to gain first-hand experience in applying the concepts taught in lectures.

Learning and teaching methods include the following.



Lectures: 11 weeks at 2 hours per week.


Programming Laboratories: 10 weeks at 2 hours per week.


Assessment Strategy

The assessment strategy for this module is designed to provide students with the opportunity to demonstrate both knowledge and practical expertise in the design and implementation of object oriented programmes in C++. The written examination will assess knowledge and the assimilation of terminology, concepts, syntax and features of object orientated programming paradigms, and the specific instantiation of these concepts in C++. The assignment will assess the ability of students to design and implement these skills in a practical setting.

Thus, the summative assessment for this module consists of the following.



Examination: 2-hour, closed-book written examination  (80%)


Continuous Assessment based on labs: to be completed after the weekly lab sessions, before the following lab. Each week from week 7-10 the students will be submit work based on extensions of that week’s lab material, with each assessment being worth 5% of their overall mark (20% total).

Any submission deadline given here is indicative. For confirmation of exact date and time, please check the Departmental assessment calendar issued to you.



Formative assessment and feedback

For the module, students will receive formative assessment/feedback in the following ways.



During lectures, by question and answer sessions


During optional tutorials/tutorial classes


During supervised computer laboratory sessions


Via assessed coursework


Via sample design provided to the students following submission of preliminary design.


Via discussion in lectures about suitable design solutions for the assignement.


Reading list

Reading list for C++ AND OBJECT-ORIENTED DESIGN : http://aspire.surrey.ac.uk/modules/eee2047

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2017/8 academic year.