C++ Online Programming Course Testimonials

As originator of the course, I think it is possible but a lot of hard work it is worth the effort IMO.

The course starts with C.

I believe a number of students without programming experience have successfully completely the course.

BTW not sure if I am answering on the appropriate thread but I have to answer somewhere :)

@Andy Nguyen
Thank you very much Dr. Duffy, So the course introduces both C and C++ in finance, but more weighted in C++ application. Do I understand correctly?
 
Are you able to speak to the effectiveness of this class in helping with the Chicago MSFM Computing for Finance exam? Has anyone taken the class and been able to test out of all or a couple of the 3-class series?
 
Are you able to speak to the effectiveness of this class in helping with the Chicago MSFM Computing for Finance exam? Has anyone taken the class and been able to test out of all or a couple of the 3-class series?
Do you have any public test exam questions I could look at?
 
A quick google search does not return any public exam questions but the course descriptions are available online: http://www-finmath.uchicago.edu/students/course_information.shtml. The classes that are part of the series are Computing for Finance I-III. A test is given prior to starting the program to see if you test out of the classes (I assume they let you test out of any number of them depending on your score but can't say for certain). I have a programming background, but have only self taught myself OOP (java/python). I'd like to take the review course through Quantnet to at least get a solid understanding going into the program and maybe even testing out of 1+ of the classes.

Thoughts? Thank you!
 
A quick google search does not return any public exam questions but the course descriptions are available online: http://www-finmath.uchicago.edu/students/course_information.shtml. The classes that are part of the series are Computing for Finance I-III. A test is given prior to starting the program to see if you test out of the classes (I assume they let you test out of any number of them depending on your score but can't say for certain). I have a programming background, but have only self taught myself OOP (java/python). I'd like to take the review course through Quantnet to at least get a solid understanding going into the program and maybe even testing out of 1+ of the classes.

Thoughts? Thank you!
At the risk of sounding arrogant there is IMO no C++ course to equal QN C++. It is based on a 20-year span in my company Datasim with many 1000s of students (practitioners!) in various forms.

And the great support from APalley and Andy.
 
Last edited:
Haha no worries - I appreciate the vote of confidence. I was just seeing if anyone had any personal experience between taking the course and then taking the placement exam. Looks like I might be the first to speak up so I will happily report back at the end of the summer so that future students have the information.

Thank you! I look forward to taking the QN C++ class.
 
I have just finished my final exam. It's my honor to get the certificate with distinction.

3 points of this course I really want to mention.

1st, Great Video Lectures.
Thanks Dr. @Daniel Duffy.
In these videos, he can demonstrate many abstract concepts in a funny way (I mean the graph he drew on the screen…lol…). Besides, Dr. Duffy is a very nice teacher. Every time I had a problem, he almost replied immediately once I tagged him.

2nd, Great TA.
To my dear @APalley
First, you have very insightful comments on my HW and my questions. These comments always led me to rethink about my thinking process or some bad practices. Second, you are always patient with my questions. You are busy, but you were never bored to answer my question as long as I still didn't figure it out.

3rd, Great Forum.
IMO, it is not a forum anymore. It is a community in which people have a similar interest. You can always discuss something interest you with these people. Cannot tell it isn’t a great experience. In addition, you can always find many problems you encountered which were discussed before. It will save you much time to figure out your problems. It also helps you try to think about in a different way for many people with different opinions were discussing here. You can learn in this way more than just learning by yourself (reading your books, running your programs and etc. Of course, playing around with your own programs is a great way to learn).

OK. Tell something about myself. Before this course, I have a great passion towards programming and that is one of the reasons I want to apply for MFE. However, I just took a C course, when I was a freshman, and learnt some MATLAB stuff by myself. And then, I registered this course. During this course, one thing in my heart is becoming clearer. PROGRAMMING IS MY LIFE. It strengthens my commitment to pursue MFE program in the future.

Thanks again @APalley , @Daniel Duffy , @Andy Nguyen , @Yiwei An , @Justine Morgan and others who helped me.
 
Last edited:
I have just finished my final exam. It's my honor to get the certificate with distinction.

3 points of this course I really want to mention.

1st, Great Video Lectures.
Thanks Dr. @Daniel Duffy.
In these videos, he can demonstrate many abstract concepts in a funny way (I mean the graph he drew on the screen…lol…). Besides, Dr. Duffy is a very nice teacher. Every time I had a problem, he almost replied immediately once I tagged him.

2nd, Great TA.
To my dear @APalley
First, you have very insightful comments on my HW and my questions. These comments always led me to rethink about my thinking process or some bad practices. Second, you are always patient with my questions. You are busy, but you were never bored to answer my question as long as I still didn't figure it out.

