computer science 121

15
Computer Science 121 Scientific Computing Winter 2012

Upload: idola

Post on 06-Jan-2016

24 views

Category:

Documents


0 download

DESCRIPTION

Scientific Computing Winter 2012. Computer Science 121. Contact : Google simon levy Interests : Robotics / drones, cognitive science, linguistics, Artificial Intelligence, philosophy of mind, programming languages, iPhone apps,. Who Am I?. Who Are You?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Computer Science 121

Computer Science 121

Scientific Computing

Winter 2012

Page 2: Computer Science 121

Contact: Google simon levy

Interests: Robotics / drones,

cognitive science, linguistics,

Artificial Intelligence,

philosophy of mind,

programming languages,

iPhone apps, ...

Who Am I?

Page 3: Computer Science 121

Who Are You?

• Neuroscience *********

Geology ****

Biology ****

Undecided ***

Math **

English *

Accounting *

Page 4: Computer Science 121

Who Are You?

• Senior (2012) **************

• Junior (2013) ********

• Sophomore (2014) *

• Firstyear (2015) **

Page 5: Computer Science 121

How Will You Do in this Course?

• A: ************************

• A-: **************

• B+: **********

• B: ******

• B-: *****

• C+: ***

• C: ***

Page 6: Computer Science 121

Textbook

• Based on Matlab

• Developed over 4 yaears @

Macalester College

• Barely in print; order from

http://www.lulu.com

• We'll cover Ch. 1-8 in 1st 6 weeks,

then various remaining chapters

based on interest/progress.

Page 7: Computer Science 121

Purpose

1. “To teach you to write effective computer programs.

2. To introduce you to some of the main methodological

areas of scientific computation and provide you with

the tools you need to carry out computational tasks you

are likely to encounter in research.”

from http://www.macalester.edu/~kaplan/ cs121/policies.pdf

Page 8: Computer Science 121

Purpose

● Scientific computing (???) : Computing (programming) for the sciences

● But skills are transferable to general programming work

● Difficulties

– Absolute precision in specifying instructions

– Considering full range of circumstances of how a program will be

used

– Considering how your assumptions may not be shared by the user

– Systematically tracking down bugs

– Breaking down complicated problems into simple(r) sub-problems

(continued from Kaplan PDF)

Page 9: Computer Science 121

Matlab

● An integrated programming and graphical environment● Interpreted : interactive; get answer immediately● Also supports saving and loading large programs● Student version available for $100 from

http://mathworks.com● Free, open-source “equivalent” : Octave

http://www.gnu.org/software/octave

Page 10: Computer Science 121

Matlab

● Issues

1) Matlab vs.

a) higher-level (Excel / SPSS) package

b) lower-level (C++ / Java / Python) language

2) Matlab vs. a similar package (Mathematica, Maple)

3) Matlab vs. Python

Page 11: Computer Science 121

1) Abstraction

● Recipe analogy: How to make chocolate-chip cookies?

● High-level (Excel / SPSS) version:

1. Make chocolate-chip dough

2. Bake cookies

● Too abstract

Page 12: Computer Science 121

1) Abstraction

● Low-level (Java / C++) version:1. Drive to store

2. Buy: dozen eggs, 1 lb. flour, 1lb. sugar, 1qt. milk, 1 bag chocolate chips, 1

lb. butter, 1 lb. lard

3. Drive home

4. Turn oven dial to 375° F.

5. Take out bowl, measuring cup

6. Measure ½ cup lard, ½ cup butter

7. Put butter, lard into bowl

8. Stir butter, lard, clockwise 20 times, counter-clockwise 20 times

9. Measure 1 cup flour

10. Add flour to bowl

11. Stir clockwise 10 times, ...

● Too concrete

Page 13: Computer Science 121

1) Abstraction ● Recipe analogy: How to make a cake?

● “Matlab” version:

1. Mix ½ cup lard, ½ cup butter, getting them good and creamy.

2. Mix in 1 cup flour, ¾ cup brown sugar, ¾ cup white sugar, 2

eggs, 1 tsp. vanilla, and ½ tsp. baking soda.

3. Work this over until it is thoroughly mixed, then blend in 1 ¼ cup

more flour.

4. Bake at 375 degrees 8-10 minutes.

(http://www.skyport.com/rogue-press/chocchip/basic.htm)

Page 14: Computer Science 121

2) Matlab vs. Mathematica / Maple ● Features

— Matlab: Numerical (linear algebra)

— Maple, Mathematica: Symbolic (calculus)

... Matlab is excellent for manipulating data, or dealing with any sort of matrix calculations..

From my experience Mathematica is ideal when it comes to symbolics such as differentiation and integration.

I've seen a few cases where Mathematica blows Maple out of the water when one compares the types of integrals

they can evaluate.

Maple and Matlab have the best graphics in my opinion. In both of them you are allowed to rotate 3D

graphics and zoom in on the spot (2D) in realtime. In Mathematica things are little more complicated, which

often [elicits] frustration. With Mathematica, in order to zoom, you must change the window that you are

plotting with.

from http://www.physicsforums.com/archive/topic/ t45208_Matlab_vs_Maple_vs_Mathematica.html:

Page 15: Computer Science 121

3) Matlab vs. Python

● Python: General-purpose language popular in CS

● Interpreted

● Free, open-source

● SciPy (Matplotlib): Matlab-like packages

● Good support for parallel / high-performance

computing