C++

Project Layout and File Naming Conventions

Project Layout and File Naming Conventions

Emergent Behaviour Programming Language

Jon MAcey's MSc Thesis on emergent behaviour.

NCCA Coding Standard Code Layout

NCCA Coding Standard Code Layout

General Code Layout

General Code Layout

NCCA Coding Standard Style and Practice

NCCA Coding Standard Style and Practice

Class Layout

Class Layout

Citation of 3rd Party Code

Citation of 3rd Party Code

MSc Projects 2021

MSc projects from 2021

MSc Projects 2022

MSc projects from 2022

MSc Projects 2023

MSc projects from 2023

MSc Projects 2024

MSc projects from 2024

Lecture 1 Introduction to Python

An introduction to Python

Lecture 1 Introduction to CFGAA

Introduction To the Unit

Lecture 1 Introduction to C++

Simple C++ 11 / 14 /17

Lecture 1 Multicore and GPU Programming

Introduction to Multicore and GPU programming

Lecture 2 Basic C++ concepts

Simple C++ 11 / 14 /17

Lecture 2 Modern C++

Examples from C++ 11 / 14 /17

Lecture 3 Test Driven Development

Introduction to TDD

Lecture 3 Memory Models in C and C++

Dynamic Memory, Pointers and Arrays

Lecture 4 Memory and Pointers in C++

Memory and Pointers

Lecture 4 Object Oriented Design

Principles of OO

Lecture 5 Introduction to Classes

classes in C++

Lecture 5 Introduction to Classes

Classes in C++

Lecture 6 Design Patterns

Design Patterns in C++

Lecture 5 Introduction to OO

Introduction to OO

Lecture 6 Inheritance From Generalization to Specialization

Inheritance in C++

Lecture 6 Classes and Objects

Classes and Objects

Lecture 6 Data Files and Serialization

Slides

Lecture 7 Design Patterns

Design Patterns

Lecture 7 Object Lifetimes

Object Lifetimes

Lecture 8 Operator Overloading

Operator Overloading

Lecture 9 The Standard Template Library

STL in C++

Lab 1 The Software build process

Aims The aim of this lab is to introduce the C++ software build process, this will include. Single file software build Using external libraries and package managers (vcpkg) Build Tools (make,cmake) Getting Started We will start this project in a new folder (here we are assuming using the windows powershell and developer console)

Lab 1 The Software build process

Aims The aim of this lab is to introduce the C++ software build process, this will include. Single file software build Using external libraries and package managers (vcpkg) Build Tools (make,cmake) Getting Started We will start this project in a new folder

Lecture 2 Threading

Introduction to threading in C and C++

Lab 2 Test Driven Development

Aims The aim of this lab is to introduce the process of TDD and develop some simple tests. Multi File Build and Project Setup Build Tools (cmake and make test) Using gtest and git Test Driven Design of a Simple RGBA structure Getting Started To start this project we are going to build a typical software project setup.

Lab 2 Test Driven Development

Aims The aim of this lab is to introduce the process of TDD and develop some simple tests. Multi File Build and Project Setup Build Tools (cmake and make test) Using gtest and git Test Driven Design of a Simple RGBA structure Getting Started To start this project we are going to build a typical software project setup.

Lab 3 An Image Class

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing an Image Class Using GitHub Developing a Simple Image Class Writing Images with OpenImageIO Some simple Image Algorithms.

Lab 3 An Image Class

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing an Image Class Configure GitHub for labs. Developing a Simple Image Class Writing Images with OpenImageIO Some simple Image Algorithms.

Lecture 3 Introduction to SIMD

Introduction to SIMD in C++