3rd, Great Forum.
IMO, it is not a forum anymore. It is a community in which people have a similar interest. You can always discuss something interest you with these people. Cannot tell it isn’t a great experience. In addition, you can always find many problems you encountered which were discussed before. It will save you much time to figure out your problems. It also helps you try to think about in a different way for many people with different opinions were discussing here. You can learn in this way more than just leaning by yourself (reading your books, running your programs and etc. Of course, playing around with your own programs is a great way to learn).

OK. Tell something about myself. Before this course, I have a great passion towards programming and that is one of the reasons I want to apply for MFE. However, I just took a C course, when I was a freshman, and learnt some MATLAB stuff by myself. And then, I registered this course. During this course, one thing in my heart is becoming clearer. PROGRAMMING IS MY LIFE. It strengthens my commitment to pursue MFE program in the future.

Thanks again @APalley , @Daniel Duffy , @Andy Nguyen , @Yiwei An , @Justine Morgan and others who helped me.
Well done, ZL!

Amazing, seeing that you started in February :)
 
My experience at QuantNet has been extremely positive. I’d like to take this opportunity to thank @APalley and other TA's and forum participants for assisting me in completing the course for the receipt of the C++ certificate.

Just a few positive words for @APalley and @Daniel Duffy, since both of you have been there the most ... I would like to thank both of you individually for your abilities to inspire and motivate your students; both of you are truly exemplary instructors and mentors.

Just as a suggestion for the course, it would be great if a few videos/lectures could be added related to debugging errors ... i.e. Step Into, etc. I am sure that many would like to get a better grasp and understanding of it.

Thank you.

Artem Bondartsev
 
This course was useful. It helped me improve my code and its design.
Before: my programs ran. Delicate ad-hoc creations, they were held together with a shoe-string and duct-tape.
Now: my programs run. Robust, designed creations, they're well-documented, expandable, modular and readable.

I believe this course has enabled me to write higher quality code.
Of course, just like one becomes better at the craft of writing by writing a lot, one becomes better at the craft of programming by programming a lot. A lot! It can get boring; it can get repetitive and tedious. The support was good, my TA was helpful. (Thank you @APalley !)
I'm happy I took this course.


The course should be improved by updating the video lectures.

It could also be improved in Level 9's 'Introduction to computation finance' materials by making them more self-contained and more cohesive though necessarily longer. It might make the course more interesting -- and the "jump" to computational finance less jarring -- to sprinkle scientific problems in earlier levels. Level 1 or 2 could have classics like functional/recursive Fibonnaci numbers, printing a Pascal's triangle in the shape of a triangle, etc...
While I appreciate the OO introduction with points, shapes, and arrays, perhaps it might be more interesting and useful to introduce OO and GP with complex numbers, vectors, and matrices.

If one is to stick to geometric shapes, then perhaps it would be interesting to perform geometric operations on them. We touched on scaling; why not add translation (in the direction of an oriented line segment/vector), rotation (around a point), and reflexion (across a line)?

I think it might also be beneficial to introduce basic numerical algorithms. Why not calculate the Point where two Lines intersect? Or what about the Line XOR Circle defined by the Points where two Circles intersect?

When Boost::Random was introduced, why not calculate the area of a Circle by Monte-Carlo simulation?

In short: I think the course could be improved by including more "scientific" questions in the homework and by updating the video lectures.

Lastly, I'm not sure about emphasizing Visual Studio and rendering it necessary for Level 9's homework (and sample code.) While I understand its wide adoption and powerful uses, I believe it is necessary to provide a course that is as "portable" as possible and that can be completed on as many platforms as possible. That's the reason we didn't make use of C++ 11, right? Frankly, if proprietary technology is to be used for this course, I would have preferred to have used NVidia's CUDA over Microsoft's IDE.

Update the video lectures!
 
Computing PI in C++ 11.

Code:
// TestPI.cpp
//
// Calculation of PI using random numbers; it's analogous
// to throwing darts.
//
// 2014-9-8 Code portd to C++ 11 from Boost.
//
// (C) Datasim Education BV 2010-2014
//

#include <random> // Convenience header file
#include <iostream>
#include <ctime>            // std::time

int main()
{
    std::default_random_engine rng;

    std::random_device rd;
    rng.seed(rd());
    std::uniform_real_distribution<double> uni(0.0,1.0);

    // Choose the desired accuracy
    std::cout << "How many darts to throw? "; long N; std::cin >> N;

    // Thow the dart; does it fall in the circle or outside
    // Start throwing darts and count where they land
    long hits = 0;
    double x, y, distance;
    for (long n = 1; n <= N; ++n)
    {
        x = uni(rng); y = uni(rng);
        distance = sqrt(x*x + y*y);

        if (distance <= 1.0)
        {
            hits++;
        }
    }

    std::cout << "#hits, PI is: " << hits << ", " << 4.0 * double(hits) / double (N);
      

    return 0;

}
 
Last edited:
Back
Top Bottom