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 | ✔ | ✔ | |