Syllabus Introduction to C++ Programming and Numerical Analysis Spring 2016



Similar documents
How To Teach C++ Data Structure Programming

Introduction to Programming System Design. CSCI 455x (4 Units)

BMI 540: Computer Science with Java Programming Oregon Health & Science University

MIS W: Mobile Business

CEC225 COURSE COMPACT

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Illinois Institute of Technology Stuart School of Business Course Syllabus Fall Instructor Information. Course Information

BCS2B02: OOP Concepts and Data Structures Using C++

Course Syllabus Revised: Dec. 20, 2011.

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

THE UNIVERSITY OF HONG KONG FACULTY OF BUSINESS AND ECONOMICS Course Template for the Learning Outcomes System

ECONOMICS 380 INTERNATIONAL ECONOMIC ISSUES SPRING 2010 DISTANCE EDUCATION

MGSC 590 Information Systems Development Course Syllabus for Spring 2008

CMSC Fundamentals of Computer Programming II (C++)

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

MIS W: Mobile Business

Department of Electrical and Computer Engineering. EEL 3160 Embedded C++ and Data Structures. Tuesday & Thursday 3:00 5:00 pm

CS A250 (CRN ) C++ Programming Language 2. Syllabus Fall 2015

The University of Akron Department of Mathematics. 3450: COLLEGE ALGEBRA 4 credits Spring 2015

Course Description. Prerequisites. CS-119/119L, Section 0137/0138 Course Syllabus Program Design & Development - Fall 2015

Rollins College Entrepreneurial and Corporate Finance BUS 320- H1X

ACST829 CAPITAL BUDGETING AND FINANCIAL MODELLING. Semester 1, Department of Applied Finance and Actuarial Studies

Introduction to Programming

Introduction to Information Technology ITP 101x (4 Units)

COLLIN COLLEGE COURSE SYLLABUS

INFO 2130 Introduction to Business Computing Spring 2013 Self-Paced Section 006

PSY 201 General Psychology Online Fall credits

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

Syllabus: IST451. Division of Business and Engineering. Penn State Altoona

1. COURSE DESCRIPTION

El Dorado Union High School District Educational Services

Using the Java Native Interface to Introduce Device Driver Basics

Welcome to Computer Science 2604 Data Structures and File Management

FI 630 Financial Management I

IT 106 Introduction to IT Problem Solving Using Computer Programming revised

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

INFSCI 0017 Fundamentals of Object- Oriented Programming

Academic Calendars. Term I (20081) Term II (20082) Term III (20083) Weekend College. International Student Admission Deadlines

Management 2030 Section B: Introduction to Organizational Behavior Spring 2015

University of Florida at Gainesville Linguistics Program 4131 Turlington Hall LIN Introduction to Graduate Research

Computer Science CS 2334: Programming structures and abstractions

FIN513 Financial Modeling Module 4,

SOCIOLOGY OF GENDER-SYLLABUS

The Psychology of Aging COURSE TITLE PSY3315 COURSE NUMBER NUMBER OF CREDITS 4. Dr. Laura J. Moore INSTRUCTOR.

Eastern Illinois University New Course Proposal AET 3163, Computer Programming in Technology. 2. Course prefix and number: AET 3163

Computer Science 1015F ~ 2010 ~ Notes to Students

FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE. Introduction to Programming with Visual Basic.NET

MKT 363 Professional Selling & Sales Management Course Syllabus (Spring 2011)

FIN-516 Financial Modeling II Fall Semester, Mod. 2,

SI 539, Winter 2014 Complex Web Design

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 233 INTRODUCTION TO PHP

B.Sc. (Computer Science) First Year

Florida Gulf Coast University Finite Math M GF 1106 Spring 2014 CRN 11072

CS135 Computer Science I Spring 2015

C++ INTERVIEW QUESTIONS

Principles of Software Construction: Objects, Design, and Concurrency. Course Introduction. toad. toad Fall School of Computer Science

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

Ordinary Differential Equations

GGR462/JPG1914: GIS RESEARCH PROJECT. Course Outline

CS 101 Computer Programming and Utilization

Johnson State College External Degree Program. PSY-2040-JY01 Social Psychology Syllabus Spring 2016

BCM :00-12:15 p.m. 1:30-3:35 p.m. Wednesday 10:00-12:00 noon

Before you begin to adapt your course for online learning, consider the following questions:

MATH 115 Mathematics for Liberal Arts (3 credits) Professor s notes* As of June 27, 2007

Evolution of the Major Programming Languages

DSBA/MBAD 6211 Advanced Business Analytics UNC Charlotte Fall 2015

