FE522 C++ Programming in Finance
Course Catalog Description
Introduction
| Campus | Fall | Spring | Summer |
|---|---|---|---|
| On Campus | X | X | |
| Web Campus | X | X |
Instructors
| Professor | Office | |
|---|---|---|
| You Wang | ywang408@stevens.edu |
More Information
Course Description
It aims to be an introduction to the C++ programming language, as well as to programming in general, including topics such as object-oriented programming concept and intro to several basic data structures, with some simple applications in finance, including Monte Carlo Simulation and Portfolio Optimization. No prior programming experience is required. Upon completion, students are expected to have proficient programming skills in C++ and to be able to apply these skills in any future courses and/or industry positions.
- Learn methods for problem decomposition and program design. This consists of analyzing problem requirements, breaking the problem down, and designing an algorithm for each part of the problem.
- Learn the C++ programming language syntax and features. Learn how to use C++ to solve "realworld" problems.
- Learn basics of writing good code, proper software engineering techniques, and style, such that the code can be easily read and modified by other programmers, as well as yourself.
- Practice writing small projects with application in the finance field: General pricing of the derivative product (Black Scholes Model and Monte Carlo simulation) and portfolio optimization.
Course Resources
Textbook
Programming: Principles and Practice Using C++. Bjarne Stroustrup, Second Edition, 2014. ISBN-10: 0321992784, ISBN-13: 978-0321992789
Additional References
C++ Reference: http://en.cppreference.com/w/cpp
Grading
Grading Policies
Labs practice weekly programming skills in a guided format. Multiple labs will be assigned during the semester.
Scoring: your lab grade is based on your best (N − 1) lab scores, up to a total of 15% (or 20% for WS), where N is the total number of labs assigned. You may drop your lowest lab score.
Labs may allow broad resources (see Academic Integrity and Generative AI sections). Any lab-specific restrictions will be stated on the lab handout.
Homework (30%)
Homework emphasizes implementation, clarity, and correctness.
Due: Sundays 11:59pm ET via Canvas (unless stated otherwise) Expected components: working code, brief README/build instructions, and (when requested) a short explanation of choices/bugs fixed. Midterm Exam (20%) — Debug & Explain
Hands-on programming exam focused on practical debugging and reasoning: You will receive one or more C++ programs that compile but are incorrect, incomplete, unstable, or inefficient. Tasks include:identifying and fixing bugs, improving numerical stability where needed, writing short explanations of what was wrong and why your fix is correct.
Section A (in person): proctored, with a single cheatsheet.
Section WS (online): may complete a different (but comparable) midterm format than in-person Section A. Additional Oral Midterm (Selective; part of Midterm)
To preserve academic integrity and verify individual understanding, a subset of online students may be selected for an additional oral session.
Selection: random, based on quiz anomalies, or routine verification (selection does not imply wrongdoing).
Format: Zoom + screen sharing, 8–12 minutes; explain/modify a small code snippet live.
Final Project (30%)
Integrates course topics into a small finance-motivated library or application. Typical components:clean module design (headers/source separation), tests and reproducible runs, brief report / README describing methodology and results, short demo and/or oral check. Detailed project requirements and rubric will be provided on Canvas.
Lecture Outline
| Topic | Assignment | |
|---|---|---|
| Week 1 | Intro and Basic Flow of control | |
| Week 2 | Functions | Lab 0 |
| Week 3 | Input and output | Lab 1 |
| Week 4 | OOP concept and Class | |
| Week 5 | Constructor and Destructor | Assignment 1, Lab 2 |
| Week 6 | Operator overloading | |
| Week 7 | Midterm Exam | |
| Week 8 | More OOP | Assignment 1 due, Lab 3 |
| Week 9 | Multiple Files | |
| Week 10 | Pointer | Assignment 2, Lab 4 |
| Week 11 | Templates | |
| Week 12 | Inheritance and Polymorphism | Lab 5 |
| Week 13 | Standard Template Library (STL) | Assignment 2 due |
| Week 14 | Standard Template Library (STL) | |
| Week 15 | Final Exam |