Reply to thread

The following is a tentative syllabus of the course. We expect to add many more applications to Financial Engineering to the course when it's available to the public.


The C++ Environment 

  • History of C++ 
  • What Makes the C++ Program 
  • Steps for a C++ Program 
  • Compiling a C++ Program 
  • Structure of a C++ Source 
  • Example Program 
  • Placing Comments 
  • Lay-Out Source File 
  • The Visual Studio IDE explained
  • C++ for computational finance: an overview

Data types 

  • Fundamental Data Types 
  • Type Magnitudes 
  • Type Specifiers and Qualifiers 
  • Constants 

Variables, Operators and Expressions 

  • Variables 
  • Initialising Variables 
  • Concatenating Declarations 
  • Arithmetic Operators 
  • Special Cases 
  • Relational Operators 
  • Logical Operators 
  • Assignment Operators 
  • Increment and Decrement 
  • Conditional Operator 
  • The Comma Operator 
  • Type Conversion The sizeof Operator 
  • Bitwise Operators 
  • Operator Precedence 

Decisions and Loops 

  • Blocks and Statements  
  • If Else 
  • Switch 
  • For 
  • While 
  • Do While 
  • Break and Continue 
  • Goto and Labels 

Functions and Storage Classes 

  • Function Signatures 
  • Function Calls 
  • Functions and Return 
  • Function Arguments 
  • Recursive Functions 
  • Scope of variables 
  • Automatic Variables 
  • Global Variables 
  • External Variables 
  • Static Global Variables 
  • Functions and Static Variables 
  • Register Variables 

The Preprocessor 

  • Introduction to Directives 
  • Include Files 
  • Macros 
  • Conditional Compilation 
  • Header Files and Directives 

Pointers and Arrays 

  • Pointers 
  • Call by Reference 
  • Arrays 
  • Initialising Arrays 
  • Strings 
  • Using Strings 
  • Arrays and Pointers 
  • Pointer Arithmetic 
  • Multidimensional Arrays 
  • Function pointers and their applications

Data Aggregates 

  • Intro to Structures 
  • Using Structures 
  • Arrays of Structures 
  • Structures and Pointers 
  • Passing Structures 
  • Unions 
  • Typedef 

The Class Concept

  • Abstract Data Types 
  • Classes and Objects 
  • C++ members 
  • Constructors and destructors 
  • The C++ header file 
  • Access specifiers 
  • The C++ source file 
  • Creating objects 

Improving your Classes 

  • Function name overloading 
  • Call by reference vs. call by value 
  • The 'const' specifier 
  • The copy constructor 

Basic Operator Overloading 

  • Introduction to operator overloading 
  • Binary operators 
  • Unary operators 
  • Assignment operators 
  • The 'this' pointer 
  • Returning references 
  • The Canonical Header File 

Memory Management, Fundamentals

  • Stack, heap and static memory 
  • Who takes care of memory? 
  • The new and delete operators 
  • Dynamic arrays 
  • Classes with dynamic memory
  • Smart pointers

Simple Inheritance

  • Inheritance and ISA Relationship 
  • Specialisation scenarios 
  • Inheritance and object creation 
  • Using base class constructors 
  • Accessibility of base members 
  • Overriding functions 

Polymorphism 

  • Pointers to the base class 
  • Function visibility 
  • Polymorphism 
  • Defining an interface 
  • Abstract base classes 
  • Virtual destructors 
  • Operator overloading and inheritance 

Template Classes in C++ 

  • An introduction to generic programming 
  • Parameterization 
  • Template classes and function templates 
  • Creating templates (source & header files) 
  • Type template parameter & value template parameter 
  • Operations on the generic argument 
  • Explicit template instantiation 

Namespaces

  • Why using namespaces 
  • Using classes in a namespace 
  • Placing classes in a namespace 
  • Nested namespaces 
  • Aliases 
  • Name lookups

An Introduction to STL

  • The 6 STL components 
  • Sequential data containers 
  • Iterators 
  • Algorithms 
  • Function objects 
  • Using STL in your applications 

An Introduction to Boost C++ Libraries

  • What is Boost? Overview
  • Matrix and Vectors: uBLAS library
  • Continuous and Discrete Statistical Distributions
  • Random number generation
  • Special function in Math Toolkit
  • Solution of nonlinear equations

Applications to Financial Engineering and Test Cases

  • Black Scholes equation: analytic solution
  • A simple binomial method in C++
  • A one-factor Monte Carlo simulator
  • Using C++ numerical analysis libraries 
  • Software design essentials


Back
Top Bottom