FIN (MBA ) FINANCIAL MODELING Spring Office Phone: Office Hours: 3:00-4:00pm Tuesday/Thursday or by appointment

Starting Out with C++ from Control Structures to Objects Edition: 8

BUSINESS/PERSONAL MATH, BMGMT #140 ONLINE. This is not the course syllabus and contains general information only.

MATH 1310, SECTION 17086

Computing Concepts with Java Essentials

MSIS 635 Session 1 Health Information Analytics Spring 2014

Course Description. Course Objectives

BUSA 501: Introduction to Business Analytics

PSYCHOLOGY 308A: Social Psychology (Spring 2011) Section 003: Tues/Thurs, 2-3:30, Buch A202

Syllabus for CS 134 Java Programming

Course MS10975A Introduction to Programming. Length: 5 Days

COMMONWEALTH OF MASSACHUSETTS BUNKER HILL COMMUNITY COLLEGE CHARLESTOWN, MASSACHUSETTS COMPUTER INFORMATION TECHNOLOGY DEPARTMENT

CSC 314: Operating Systems Spring 2005

Mobile Application Development

Consumer Behavior, MKT 3230 (A03): Winter 2014 Department of Marketing University of Manitoba

Course Syllabus CJ W Intro. to Homeland Security, Internet based Spring 2016

Course Syllabus PEHR 2990 Intro to Intercollegiate Athletic Administration Dixie State College of Utah Spring 2013

Kaplan ACCA Courses Brochure

UNIVERSITY OF LA VERNE COLLEGE OF LAW. NEGOTIATION EVENING CLASS (Law 550, Section 2)

Bishop s University Graduate School of Education. GSE 501: Psychology of Teaching and Learning Winter 2014

ECON-2105, Principles of Macroeconomics, 1rst Half Term, Spring/2016

After completing SI- 539, students will have a working personal portfolio website in production.

Troy Online. Course Syllabus. BUS4474 Business and Society Term

HTML and CSS 2 Class Meetings Instructor Contact Office Hours: Tuesdays 5:30-7:30 PM Online Class Message List Opt Out of Class

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

Laboratory Assignments of OBJECT ORIENTED METHODOLOGY & PROGRAMMING (USING C++) [IT 553]

Angel Learning Management System Introductory Tutorial for Students

