This module covers areas of software development that are related to low level systems and machine programming. The individual units will focus on particular aspectsaspects and considerations when compiling and linking programs that produce native code. The following subjects will be covered:• Compiling and linking programs• Data sizes and data representation on different architecture targets• Inline assembly• Includes and declaration order• Call conventions – pass by value, reference and pointer• Memory management – stack and heap• Low level debugging• Object orientation• Virtual function calls and function tables• Operator overloading• Data structures using pointers• Secure coding practices