CS 403: Development of Scientific Computing Programs Andrew Pershing 3134 Snee Hall 255-5552.

Slides:



Advertisements
Similar presentations
Project Lead the Way An Orientation American High School.
Advertisements

Introduction to MATLAB Northeastern University: College of Computer and Information Science Co-op Preparation University (CPU) 10/20/2003.
Software Design Designer clothes?. Outline Announcements: –Homework I on web, due Wed., 5PM by –Starting Friday, Wed. and Fri. lectures will meet.
Teaching Courses in Scientific Computing 30 September 2010 Roger Bielefeld Director, Advanced Research Computing.
Introduction to CS170. CS170 has multiple sections Each section has its own class websites URLs for different sections: Section 000:
1 Course Information Parallel Computing Spring 2010.
Intro to CIT 594
Intro to CIT 594
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CMSC 132: Object-Oriented Programming II
CIS 404: Survey and Use of Software Libraries for Scientific Computing Andrew Pershing 3134 Snee Hall
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
MIS 470: Information Systems Project Yong Choi School of Business Administration CSU, Bakersfield.
CIS 101: Computer Programming and Problem Solving Usman Roshan Department of Computer Science NJIT.
CIS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall
MATH 330: Ordinary Differential Equations Fall 2014.
COMPUTER SCIENCE 10: INTRODUCTION TO COMPUTER SCIENCE Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Intro to CIT 594
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
Introduction to High-Level Language Programming
Programming Languages: Telling the Computers What to Do Chapter 16.
CS110/CS119 Introduction to Computing (Java)
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
MATH 310, FALL 2003 (Combinatorial Problem Solving) MoWeFr 1:20 McGregory 214.
1 MSCS 237 Distributed Computing Spring 2006 INSTRUCTOR: Dr. Sheikh Iqbal Ahamed Office: Cudahy Hall 386 Phone: Office Hours: Monday 2:00-3:00pm.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
EECE 310 Software Engineering Lecture 0: Course Orientation.
CS 160 Introduction to Computer Science Andrew Scholer
Syllabus and Class Policies MATH 130: Summer 2014.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Dr. John Lowther, Associate Professor of CS Adjunct Associate Prof. of Cognitive and Learning Sciences Computer Graphics:
CS 404: Survey and Use of Software Libraries for Scientific Computing Andrew Pershing 3134 Snee Hall
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
HP103: Intro to Matlab II HP 101 – MATLAB Wednesday, 1/14/2014
Introduction to Data Structures
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
Colorado Tech CS 145 Intro to UNIX Orientation T’Christopher Gardner
Software Design. Outline Announcements: –Homework I on web Friday –Starting Friday, Wed. and Fri. lectures will meet in ACCEL “Green” Room in Carpenter.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
1 CS1100 Fall Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems CS100J:
Linear Systems What is the Matrix?. Outline Announcements: –Homework III: due Today. by 5, by –Ideas for Friday? Linear Systems Basics Matlab and.
CS 402: Scientific Visualization with MATLAB with MATLAB Andrew Pershing 3134 Snee Hall
CS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall
CS 139 – Algorithm Development MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE.
CS Introduction to Computer Science Spring 2011 Dr. Angela Guercio (
Input Output Garbage In, Garbage Out. Outline Announcements: –Homework III: due Today. by 5, by Discuss on Friday. –Homework IV: on web, due following.
CS 161 Computer Science I Andrew Scholer
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Data Structures and Algorithms in Java AlaaEddin 2012.
CIS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall
1 CS100J Spring Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems.
CIS 403: Development of Scientific Computing Programs Andrew Pershing 3134 Snee Hall
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Syllabus and Class Policies MATH 130: Summer 2016.
Building Comfort With MATLAB
CS101 Computer Programming I
MATH/COMP 340: Numerical Analysis I
Computer Application in Engineering Design
Computer Science 102 Data Structures CSCI-UA
CS 160 Introduction to Computer Science
CS 232 Geometric Algorithms: Lecture 1
Presentation transcript:

CS 403: Development of Scientific Computing Programs Andrew Pershing 3134 Snee Hall

Outline Course Description Details Policies Intro to CIS Tools Curriculum Role of Computing in Science and Engineering Basic Concepts Model problem

Course Goals This course will: –Examine the process of scientific software development –Discuss tools, both necessary and useful, for producing scientific software –Explore techniques for improving the efficiency of computer-based research

Syllabus 1. Intro, Philosophy, Model problem 2. Design of algorithms and responsible coding 3. Formal & Informal Specification 4. Editing, compiling: UNIX vs. IDE, intro to architectures 5. Language issues: C, Fortran, Java, MATLAB 6. Building with Make 7. Debugging: UNIX db vs. IDE 8. Testing for correctness 9. Improving performance--profiling, tuning 10. Software management, source code control 11. Platform issues & how to spend your advisor's money 12. Trends for the future

Course Ungoals This course will NOT: –Teach you how to program (try CS 100m) You should be comfortable writing programs in some language (C, Matlab, FORTRAN, Java,…) –Teach you numerical methods (CS 32X, 62X) –Teach you UNIX we will discuss some UNIX tools (Windows,too), but not general features of the UNIX OS nor how to write scripts

–Contains syllabus, lecture notes, examples, homework Office Hours –Tuesday & Wednesday, 11-1 in 3134 Snee (or by appointment) Registration: –get my signature or CS Undergrad office (303 Upson) –# –S/U only, 1 credit –Last day to add/drop: Monday, Feb. 25! Course Business:

Requirements No official text Need to find a computer where you can –1. edit text and do –2. compile code (mostly C) –3. Check out ACCEL Facility in Carpenter Library, departmental labs

4 assignments: 1 per week, due Wednesday, 5PM by If you complete each assignment on time and demonstrate a basic command of the material, you will pass! Course policies are strict: –A direct consequence of the “mini-course” format This course operates as a contract between you and me Course Policies

I agree to: –Begin and end lecture on time –Put lecture notes on website before lecture –Be available during office hours –Make the assignments of reasonable length (~2 hours) focusing on material from lectures The Contract

By registering for the course, you agree to: –Arrive on time –Participate in the course by asking questions and coming to office hours –Turn in your assignments on time Late work will not be accepted and will jeopardize you chance of passing! The only exceptions are for documented, university- sanctioned reasons such as severe illness or by prior arrangement made w/ me 3 days before (includes religious holidays, sports, etc.) The Contract

–Cornell University has recognized that computing and information science has emerged as a key enabling discipline vital to nearly all of its scholarly and scientific pursuits. –The Faculty of Computing and Information is founded on the recognition that the ideas and technology of computing and information science are relevant to every academic discipline. –We are united in the need to bring together a core of faculty in this field from across the traditional colleges. CIS and FCI

CS 403 (should be CIS 403) is the third in a series of courses designed to teach applied scientific computing CIS Tools Curriculum CS Science & Engineering Scientific computing pure applied

CIS Tools Curriculum “Pure” Scientific Computing –Focus is on algorithms for general problems such as optimization, linear systems, differential equations –Concerned with accuracy, stability, and efficiency of these algorithms “Applied” Scientific Computing –How to apply general algorithms to solve scientific problems –Algorithms are “black boxes” that we string together to get our work done

CIS Tools Curriculum Fall: MATLAB –401: the basics –402: visualization (starts October 15) Spring: General tools –403: Developing scientific computer programs (compilers, debuggers, managing large projects) –404: Numerical libraries

Key Questions There are several questions we will try to address in the next 4 weeks –How do scientists use computers? Do scientists have unique requirements? –What processes are common to the development of scientific software? –As scientists, we’re paid for scientific results, not time spent hacking. How can we make the development process more efficient? –What tools are available to help us? How do they work and how do they differ across platforms?

Applied Scientific Computing Emphasis is less on developing new algorithms, rather, it is on obtaining new scientific results. –We are either running a simulation, or analyzing data (perhaps from a simulation). –We need to be able to develop new code or modify existing code to fit our needs –We should make this process easier for ourselves or colleagues the next time. –We need to get the code to run on our system. –We will need to debug the code and verify that it is solving the correct problem. –We will need to work within (or oversee) a group of programmers

A Unique Requirement Scientific results must be reproducable –This applies to computational results, too –We must accurately describe Inputs to our programs Details of our code--algorithms, parameter values

Model Problem Since we’re looking at the process of scientific software development, we’ll focus on a single example problem We will work out the design and specification of a program to solve this problem We will debug and test it We will improve its performance

Model Problem: Advection- Diffusion-Reaction in 1D Related equations occur in many fields –Fluid flow in atmosphere, ocean, lakes, universe –Biological development –Chemistry –Ecology

RAD This is not a math class, nor is it a course on numerical methods. Focus on the big picture (what we’re doing, what the components are) rather than on the details Total Change Advection Diffusion Local Change Or Growth =+ +

RAD u and k can be functions of x and t Means we need to carry out d/dx in diffusion term: Can group dk/dx with u in advection term:

Numerical Solution We start with an initial distribution of C over the interval [0 1] Divide [0 1] into discrete points separated by dx C(x,t+dt) will depend on C(x), C(x-dx), & C(x+dx) x C(x,t) C(x,t+dt)

Numerical Solution replace partial derivatives with differences (k=constant): The solution of C(x,t+dt) depends on neighboring points

Numerical Solution We have a system of n linear equations with n unknowns (C 1, C 2,…, C n ) In linear algebra, we write this as a matrix problem: –A*C t+1 =f t There are many ways to solve these problems

Numerical Solution Each C x will have a row in matrix A All rows are the same except for first and last –We need to specify what happens at end points –Boundary conditions are a big problem –We’ll use periodic BC’s C(0)=C(1), so first and last rows are: