OBJECT ORIENTED DESIGN & C++ - 2021/2
Module code: COM2038
In light of the Covid-19 pandemic, and in a departure from previous academic years and previously published information, the University has had to change the delivery (and in some cases the content) of its programmes, together with certain University services and facilities for the academic year 2020/21.
These changes include the implementation of a hybrid teaching approach during 2020/21. Detailed information on all changes is available at: https://www.surrey.ac.uk/coronavirus/course-changes. This webpage sets out information relating to general University changes, and will also direct you to consider additional specific information relating to your chosen programme.
Prior to registering online, you must read this general information and all relevant additional programme specific information. By completing online registration, you acknowledge that you have read such content, and accept all such changes.
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 a fully functioning industrially recognized language for large scale application programming. The module will provide students with an exploration of Object Orientated Design and Programming, through implementation in the C++ language
JIN Yaochu (Computer Sci)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 5
JACs code: I300
Module cap (Maximum number of students): N/A
Prerequisites / Co-requisites
None. Expected prior learning: A good working knowledge of programming using a procedural or object-oriented language.
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
|Assessment type||Unit of assessment||Weighting|
|Examination||2-HOUR CLOSED BOOK WRITTEN EXAMINATION||50|
|Coursework||C++ GROUP PROGRAMMING ASSIGNMENT||50|
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 (50%)
Programming Assignment: to be completed during the semester over a period of 5 weeks (50%). The assignment will be set in week 5 due Tuesday Week 11, with testing of code performed in week 11.
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 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 assignment.
- 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.
|001||Describe the fundamental principles of object orientated design||KC|
|002||Demonstrate the implementation of object orientated design principles in C++|
|003||Apply object orientated design to large/complex programming problems||CPT|
|004||Design and implement computer code to solve large, complex, programming problems in C++||KCP|
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Overall student workload
Lecture Hours: 24
Laboratory Hours: 24
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 that will closely follow the lecture 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: 11 weeks at 2 hours per week.
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Upon accessing the reading list, please search for the module using the module code: COM2038
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 2021/2 academic year.