FE545 Design, Patterns and Derivatives Pricing

From Hanlon Financial Systems Lab Web Encyclopedia
Jump to: navigation, search

Course Catalog Description


This course covers the design patterns and implementation of financial models using object oriented programming in C++. It discusses advanced applications on quantitative finance with special emphasis on derivatives pricing and their calculations using commonly known formulas such as the Black-Scholes and lattice models. The course uses available simulation techniques such as Monte Carlo simulation and its implementations in financial engineering problems.
Campus Fall Spring Summer
On Campus X X
Web Campus


Professor Email Office
Ricardo A. Collado
rcollado@stevens.edu Babbio Center – 629

More Information

Course Description

Tools Used In This Course
  • Visualization Ecosystem
  • Additional Resources
  • A more concise, but somewhat different perspective

Course Outcomes

After successful completion of this course, students will be able to…
  • Understand common object-oriented (OO) design patterns used in relation to financial models
  • Implement common object-oriented design patterns used in relation to financial models
  • Understand and implement derivatives pricing model in OO paradigm utilizing design patterns with focus on clarity, simplicity, elegance and extensibility.
  • Be proficient with basic C++ and OO programming techniques.

Course Resources


Mark S. Joshi, C++ Design Patterns and Derivatives Pricing, 2nd edition. Cambridge University Press, 2008 (required).

Additional References

S. Lippman, J. Lajoie, B. Moo, C++ Primer, 5th edition. Addison-Wesley, 2012. Design Patterns Explained Simply, e-book, https://sourcemaking.com/design-patterns-ebook.



Grading Policies

To pursue the course objectives effectively, students will engage in the following activities:
  • Read assigned material prior to class sessions
  • Complete all assignments
  • Participate in class discussions
  • Prepare and submit a Final Project/Exam paper

    Final Exam      30%
    Assignments     70%

All assignments should be the work of an individual student are due on the date shown in the course schedule. Submit to Canvas any late assignments. Late homework will be penalized one grade letter per late week. Grading will be based upon your understanding and analysis of the issues presented in class and readings.


The following procedures apply to quizzes and exams for this course. As the instructor, I reserve the right to modify any conditions set forth below by printing revised Exam Room Conditions on the quiz or exam.

  1. Students may not use the following devices during quizzes and exams. Any electronic devices that are not mentioned in the list below are not permitted.


    Cell Phones


    Smart Watches

    Google Glass


  2. Students may not use the following materials during quizzes and exams. Any materials that are not mentioned in the list below are not permitted.

    Handwritten Notes

    Typed Notes



    Other aid materials

  3. Students are not allowed to work with or talk to other students during quizzes and/or exams.

Homework and Exams Schedule

  1. At least 5 Homework with a total of 70% of class grade
  2. Final exam at the end of semester

Note: All homework is to be done individually. No collaboration is allowed. Collaborations will be heavily penalized with a 0% grade.

Lecture Outline

Topic Reading
Week 1 Chpt. 1: A simple Monte Carlo model
Week 2 Chpt. 2 & 3: Encapsulation, Inheritance, and virtual functions
Week 3 Chpt. 4: Bridging with a virtual constructor
Week 4 Chpt. 5: Strategies, decoration, and statistics
Week 5 Chpt. 6: A random numbers class
Week 6 Chpt. 7: An exotics engine and the template pattern
Week 7 Chpt. 8: Trees
Week 8 Chpt. 9: Solvers, templates, and implied volatilities
Week 9 Chpt. 10 & 11: The factory & Design patterns revisited
Week 10 Chpt. 12 & 13: The situation & Exceptions
Week 11 Chpt. 14: Templatizing the factory
Week 12 Intel Math Kernel Library (MKL)
Week 13 Intel Parallel STL and DAAL libraries