c++

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 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 6 Inheritance From Generalization to Specialization

Inheritance in C++

Lecture 7 Design Patterns

Design Patterns

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

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.

Lab 4 Diffusion Limited Aggregation

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing a simulation of diffusion limited aggregation Introduction to DLA simulations Understand C++ 11 Random number classes #include Creating Image Sequences Using Command Line Arguments Introduction to DLA Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles.

Lab 4 Diffusion Limited Aggregation

Aims The aim of this lab is to continue our exploration of TDD in C++ by developing a simulation of diffusion limited aggregation Introduction to DLA simulations Understand C++ 11 Random number classes #include Creating Image Sequences Using Command Line Arguments Introduction to DLA Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles.

Lab 5 Introduction to Particle Systems

Aims The aim of this lab is to develop a simple particle system and write data to various file formats. We will then visualize the data using 3rd party tools

Lab 5 Introduction to Particle Systems

Aims The aim of this lab is to develop a simple particle system and write data to various file formats. We will then visualize the data using 3rd party tools

Lab 6 NGL Installation

Aims The Aim of this lab is to install NGL and try some demos programs Introduction to NGL Building NGL Building Demo Other Operating Systems Introduction to NGL NGL is the NCCA Graphics Library which has been used for teaching programming and graphics since 2003.

Lab 6 NGL Installation

Aims The Aim of this lab is to install NGL and try some demos programs Introduction to NGL Building NGL Building Demo Other Operating Systems Introduction to NGL NGL is the NCCA Graphics Library which has been used for teaching programming and graphics since 2003.

Gnuplot Lab

gnuplot gnuplot is a tool that allows us to very quickly visualise data, it can be very useful for testing program output without having to generate complex graphical interface code, the following labs is going to use gnuplot to help visualise the output of several sample programs.

Blogs and Links

The Clean Code Blog by Robert C. Martin (Uncle Bob) Hacker News The OpenGL Wiki Latency Numbers Every Programmer Should Know

Blogs and Links

The Clean Code Blog by Robert C. Martin (Uncle Bob) Hacker News The OpenGL Wiki Latency Numbers Every Programmer Should Know awesome modern c++

Eimear Crotty

Vulkan is a low-level graphics and compute API which aims to provide users with faster draw speeds by removing overhead from the driver. The user is expected to explicitly provide the details previously generated by the driver. The resulting extra code can be difficult to understand and taxing to write for beginners, leading to the need for a helper library.

Lecture 4 Computation, Iterators and Exporters

Maya C++ Computation, Iterators and Exporters

Lecture 2 Introduction to the Maya C++ API

Introduction to the Maya C++ API

Lecture 3 Maya Nodes

Maya C++ Nodes

Steve Twist

Real-Time Facial Motion Capture System