![Page 1: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/1.jpg)
CSE 20211Fundamentals of Computing
Prof. Douglas ThainFall 2011
![Page 2: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/3.jpg)
What is Computer Scienceand Engineering?
![Page 4: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/5.jpg)
CSE is Engineering(Both software and hardware)
![Page 6: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/6.jpg)
CSE is Art
![Page 7: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/7.jpg)
CSE is Invention
![Page 8: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/9.jpg)
Computing is a Mode of ScienceTheory Experiment
Simulation via Computation
![Page 10: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/10.jpg)
CSE is a Craft to be Learned
![Page 11: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/11.jpg)
![Page 12: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/12.jpg)
![Page 13: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/13.jpg)
![Page 14: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/15.jpg)
A Little History
![Page 17: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/17.jpg)
IBM 360 Mainframe (1964)
![Page 19: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/19.jpg)
Personal Computers (1980s)
![Page 20: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/20.jpg)
Handheld Devices (2000s)
+ The Cloud
![Page 21: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/21.jpg)
The Internet (1969)
![Page 22: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/22.jpg)
The Internet (1972)
![Page 23: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/23.jpg)
The Internet (1990s)
![Page 24: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/24.jpg)
Personal Computers (1990s)The Internet (2000s)
![Page 25: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/25.jpg)
http://xkcd.com/256/
![Page 27: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/27.jpg)
Scale has changed.The concepts have not!
![Page 28: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/28.jpg)
![Page 29: CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011](https://reader036.vdocument.in/reader036/viewer/2022062520/56816143550346895dd0ba71/html5/thumbnails/29.jpg)
Long Term History(tiobe.com)
Language PositionAug 2011
PositionAug 2006
PositionAug 1996
PositionAug 1986
Java 1 1 5 -C 2 2 1 1
C++ 3 4 2 5PHP 4 5 - -
C# 5 8 - -
Objective-C
6 40 - -
(Visual) Basic
7 3 3 6
Python 8 7 25 -Perl 9 6 10 -
JavaScript 10 10 12 -Lisp 14 15 14 3
Ada 16 17 9 2