CS1D461 - C++ Programming 16 Jul 2020 - 31 Aug 2022 | Version 3

Associated Module Information

Module Code: CS1D461
Module Title: C++ Programming
Faculty: Faculty of Computing, Engineering and Science
Faculty Group: Computing and Mathematical Sciences
Faculty Sub Group: Computer Science
Module Leader: Shiny Verghese
Module Team: Christopher Tubb, Laurence Jones, Mabrouka Abuhmida
First Intended Intake: SEP 2016 Final Year of Intake:
Date Closed: 12 Feb 2024
Credit Value: 40 Credit Level: 4
Language: English
Percentage of Module Taught in Welsh: 0
Equivalent Module:
HECOS codes: 100960 - object-oriented programming
HECOS Code Weighting: 100

Document Version Information

Version 3
Valid From 16 Jul 2020
Valid To 31 Aug 2022

Module Aims

  • To introduce fundamentals of programming and problem solving using the concept of object-orientated programming.
  • To develop an understanding of the process of software development and the specific skills required for problem solving using a structured approach to top down program design, documentation and testing.
  • To introduce the use of software components and emphasise the importance of readable, understandable and maintainable code.

Content Summary

Introducing Software Development - the role and usage of Software Development Environments in the production of software solutions, the software development process.

Design - design methodologies to facilitate top down programming.

Variable types – storing and accessing data, defining and executing operations on data; identifiers and variables, assignment, increment/decrement; Numeric data types: integers, floating point numbers; Booleans, characters, strings; constants; arrays; type conversions, casting, and scope.

Overview of program constructs – sequence, selection (conditionals) and iteration (loops), functions, input/output operators and manipulators, variables, keywords and layout.

Streams - input and output, stream operators, stream manipulators, stream member functions, file streams, data files, string streams.

Introduction to libraries.

Functions - function declarations and definitions, calling functions, arguments, function returns, constants and pass by value, pass by reference.

Pointers – declaring and using pointers, pointers vs references.

Validation of input data.

Exceptions and exception handling.

Secure software design methodology.

Structured data types - creation and use.

Object-oriented programming concepts: classes and objects; Attributes (data members), methods (member functions), constructors, and destructors; inheritance; relationships between classes and objects.

Overloading functions, methods, and operators; overloading vs overriding.

Polymorphism.

Introduction to Object-oriented modelling and design.

Abstract data types, templates (methods and classes) - The C++ Standard Library, STL.

Software Quality Assurance - documenting and testing programs.

Learning and Teaching Methods

Activity Type Hours
Lecture 48
Practical classes and workshops 96
Independent Study 160
Directed Study 96
Total Hours Selected 400

Learning Outcomes

# Learning Outcome
LO1 To design, implement and test computer programs to solve a range of technical and mathematical problems.
LO2 To follow a secure design methodology and promote code re-use.

Module Requisites

N/A

Assessment Criteria

Assessment Category Assessment Type Description Duration Word Count Weight (%) Best of? Pass Mark
Practical Assessment (CW) Tutorial Exercises 2 A series of fundamental programming exercises intended to impart a practical knowledge of concepts introduced in class. 0 N/A 20 No 40
Practical Assessment (CW) Practical Coursework 2 Object-Oriented programming task including some advanced concepts 0 N/A 40 No 40
Practical Assessment (CW) Practical Coursework 1 Programming task using classes and objects 0 N/A 30 No 40
Practical Assessment (CW) Tutorial Exercises 1 A series of fundamental programming exercises intended to impart a practical knowledge of concepts introduced in class. 0 N/A 10 No 40

Assessment Matrix

Assessment Type Learning Outcomes
LO1 LO2
Tutorial Exercises 2
Practical Coursework 2
Practical Coursework 1
Tutorial Exercises 1

Reading List

Marc Gregoire. Professional C++. John Wiley & Sons; 3rd Edition edition 2014. ISBN-13: 978-1118858059

Tony Gaddis, Judy Walters, Godfrey Muganda. Starting Out With C++ Early Objects. 8th Edition. Pearson 2014. ISBN-13:978-0-273-79331-1

Ray Lischner. C++ in a Nutshell - A Desktop Quick Reference. O'Reilly Media. 2003. ISBN: 9780596002985. Available at: http://www.it-ebooks.org/book/oreilly/c___in_a_nutshell