16:332:503 - Programming Methodology for Finance - Fall 2019

Classes:
Section 1: M 6:40pm - 9:30pm, in DSV Lab (ENG-B125), Busch Campus
Section 2: F 6:40pm - 9:30pm, in DSV Lab (ENG-B125), Busch Campus

Instructor: Shiyu Zhou
Office: EE-113
Email: szhou@cs
Office hour: F 5:00pm - 6:00pm and by appointment

Grader:
Zekun Zhang - zz364 at scarletmail.rutgers.edu

Textbooks: How to Program in C++ by Deitel and Deitel (any edition).
Some of the material covered in class is not in your textbook. For that material, extra notes/handouts will be posted online.

About This Course: This course will cover the fundamentals of object oriented programming and C++ with an emphasis in numerical computing and computational finance applications. This is a design oriented course. Topics to be covered include: program structure and C++ syntax (loops, functions, arrays, pointers), object oriented concepts and data structures (abstract data types, classes, overloading, inheritance, linked lists, stacks, queues, trees) with a focus on mathematical functions, numerical methods and quantitative finance applictions.

Goals: To develop skills in object oriented programming methodology using C++ with an emphasis in numerical computing and computational financial applications.

General Description: This is a design oriented course that meets in a computer lab/classroom for maximum emphasis on hands-on programming. Lectures will be reinforced with small programming examples during the lecture, followed by homeworks and lab exercises that will focus on numerical computing and computational financial applications. The course is broken up into three major parts: the first part covers the basics of C++ syntax, data types and program structure. The second introduces object oriented programming concepts. The third part of the course covers data structures and advanced program design. All concepts and topics covered will be demonstrated using financial or numerical computing applications. The course will culminate in a final project.

Homeworks, In-Class Assignments and Quizzes:
There will be weekly homeworks and/or in-class assignments and/or quizzes given. Students should submit them by a specified deadline for grading. Late homeworks, in-class assignments and quizzes will not be graded, and there will be no retake on quizzes. Homeworks, in-class assignments and quizzes must be taken alone.

Policy on Academic Integrity:
Students are expected to fully adhere to the following policies on Academic Integrity:
Rutgers University statement on Academic Integrity Policy
CS Department Academic Integrity Policy
Please don't jeopardize your academic career by copying, and collaborating beyond permissible limit. When in doubt, ask us if something is allowed. Common sense applies: anything that places you at an unfair advantage, gives a misleading impression of how much you have done, or decreases the amount of material you learn, is out of bounds.

Grading Policy:
Grades will be based on a point total computed as the following:
25% project + 15% homeworks + 5% quizzes + 10% in-class assignments + 45% final

Materials covered: (slides)
Lecture 1: Introduction and basic programming, Control structures: If and Switch
Lecture 2: Control structures: Loops, Functions_1
C++ and Excel (on Sakai/Resources)
Self-reading: File Processing (Chapter 14)
Lecture 3: Functions_2, Arrays, Multi-Dimensional Arrays
Lecture 4: Multi-Dimensional Arrays, Sorting and Search, Pointers_1
Lecture 5: Pointers (cont.), Recursion
Lecture 6: Class, Class_2a
Lecture 7: Class_2b, OperatorOverloading

Homeworks and Exams:
Please check Sakai for homeworks.

Non-Academic News Info:
Epochtimes (English) (Chinese)
New Tang Dynasty (NTD) TV (English) (Chinese)