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

Slides:



Advertisements
Similar presentations
Computer Science Department Introduction To Computers and Programming Knowledge: Understand the concepts of computer, hardware, software and programming.
Advertisements

Introduction to Programming in C++ John Galletly.
Introduction to Computers 2010 Class: ________________ Name: ________________.
Algorithm –History Muhammad ibn Musa Al-Khwarizmi www -groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Al- Khwarizmi.html Book on arithmetic:
Introduction to Computer Programming I CSE 113
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
Computers: Tools for an Information Age
Chapter 16 Programming and Languages: Telling the Computer What to Do.
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 3 Programming and Software.
Classes and Objects Objects of class type string Input/Output Objects and Formatted Input/Output 6/30/2015MET CS 563--Fall A. Using Class Type Objects.
Origins of Computing – Pre 1900 Raj Reddy Carnegie Mellon University Jan 14, 2013
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
Computer Science 101 Introduction to Programming.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Welcome to USA DAY at University of South Alabama School of Computer and Information Sciences
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CIS Computer Programming Logic
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 2 INTRODUCTION TO SOFTWARE DEVELOPMENT: PROGRAMMING & LANGUAGES.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
What does a computer program look like: a general overview.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Chapter 1 Introduction Chapter 1 Introduction 1 st Semester 2015 CSC 1101 Computer Programming-1.
Lecture 11: 10/1/2002CS149D Fall CS149D Elements of Computer Science Ayman Abdel-Hamid Department of Computer Science Old Dominion University Lecture.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Maria Siomadi 5 th class. What is a “computer”? A computer is a general purpose device that can be programmed to carry out a finite set of arithmetic.
History of Mechanical Computing ? Why does it matter?  Computers were designed to “compute”  Solve mathematical computations  Not a new idea.
1 Principles of Information Technology Introduction to Software and Information Systems Copyright © Texas Education Agency, All rights reserved.
CSC1200 INTRODUCTION TO PROGRAMMING Dr. Maureen Markel
1 Programming a Computer Lecture Ten. 2 Outline  A quick introduction to the programming language C  Introduction to software packages: Matlab for numerical.
Introduction to Computing BBA-I/BSCS-I Instructor: M. Mateen Yaqoob.
Some Computer Science Conceptual Background Material Doug Hogan This version for UIC Spring 2016 CS 107.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
◙ The Ishango Bone (dated – BC)
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
Programming Languages Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Functional Programming
What Do Computers Do? A computer system is
Introduction to Algorithms
Programming what is C++
Computer Programming (BCT 1113)
Sections Basic Concepts of Programming
CSCI-235 Micro-Computer Applications
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
An Introduction to Visual Basic .NET and Program Design
CS190/295 Programming in Python for Life Sciences: Lecture 1
Low Level Programming Languages
Introduction to Algorithms
ICT Gaming Lesson 2.
Understand the interaction between computer hardware and software
Presentation transcript:

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

6/23/2015MET CS 563--Fall 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

6/23/2015MET CS 563--Fall 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.

6/23/2015MET CS 563--Fall 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

6/23/2015MET CS 563--Fall 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/23/2015MET CS 563--Fall 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

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

6/23/2015MET CS 563--Fall 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

MET CS 563--Fall 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

Formal specifications for: 6/23/2015MET CS 563--Fall 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

6/23/2015MET CS 563--Fall 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

6/23/2015 MET CS 563--Fall 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

6/23/2015MET CS 563--Fall 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: