hfsl_course

FE522 C++ Programming in Finance
Financial Engineering (Lab)
Hanlon Lab 1
  • Fall On Campus
  • Spring On Campus
C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.

This course is designed for both graduate and undergraduate students. 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 and generic programming, with some basic applications in finance. 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.

 

Programming: Principles and Practice Using C++. Bjarne Stroustrup, Second Edition, 2014. ISBN-10: 0321992784, ISBN-13: 978-0321992789

C++ Primer Plus. Stephen Prata, Sixth Edition, 2011. ISBN-10: 0321776402, ISBN-13: 978-0321776402

C++ Reference: http://en.cppreference.com/w/cpp

 

The C++ Language Tutorial: http://www.cplusplus.com/_les/tutorial.pdf

The final grade will be determined upon the student's performance in the drill exercises, homework assignments and exams. There will be two large assignments covering knowledge in programming, C++ and the application of such knowledge in financial engineering. You will have about 2 weeks to finish each assignment. The work tends to be programming intensive so an early start is necessary. Students will also be expected to complete one drill per chapter of the book studied, which account for a total of 20 drills if we are able to cover all proposed material. If more time is required to cover the initial chapters, we will adapt the schedule accordingly. Having a strong knowledge in the basics of programming is way more important than learning about specific functionality that the C++ standard library provides. Drills are step-by-step exercises which review the content just learned and make sure you to keep programming every week (the only way to learn how to code is coding). They will be due the Sunday of the following week after each chapter material is covered in class. Finally, there will be in-class open-book open-Internet midterm and final exams. Submissions to all drill exercises, homework assignments, and exams are to be done in Canvas and should include two _les: a .pdf report explaining the reasoning behind all your answers and a .zip containing any source codes. You should not submit any binary files. Make sure your code compiles and it will compile as well in the grader's computer. If it does not compile, we will not be able to evaluate it.

All late submissions will be punished unless prior notice is given before the due date and it is approved. If your submission passes the due date for less than 24 hours, your highest score will be 67%; between 24 and 48 hours, your highest score will be 33%; and after 48 hours your submission will not be accepted. If outside circumstances are affecting your ability to perform in the course, you must contact the instructor before you fall behind.

 

You are encouraged to have discussions about everything except exam questions. Programming is not and should never be considered a lonely endeavor. That said, discussing is not the same as copying, and all code and reports must be written by yourself. Delivering solutions that were copied from another source and not developed by you is strictly forbidden. This kind of behavior will be considered as academic dishonesty/misconduct and will be dealt with according to the Stevens Honor Board policy.

 

Drills 20%

Assignments 30%

Midterm 20%

 

Final 30%

Week 

Topics 

Assignments

08/28 - 09/01

Programming and “Hello, World!” & Objects, Types, and Values

 

09/04 - 09/08

Computation & Errors

 

D2, D3

09/11 - 09/15

Writing a Program & Completing a Program

 

D4, D5

09/18 - 09/22

Technicalities: Functions, etc. & Technicalities: Classes, etc.

 

D6, D7

09/25 - 09/29

Input/Output Streams & Customizing I/O

 

D8, D9

10/02 - 10/06

TBD

D10, D11, A1

 

10/10 - 10/14

A1 Review & Midterm

 

 

10/16 - 10/20

A Display Model & Graphics Classes

 

D12, D13

10/23 - 10/27

Graphing Functions and Data & Graphical User Interfaces

 

D14, D15

10/30 - 11/03

Graphical User Interfaces & Vector and Free Store

 

D14, D15

11/06 - 11/10

Vectors and Arrays & Vector, Template, and Exceptions

 

D16, D17

11/13 - 11/17

Containers and Iterators & Algorithms and Maps

 

D18, D19

11/20 - 11/24

Thanksgiving Recess, No Classes 

 

 

D20, D21, A2

 

 

11/27 - 12/01

 

A2 Review & Concurrency

 

 

12/04 - 12/08

Threads and Tasks & Monte Carlo

 

12/11 - 12/22

Final