Presentation is loading. Please wait.

Presentation is loading. Please wait.

MET CS 563 Software Development with C++ for Mathematical Finance Dr. Tanya Zlateva MET Computer Science Department 755 Commonwealth Ave., Room 103 Boston,

Similar presentations


Presentation on theme: "MET CS 563 Software Development with C++ for Mathematical Finance Dr. Tanya Zlateva MET Computer Science Department 755 Commonwealth Ave., Room 103 Boston,"— Presentation transcript:

1 MET CS 563 Software Development with C++ for Mathematical Finance Dr. Tanya Zlateva MET Computer Science Department 755 Commonwealth Ave., Room 103 Boston, MA 02215 phone: 617-353-2568 e-mail: “lastname at bu-do-edu”

2 6/23/2015MET CS 563--Fall 2008 1. Introduction 2 MET CS 563 Software Development with C++ for Mathematical Finance Goals: (i) Programming and object oriented methods in C++; Focus! (ii) illustrated on finite differences solutions for the basic models of financial derivatives; (iii) design and develop software for modeling financial derivatives. Prerequisites: CAS MA 226 or equivalent knowledge of differential equations Prior programming experience in high level language recommended NOTE: NO credit towards the MS in Computer Science

3 6/23/2015MET CS 563--Fall 2008 1. Introduction 3 The science of computing – ancient and young Computer science is unique in that it Traces its intellectual roots as far back as the 3 d millennium BC, when the scribes of ancient Mesopotamia recorded computing recipes - or algorithms as we will call them today - on clay tablets; Implements these algorithms in the latest technologies, e.g. giga and tera flop supercomputers, optical computing, etc.

4 6/23/2015MET CS 563--Fall 2008 1. Introduction 4 Computing through the ages with “pencil and paper” - software Computing recipes in ancient Mesopotamia and Egypt on clay tablets (4 th - 3 d millennium BC); Euclid formulates the first formal algorithm that finds the greatest common devisor of two integers (ca. 300 BC); 9 th century AD: Al-Khwarizmi writes textbooks on computing with formulas  algebra finite sequence of steps  algorithm

5 6/23/2015MET CS 563--Fall 2008 1. Introduction 5 Computing through the ages with a “mechanical” device - hardware abacus, invented some 5,000 years ago in Asia, performs digital computations (still in use); mechanical calculators in the 17 th century: Wilhelm Schickard (Germany), Blaise Pascal (France), Gottfried Wilhelm Leibnitz (Germany); analog devices: slide rule, analog computers for special purpose computations.

6 6/23/2015MET CS 563--Fall 2008 1. Introduction 6 Modern General Purpose Computers The key difference of today’s computers to their precursors is that they are general purpose computing devices i.e. they are not limited to solving a specific class of problems, such as arithmetic operations, differential equations, predicting tides, but can perform any computation specified in a way the computer understands/accepts. This generality led to the development of a new concept of computation and formal computer languages

7 6/23/2015MET CS 563--Fall 2008 1. Introduction 7 any other data…, even the brain “computes”… text symbolic numerical 3.1415*2.1*2.1 logical true and false = false computation “hello”  “password”

8 6/23/2015MET CS 563--Fall 2008 1. Introduction 8 Computer Languages: high level vs. machine Compiler source code: program in ahigh level language: independent of the specific computer architecture: Pascal, C, C++, Java object code: translation of source code into another language, typically into a machine language: specific for a given computer architecture

9 MET CS 563--Fall 2008 1. Introduction 6/23/20159 Computer Languages: imperative vs. object oriented Object Oriented: bundle actions & data together into objects, (e.g. date, place, person) with data or attributes; and behavior or actions object can do Objects can interact with each other change each other, create new objects and thus ultimately producing the desired result do action-1 on data-object-1 c=a+b do action-2 on data-object -1 f=d*e … do action-n on data-object -n print c,f C C++ Imperative or Procedural: specify sequence of actions on data (objects) object today attributes/data: behavior: advance tellMo/tellDay/tellYear day 18 month 09 year 2008

10 Formal specifications for: 6/23/2015MET CS 563--Fall 2008 1. Introduction 10 What Is Needed To Get This Done?--Procedural a 5 b 10 c 15 + (i) actions and type of data int -- indicates operation on integer (ii) variable with unique value assigned in memory (iii) applying actions to data c=a+b

11 6/23/2015MET CS 563--Fall 2008 1. Introduction 11 What Is Needed To Get This Done?—Object Oriented (ii) defining objects (iii) applying actions on objects Formal specifications for: (i) bundling actions and data today.advance() today.tellMo() today.tellDay() today.tellYear() Date attributes/data: behavior: advance() tellMo() tellDay() tellYear() month day year today attributes/data: behavior: advance() tellMo() tellDay() tellYear() month 9 day 8 year 2008

12 6/23/2015 MET CS 563--Fall 2008 1. Introduction 12 Procedural  Object Oriented (ii) objects today.advance() today.tellMo() today.tellDay() today.tellYear() (iii) actions on objects (i) type Date attributes/data: behavior: advance() tellMo() tellDay() tellYear() a 5 b 10 c 15 int c=a+b month day year today attributes/data: behavior: advance() tellMo() tellDay() tellYear() month 9 day 8 year 2008

13 6/23/2015MET CS 563--Fall 2008 1. Introduction 13 Remains the dominant programming language for large numeric software applications in engineering, finance, and science. Existence of large number of software packages written in in C and C++. Why C++? Expressive Efficient Downward compatible with C Inherited C tool support. Complex Difficult to learn. Cons:Pros:


Download ppt "MET CS 563 Software Development with C++ for Mathematical Finance Dr. Tanya Zlateva MET Computer Science Department 755 Commonwealth Ave., Room 103 Boston,"

Similar presentations


Ads by Google