CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011

29
CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011

description

CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011. Main Objectives. Learn how to think algorithmically. Get LOTS of practice programming. Take a tour of computer science. Learn a lot of C, a little C++, and some Unix. What is Computer Science and Engineering?. - PowerPoint PPT Presentation

Transcript of CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011

Page 1: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE 20211Fundamentals of Computing

Prof. Douglas ThainFall 2011

Page 2: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Main Objectives

• Learn how to think algorithmically.• Get LOTS of practice programming.• Take a tour of computer science.• Learn a lot of C, a little C++, and some Unix.

Page 3: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

What is Computer Scienceand Engineering?

Page 4: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Conventional(but unsatisfying) definitions:

• Computer science is the study of software, and is closest to the field of mathematics.

• Computer engineering is the study of hardware and is closest to the field of EE.

Page 5: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE is Engineering(Both software and hardware)

Page 6: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE is Art

Page 7: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE is Invention

Page 8: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE is Logic and Mathematics

The Minimax Algorithm

Quicksort P = NP?The PageRank Algorithm

Page 9: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Computing is a Mode of ScienceTheory Experiment

Simulation via Computation

Page 10: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

CSE is a Craft to be Learned

Page 11: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011
Page 12: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011
Page 13: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011
Page 14: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Learning the Craft of Programming• Write programs for fun!• Write programs for work.• Write programs for contests.• Learn several languages:

– An assembly language. (x86, MIPS, PowerPC)– A procedural language (C, FORTRAN)– An object-oriented language (Java, C#)– A scripting language (python, perl, bash)– A functional language (LISP, Haskell)

• Work on a team writing software (classes, research)• Download, examine, and modify open source software.• Read good books about computing.• Revisit programs you have written before.

Page 15: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

A Little History

Page 17: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

IBM 360 Mainframe (1964)

Page 21: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

The Internet (1969)

Page 22: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

The Internet (1972)

Page 23: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

The Internet (1990s)

Page 24: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Personal Computers (1990s)The Internet (2000s)

Page 25: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

http://xkcd.com/256/

Page 26: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

http://xkcd.com/802/

Page 27: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011

Scale has changed.The concepts have not!

Page 28: CSE 20211 Fundamentals of Computing Prof. Douglas  Thain Fall 2011