FE545 Design, Patterns and Derivatives Pricing

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
Web Campus X


Professor Email Office
Steve Yang syang14@stevens.edu Babbio Center – 536

More Information

Course Description

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

Course Outcome

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. Materials:

Lecture slides: available online through Canvas course shell.

A working C++ IDE. Recommendations:

  • Windows: Microsoft Visual Studio: https://www.visualstudio.com/free-developer-offers/
  • macOS: Xcode
  • Linux: Eclipse with gcc


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
  • 30% Final Exam
  • 70% Assignments

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.
    • Laptops
    • Cell Phones
    • Tablets
    • Smart Watches
    • Google Glass
    • Other
  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
    • Cell Phones
    • Typed Notes
    • Textbooks
    • Readings
    • Other aid materials
  3. Students are allowed to work with or talk to other students during quizzes and use laptops.

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