Course Outline

Module 1 (C++ Phase 1)

  • Introduction + References
  • Basics
  • Workshop Basics
  • Overloading
  • What can be overloaded, and how.
  • Additional C++ Types (bool & reference)
  • Workshop Overloading
  • Object-Oriented Programming (OOP)
  • Quick Introduction to OOP
  • Classes
  • Structs
  • Access Modifiers
  • Constructors
  • Default and Deleted Functions
  • Initializer Syntax / Constructor Initialization List
  • Workshop Classes
  • Memory Management
  • Traditional Memory Interaction
  • Workshop Memory

Module 2

  • Introduction to Quantitative Finance for Government
  • Discrete Time Models
  • Continuous Time Models
  • Interest Rate Models
  • Options on Bonds
  • Short Rate Models
  • Forward Rate Models
  • Market Models

Module 3 (C++ Phase 2 & Quantitative Final Phase)

  • Inheritance
  • Construction in Inheritance
  • Polymorphism
  • Virtual, Pure Virtual, Abstract Classes, and Interfaces
  • Access Modifiers in Inheritance
  • Workshop on Inheritance (Shapes)
  • Exceptions
  • What They Are
  • How They Work
  • What to Throw and What to Catch
  • Workshop on Exceptions
  • Memory Exhaustion
  • Notification of Memory Exhaustion
  • Handling Memory Exhaustion
  • Modern Memory Management
  • Resource Acquisition Is Initialization (RAII)
  • Templates Applied to Modern Memory Management (SmartPointers)
  • Standardized C++11 SmartPointers
  • Nullptr
  • Workshop on SmartPointers
  • Namespaces
  • Workshop on Namespaces
  • Vasicek Bond Prices in C++
  • Black-Scholes Modeling in C++ (Put & Call)
  • Introduction to Monte Carlo Simulation for Government
  • Pricing Options Using Simulation
  • Monte Carlo Simulation in C++
  • Geometric Brownian Motion
  • American vs European Options
  • Slice-Based Valuation: Lattice Method
  • Slice-Based Valuation: Partial Differential Equation (PDE) Method
  • Valuation of American (Pre-Determined Dates) Bermudan Option

Module 4 - C++ Final Phase

  • Auto Keyword
  • The New Auto Keyword
  • The New Auto Return Syntax
  • Enumerations (Enums)
  • New-Style Enums
  • Constexpr
  • New Constant Expressions
  • About Constness
  • Const and Mutable Explained
  • Lambdas & Function Objects
  • Classes That Act Like Functions
  • Introduction to Lambda Functions
  • Chrono Library
  • An Introduction to the New Chrono Library for Government

Module 5

  • Casting
  • Standard Library
  • Strings
  • Containers
  • Vectors (vs)
  • Lists
  • Maps
  • Arrays
  • Tuples
  • Initializer Lists
  • Iterators
  • Range-For Syntax
  • Standard Algorithms
  • Streams
  • Miscellaneous Keywords
  • Static
  • Explicit

Module 6

  • Move Semantics
  • Introduction to L/R Values
  • R-Value References Applied to Move Semantics
  • Type Traits
  • Obtaining Information at Compile Time
  • Concurrency
  • Introduction to C++11’s Threading, Async/Future, and Atomic Types Implementation for Government
  • Variadic Templates - An Introduction to C++11’s Variadic Templates for Government

Requirements

Programming Fundamentals for Government

In the context of public sector operations, programming knowledge is essential for developing and maintaining efficient and secure information systems. Understanding core programming concepts enables government professionals to enhance data management, streamline workflows, and ensure compliance with regulatory requirements. Key areas of focus include:

  • Basic Syntax and Structures: Familiarity with fundamental programming constructs such as variables, loops, and conditional statements is crucial for writing clear and effective code.
  • Data Types and Manipulation: Knowledge of various data types (e.g., integers, strings, arrays) and methods to manipulate them is essential for accurate data processing and analysis.
  • Algorithms and Data Structures: Understanding algorithms and data structures helps in optimizing performance and solving complex problems efficiently.
  • Object-Oriented Programming (OOP): OOP principles, such as encapsulation, inheritance, and polymorphism, are vital for building scalable and maintainable software systems.
  • Version Control: Utilizing version control systems like Git ensures that code changes are tracked and managed effectively, promoting collaboration and accountability within development teams.

By equipping government employees with these programming fundamentals, agencies can improve their technological capabilities and better serve the public. This foundational knowledge supports the development of robust applications and systems that align with the high standards of governance and transparency required in the public sector.

 49 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses

Related Categories