NEW YORK UNIVERSITY STERN SCHOOL OF BUSINESS Department of Accounting Principles of Financial Accounting (ACCT-UB.

Course Description: ECN 5100 (3 credits) Economic Analysis of Enterprises Prerequisites:

Transcription:

Syllabus Introduction to C++ Programming and Numerical Analysis Spring 2016 lead instructor: office: web: class time: Professor Johan Walden F655 walden@haas.berkeley.edu http://www.haas.berkeley.edu/faculty/walden.html Saturdays, 9 a.m. 1 p.m. co-instructor: Dave Klein MFE.CPP@gmail.com gsi: TBA MFE.CPP@gmail.com overview: This course offers an introduction to C++ programming and numerical analysis to incoming MFE students. Students do not need to have a background in programming to succeed in the course, but must be prepared to spend extensive time outside of the classroom to do assignments and exercises. The format of the course is a combination of lectures and exercises. There are also six mandatory assignments (see below). There are twelve lectures. The initial seven cover general programming in C++ and an introduction to numerical analysis. The last five lectures provide an introduction to object oriented programming (OOP), available external libraries, and also discuss several finance applications, including binomial option pricing. The course material consists of comprehensive lecture notes, which will be available for download. Additional text books are suggested below for the interested reader. Prata and Horton provide introductions to C++ programming, whereas Stroustrup is more advanced (a bible for advanced students). For numerical analysis, Atkinson and Han s book provides a sufficient introduction, whereas Stoer and Bulirsch is more advanced. Throughout the course, references to material where students can self-study concepts that we do not have time to cover in class will be given. page 1

suggested texts: C++: C++ Primer Plus, 6 th Edition, by Stephen Prata, Sams, 2011. Visual C++ 2013, by Ivor Horton, Wiley, 2014. The C++ programming language, by Bjarne Stroustrup, Addison-Wesley, 2000. Numerical analysis: Elementary Numerical Analysis, 3 rd Edition, by Kendall Atkinson and Weiman Han, Wiley, 2004. Introduction to Numerical Analysis, by J. Stoer and R. Bulirsch, Springer, 2002. also required: A laptop with Visual C++ 2015 (for Windows) installed. Bring the laptop to class. Detailed instructions for installing Visual C++ Community Edition, compiling programs and running programs are given in the first assignment. Alternatively, the Eclipse C++ compiler may be used. We recommend that you use Visual C++. The lectures will be based on this platform, so students with little or no programming experience may therefore find it easier to use this platform. GSI support will mainly be given for Visual C++, although we offer limited support for Eclipse. You are, however, allowed to use other C++ compilers if you wish. If you use a Macintosh computer, you are strongly encouraged to use Visual C++ within a Windows emulator. Installing the necessary developer tools on a Mac to run a C++ compiler natively is not an easy task and we will not be able to help you with the installation. homepage: assignments: We will be using bcourses and Study.Net There are six mandatory assignments. It is extremely important that students complete these, since the only way to learn to learn programming is through extensive hands-on practice. Assignment 1 is due at the beginning of the first lecture. Most students should be able to complete this assignment on their own. For students who run into trouble, the GSI will be on duty the week before the course begins, and there will be a lab-session scheduled on the weekend before the course starts. Assignments 4-6 are extensive, and students should plan accordingly. Assignments should be submitted electronically, and in time, via bcourses. Detailed instructions for what is to be submitted, when, and how, are provided on the first page of each assignment. Should you choose (against our recommendation) to use another compiler than the Visual C++ or Eclipse compiler, you should contact the GSI to get instructions about what needs to be submitted. Students are allowed to consult all the material provided in the course (lecture notes, course books, programs, etc.), as well as the Internet, but are not allowed to use any material that even remotely resembles a solution to the assignment. If there is any doubt, please contact the instructor. Also, students are allowed, and encouraged, to discuss the material and assignments, e.g., in the bcourses forum and chat room. However, assignments should be solved individually, and the provision of actual code, detailed descriptions of algorithms, etc., to another student is strictly prohibited. The material (assignments, slides, source code, solutions, and all other material) in the course is proprietary. Posting of material on the web is strictly prohibited and will lead to legal action. We have a strict policy on submission deadlines. Assignments received up to 24 hours late will get a point deduction of 50% of the points. Assignments received more than 24 hours late get a 100% point deduction. grades: exam: Students who complete the assignments satisfactorily and on time will receive a certificate that they have passed the course. All other students will not receive such a certificate. There is thus no fail grade in the course. Students who decide to audit the course therefore do not need to take any formal action, but are encouraged to send an e-mail to inform the professor about their decision. There is no exam. page 2

gsi sessions: We will conduct the GSI sessions online (except for the first session), using Adobe Connect. You will receive instructions for how to log on before the first online session. page 3

lecture plan: For simplicity, topics and readings are presented as full lectures. Some topics may run over to the next lecture. Consequently, we may fall behind the listed schedule a bit at some points and then catch up soon thereafter. Sat, January 16 Lab: Opportunity for students to get hands-on help with Assignment 1. GSI Session 1 Sat, January 23 Due: Assignment 1 DAY I topic: Introduction to computers, programming, C++ and algorithms. Lecture 1 Basic I/O, variables, simple arithmetics, conditional statements. topic: Loops and functions. Lecture 2 Scope, break, continue. Call by value/call by reference. Sat, January 30 topic: Introduction to numerical analysis, call back functions, Lecture 3 DAY II root finding. topic: simple bond valuation, arrays Lecture 4 Jan 29 & 31 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 2 Sat, February 6 Due: Assignment 2 DAY III topic: Strings and pointers, static versus dynamic memory allocation Lecture 5 function approximation, introduction to classes and advanced data structures, attributes Methods and attributes, public, private and protected, Lecture 6 constructors, destructors, this pointer, file structures, operator overloading. February 5 & 7 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 3 Sat, February 13 topic: File I/O. Exercises on classes and data structures. Lecture 7 DAY IV fstream, read, write, close, good Friends More on bond valuation. Introduction to Assignment 4. Introduction to OOP Object oriented programming (OOP): Lecture 8 Taxonomies, inheritance, protected. Polymorphism, static/dynamic binding, virtual methods. February 12 & 14 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 4 Tue, February 16 Due: Assignment 3 page 4

Feb 19 & 21 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 5 Sat, February 27 Due: Assignment 4 Lecture 9 DAY V topic: OOP:Modularity and reusability. Templates, C++ libraries. topic: Numerical analysis 2, numerical solution of PDEs, Lecture 10 limit order markets - Introduction to Assignment 5 Sat, March 5 topic: Exception handling, numerical analysis 3 Lecture 11 DAY VI Binomial tree methods for option pricing topic: Monte Carlo methods, Black-Scholes, finite difference methods Lecture 12 Introduction to Assignment 6. Mar 4 & March 6 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 6 Tue, March 8 Due: Assignment 5 March 11 & 13 Online Lab: Opportunity for students to get hands-on help with assignments. GSI Session 7 Tue, March 15 Due: Assignment 6 page 5