CIS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall 255-5552.

Slides:



Advertisements
Similar presentations
Course Outline Presentation Term: F09 Faculty Name : Asma Sanam Larik Course Name :INTRO TO COMPUTING Course Code : CSE145 Section :1 Semester : 1.
Advertisements

Project Lead the Way An Orientation American High School.
Software Design Designer clothes?. Outline Announcements: –Homework I on web, due Wed., 5PM by –Starting Friday, Wed. and Fri. lectures will meet.
Where to Go Next. Outline Announcements: –Homework IV due Wed. 10/8 by 5, by Extra week for projects Absolutely no exceptions! Answers will be.
Introduction to Computer Programming I CSE 113
ATS Programming Short Course I INTRODUCTORY CONCEPTS Tuesday, Jan. 20 th, 2009.
CIS 101: Computer Programming and Problem Solving Lecture 8 Usman Roshan Department of Computer Science NJIT.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CIS 404: Survey and Use of Software Libraries for Scientific Computing Andrew Pershing 3134 Snee Hall
0 CS100J September 2007 CS100J: 12 weeks programming using Java, 2 using Matlab. David Gries. CS100M: 7 weeks of Matlab and 7 of Java. Daisy Fan. CS100H:
OBJECT ORIENTED PROGRAMMING I LECTURE 1 GEORGE KOUTSOGIANNAKIS
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
CIS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall
1 MA375 Introduction To Numerical Computing Fall 2003 Prof. Tim Warburton
MATH 330: Ordinary Differential Equations Fall 2014.
This is…. –Contains syllabus, lecture notes, examples, homework Office Hours –Tuesday & Wednesday, 3-4.
Where to Go Next. Outline Announcements: –Homework IV due Friday by 5, by Absolutely no exceptions! Answers will be posted on web I will be available.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
1 CS1110 Fall 2011: David Gries & Steve Marschner CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering- type problems.
MCS 177 Lab Fall 2014 Sept. 2, GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Contact Info Course Instructor: Louis Yu Lab.
CSCI 1301 Principles of Computer Science I
Introduction CSE 1310 – Introduction to Computers and Programming
1 CS1110 Fall 2010 Instructors: David Gries & Lillian Lee CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering-
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
1 MA471 Introduction To Scientific Computing Fall 2003 Prof. Tim Warburton
CS 404: Survey and Use of Software Libraries for Scientific Computing Andrew Pershing 3134 Snee Hall
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
CS100J Spring 2006 CS100J: 11 weeks of programming using Java and 2 weeks using Matlab. David Gries is teaching CS100J. Graeme Bailey is teaching a special.
CS 403: Development of Scientific Computing Programs Andrew Pershing 3134 Snee Hall
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Bilgisayar Mühendisliği Bölümü CENG 102 – Computer Programming Melek OKTAY Syllabus Administrative Information.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
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.
1 CPRE210: Introduction to Digital Design Instructor –Arun K. Somani –Tel: – –Office Hours: MWF 10:00-11:00 Teaching Assistant.
1 CS1110 Fall 2011 David Gries, Steve Marschner Reading for this lecture and previous lecture: Sections 1.1, 1.2, 1.3. Lab 1 will give you practice with.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Software Design. Outline Announcements: –Homework I on web Friday –Starting Friday, Wed. and Fri. lectures will meet in ACCEL “Green” Room in Carpenter.
Introduction to computers and programming Instructor: Alex Iskold.
1 CS1110. Lecture 1, 31 Aug Types, expressions, variables, assignment statements Summary of lectures : On course webpage, click on “Lecture summaries”.
This is…. –Contains syllabus, lecture notes, examples, homework Office Hours –Monday & Tuesday, 11-1 in.
1 CS1100 Fall Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems CS100J:
1 CS1110 Fall Instructors: David Gries & Lillian Lee CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering-
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
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 (
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Data Structures and Algorithms in Java AlaaEddin 2012.
Computer Programming for Engineers CMPSC 201C Fall 2000.
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
PROBLEM SOLVING AND PROGRAMMING ISMAIL ABUMUHFOUZ | CS 170.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Building Comfort With MATLAB
MATH/COMP 340: Numerical Analysis I
CS1110 Spring Instructor: David Gries
Computer Application in Engineering Design
GC101 Introduction to computers and programs
CS190/295 Programming in Python for Life Sciences: Lecture 1
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
Presentation transcript:

CIS 401: Applied Scientific Computing with MATLAB Andrew Pershing 3134 Snee Hall

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

Course Goals This course will: –Introduce the basic functionality of MATLAB –Demonstrate its utility in scientific research –Identify interesting concepts and useful techniques in scientific computing By the end of the course, you should have the skills necessary to apply MATLAB to your research and learn how to extend its capabilities

Syllabus 1. Course intro and basic concepts 2.Intro to Matlab: the workspace 3.Matlab fundamentals: arrays, & simple plots 4.Matlab programming: loops and conditionals 5.Text processing and a survey of Matlab 6.Improving performance 7.Statistics and simple plots 8.Applied Scientific Computing I: Simulation 9.Applied Scientific Computing II: Data analysis 10.Applied Scientific Computing III: Linear systems 11.File I/0 12. Loose ends and where to go from here

Course Ungoals This course will NOT: –Teach you how to program (try CS 100m) You should be comfortable writing programs in some language and be familiar with the following concepts: –Programs vs. algorithms –Iteration –Conditionals and logic –Recursion –Subroutines, variables, and scope –Teach you numerical methods (CS 322,421, 62X) –Cover everything in MATLAB

–Contains syllabus, lecture notes, examples, homework Office Hours –Tuesday & Wednesday, 1-2 in 3134 Snee (or by appointment) Registration: CIS 401 or COM S 401 –get my signature or CS Undergrad office (303 Upson) –Number: –S/U only, 1 credit –Last day to add/drop: Monday, September 9 ! Course Business:

Requirements Reference Text: Hanselman and Littlefield Mastering Matlab 6 –No required reading, but this is a great reference Find a computer with MATLAB (v6 preferred, but v5 is OK): –Check departmental labs--good site licensing for Cornell machines –ACCEL in Carpenter Hall –Upson, Carpenter, and Dickson Labs –Buy student version

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 prior to lecture (usually night before) –Be available during office hours –Make the assignments of reasonable length (2-4 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

CIS 401 is the first 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 –Applied SC is also concerned with data

CIS Tools Curriculum Fall: MATLAB –401: the basics –402: visualization (starts September 30) Spring: General tools –403: Developing scientific computer programs (compilers, debuggers, managing large projects, designing programs) –404: Numerical libraries (compiling and linking, static vs. dynamic libraries, BLAS, LAPACK, MPI)

Role of Computing in Science and Engineering Scientists have been computing for centuries, well before digital computers Digital computers allow us to do thing faster, but often the ideas are ancient Example: Velocity from pressure data

Geostrophy Measuring the velocity of atmosphere and ocean is difficult, but observing pressure is easy Fortunately, velocity can be determined from pressure using the geostrophic relationship: Pressure gradient = Coriolis force (Earth’s rotation)

Geostrophy An alternative to pressure is sea- surface height SSH can be measured by satellites

Geostrophy Use hydrostatic equation: to introduce SSH (Z) into geostrophic equation:

Geostrophy in MATLAB MATLAB allows us to compute the velocity: in only a few lines Can examine results graphically

So, what’s the point? Theme of the FCI is that computing is general The geostropic calculations are a specific instance of the general scientific computing process.

Scientific Computing Process It is possible to do all of these things in Matlab, and most of them are easier. DataProgramOutput Currents SSHGeostropic eq.U,V,plot Weather T,V,MFinite diff.T,V,M in future Bioinfomatics ATCGCGTA…Search for genesLocation of genes Electronics SignalFFTPlot of spectrum

Computer Science Review What is a computer? –Program is a series of instructions that tell the processor how to manipulate system read/write to memory, disk calculate CPU Control Unit Arith./Logic Unit Registers L1 cache L2 cache Memory (RAM) Disk Bus

Basic Concepts Algorithm vs. Program –A program is a series of commands on a computer –An algorithm is a step-by-step procedure to compute something A program should be an algorithm An algorithm does not require a computer –Ex: To get to my office, 1) Stand up and leave this room 2) Walk S to stairs 3) Go down stairs to basement 4) Go south, enter Snee through double doors 5) Walk south to stairway 6) Go up one flight of stairs to 3rd floor 7) Turn left out of stairway, my office is first on left

