Skip to content

Commit

Permalink
minor update to syllabus
Browse files Browse the repository at this point in the history
  • Loading branch information
jdtournier committed Oct 31, 2024
1 parent ef37299 commit 6cce711
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions syllabus.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ title: Syllabus - Object-Oriented Programming (5CCYB041)
# Syllabus for Object-Oriented Programming (5CCYB041)

## The Unix command-line
- What is the command-line, the terminal, and the shell
- The filesystem, absolute & relative paths
- Basic commands: `ls`, `pwd`, `cd`, `cp`, `mv`, `rm`, ...
- Command structure, arguments & options
- what is the command-line, the terminal, and the shell
- the filesystem, absolute & relative paths
- basic commands: `ls`, `pwd`, `cd`, `cp`, `mv`, `rm`, ...
- command structure, arguments & options

## Compiling a C++ program
- difference between *compiled* and *interpreted* languages
- invoking the compiler
- useful compiler flags: `-o`, `-O2`, `-Wall`, `-c`, `-I`, `-g`
- different stages of compilation: preprocessor, compiler, linker
- compiling and linking programs split over multiple files
- using build systems to simplify building complex programs
- understand concept of build systems to simplify building complex programs (`Make`, `CMake`, ...)
- using the `oop_build` script supplied as part of this course

## Basic structure of a program
Expand All @@ -28,7 +28,7 @@ title: Syllabus - Object-Oriented Programming (5CCYB041)
- return value / exit code

## Data types & variables
- Basic data types: `int`, `short`, `char`, and their `unsigned` versions, `float`, `double`, ...
- basic data types: `int`, `short`, `char`, and their `unsigned` versions, `float`, `double`, ...
- declaring a variable
- defining a variable
- the `auto` keyword
Expand Down Expand Up @@ -75,11 +75,17 @@ title: Syllabus - Object-Oriented Programming (5CCYB041)
- special methods: constructor, copy-constructor, destructor

## Inheritance

- purpose and syntax
- `public`, `protected` and `private` inheritance
- function hiding
- virtual functions
- pure virtual functions and abstract classes

## OOP design
- OOP principles: encapsulation, abstraction, inheritance, polymorphism
- SOLID principles and others
- prefer composition over inheritance
- object lifetime and ownership
- Resource acquisition is initialisation (RAII)

## Templates
Expand Down

0 comments on commit 6cce711

Please sign in to comment.