• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

C++ online certificate for MFE applicants

There are a big gap between the programming requirement posted on MFE websites and the real filtering process going on when they read application. The vague language on the website isn't helping at all. I suspect the programs make it as easy as possible to get as many applicants as they can. As a result, many many applicants apply with little programming background. This is very evident when I read applications from China where the only place in their whole file is a little blurb on their resume where they have a line listing "EViews, SAS, Excel" as their sole programming qualification.
Worse yet, many applicants don't bother list any course or work they have done.
As a result, majority of these people got thrown quickly into the reject pile which is a pity because a little more work and care would save their future.

A course in C or Java will not do. Who is in 2011 still teach C? You can blame it on the outdated curriculum in your country but you compete with the rest of the world so you need to pimp your resume by taking real C++ courses, either online, at a local college, whatever it takes.

I will work you through the gap of what is asked and what you need to do to get into the top programs.
  • NYU MSFM, in the required background page, there is no mention of programming requirement, yet here, it is said that "We seek highly qualified students with strong backgrounds in mathematics and computing".
  • CMU MSCF, in the FAQ page where the programming requirement is specified, the language is vague: "Proficiency in a programming language is required. Applicants lacking this knowledge may be requested to take a C++ course prior to enrolling in the program."
  • UCB MFE, one course in either C or C++ is required. Or relevant work experience.
  • Baruch MFE is a bit more specific. Only C++ can be used to meet requirement.
So, whatever way the web describes it, you really need to learn C++. Putting Eviews/Matlab/VBA/Java as a substitute is not going to cut it. And I hope the next year when I read applications, many of you will take the time to get this done. Go get a real C++ training. Go online and get a C++ certificate or go to a local college.

The money you spend on this will be minimal relative to the tuition you pay and you will make your profile many times more competitive.
 
Does clearing CFA level 1 really helps in getting admission or i should spend my time in other things to build my profile?
 
@Andy, I didn't know that the UCB online course is that expensive and that short.
The CQF one I do is much longer and included in the fees.
 
@Andy, I didn't know that the UCB online course is that expensive and that short.
The CQF one I do is much longer and included in the fees.

I really liked the videos and notes of C++ on CQF extras... Why don't you conduct an exam of C++ as part of CQF to grant a certificate.....These days a certificate seem to matter more than your knowledge in C++......
 
Andy,

When do you think this course will start? I'm wondering, because many Fall 2012 applications are due in the late fall. I'm trying to figure out the best way for me to demonstrate C++ competence on my application.

Thank you,
Kevin
 
I'd like to give the members some quick outline on the online C++ course we will introduce this Summer

Goals
The goal of this course is to introduce the C++ language to those students without programming experience. This is a hands-on course and it consists of a number of modules, each one dealing with a specific topic in C++, Each module is accompanied by small ‘quizzies’ to test if the general theory has been understood and by more extended programming exercises in which you are expected to program in C++ and produce a working program. The compiler and environment used is Visual Studio because of its ease of use but other C++ compilers are also acceptable.
This is the ideal preparation because it deals with the essential topics that are needed before progressing to more advanced applications in computational finance.

Prerequisites
No programming experience is required in order to follow this course. The course has been structured in such a way that you learn C++ from the ground up.

Course Content Originator and Trainer
@Daniel Duffy is an internationally known trainer, writer and software designer. He is founder of Datasim Education and has been involved with C++ since 1988 as developer, designer and trainer. Clients are companies in all areas of software development over the world, including investment banks, hedge funds and MFE students at several universities. He has written almost ten books on software design, C++ and their application to computational finance.
Daniel Duffy has a PhD in numerical analysis (the Finite Difference Method) from Trinity College, Dublin.
 
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
 
Some remarks on the technical structure of the course.

The Course ‘Process’
The course medium is high definition video. I use a combination of Powerpoint, Internet, Visual Studio in combination with audio and video. Each session discusses one logical topic (for example, C++ memory) and in general its duration is between 20 and 30 minutes. The approach is to combine theory and scaled examples to consolidate the learning process.
The examples will be 50% of a general nature (but related to engineering and math applications) and 50% to examples in computational finance.
Normally, you should be able to complete the course in two months, assuming you spend about 15-25 hours per week (lower/upper limits) on the project.

Quizzes and Exercises
Short quizzes are given at the end of each module. They test what you have learned and they should be done before moving on to hands-on exercises in C++.

Some Facts/FAQ
  • 35-40 hours recorded videos with audio
  • 60 slide shows
  • 120 quizzes
  • 70 C++ exercises (20% basics, 40% general, 40% finance)
If you have any questions on the content, please feel free to post me here. For the logistics, please see Andy.

best regards

Daniel Duffy

course originator and speaker
 
@ Andy : When are you planning to start the course ? and what would be the cost ?
We plan to run it by Sept 1 with pre-registration starting in July-August.
The introductory price would be $1,250
Upon successful completion of the course, a certificate will be provided by the Baruch MFE program.
 
We plan to run it by Sept 1 with pre-registration starting in July-August.
The introductory price would be $1,250
Upon successful completion of the course, a certificate will be provided by the Baruch MFE program.

Since I'll be studying full time already for my last year in college, is it possible to pursue this certificate at my own pace?
 
Since I'll be studying full time already for my last year in college, is it possible to pursue this certificate at my own pace?
This is exactly what this course is designed for: people who don't have access to a rigorous yet affordable C++ college course that tailored for MFE/quant finance audience.
You work at your own pace but are expected to complete the same materials/tests within 16 weeks. You will have access to a class forum right here on Quantnet where you discuss with other students, TAs, the instructor himself.

You have indefinite access to the course forum even after you complete it so you can benefit from future additional materials, discussion, sample code, etc.
 
This is exactly what this course is designed for: people who don't have access to a rigorous yet affordable C++ college course that tailored for MFE/quant finance audience.
You work at your own pace but are expected to complete the same materials/tests within a period of time. You will have access to a class forum right here on Quantnet where you discuss with other students, TAs, the instructor himself.

You have indefinite access to the course forum even after you complete it so you can benefit from future additional materials, discussion, sample code, etc.

Great!
Also, will I receive a tangile and official (with a stamp) 'diploma' from baruch that approves my certificate? or will it be an 'online' diploma that I'll have to print?

Thanks again Andy
 
Back
Top