Basic Concepts Programs are constructed from subroutines (or classes or functions) Subroutines are constructed from –variables--name given to a specific region of memory –commands--instructions that change value of variables

Variables have value (numeric, text) have type (integer, floating point, char, etc.) Variables can also be data structures (arrays, structs) –Arrays: group of data that can be accessed through subscripts –Ex: primes is an array of 5 prime numbers primes primes 1 primes 3 primes 5

Commands Simplest command is assignment –a=1; %value of a is 1 after this statement –b=2+a; %value of b is constructed from a –a=2; %changes value of a, what is value of b? Control (if-then-else) or iteration (for, while) Call another subroutine

Commands Programming languages differ in syntax –syntax=how commands are written –Java: for(int j=0;j<n;j++){ //code } –Matlab: for j=1:n; %code; end But, all programming languages do the same thing –If you know one language, you can understand programs written in most others.

Developing programs Problem: you have a task you want your computer to do, and you need to develop a program to perform it Several approaches, iterative refinement is a simple and effective technique 1. Describe--what will your program/subroutine do? 2. Divide--what are the essential tasks? 3. Repeat--subdivide tasks if possible. The idea is to move from some description of the task (English, math, pictures) to a series of commands

Iterative Refinement I.Do Laundry A.Wash B.Dry C.Fold

A.Wash 1.Get clothes 2.Place in washer 3.Configure washer 4.Start B.Dry 1.Move from washer to dryer 2.Configure dryer 3.Start C.Fold 1.Remove from dryer 2.If (shirt) then a. Fold shirt else b. Fold pants Do Laundry

Main Point of Design –Think before you code!