FE522 C++ Programming in Finance



Course Catalog Description

Introduction

This course is a practical C++ programming course for both graduate and undergraduate students who need to use programming for their research or potential jobs but haven't had the opportunity to take a programming course due to being in non-CS related disciplines. Very little time will be spent on the philosophy and much more time on the actual programming. The course will be designed as a prerequisite for other advanced courses at Stevens.

Campus Fall Spring Summer
On Campus X X
Web Campus X X

Instructors

Professor Email 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.

  1. 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.
  2. Learn the C++ programming language syntax and features. Learn how to use C++ to solve "realworld" problems.
  3. 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.
  4. 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 (15% for A, 20% for WS)

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