November 28, 20211 Kenosha, Wisconsinn 28 de Noviembre de ...
CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011
description
Transcript of CSE 20211 Fundamentals of Computing Prof. Douglas Thain Fall 2011
CSE 20211Fundamentals of Computing
Prof. Douglas ThainFall 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 Scienceand Engineering?
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.
CSE is Engineering(Both software and hardware)
CSE is Art
CSE is Invention
CSE is Logic and Mathematics
The Minimax Algorithm
Quicksort P = NP?The PageRank Algorithm
Computing is a Mode of ScienceTheory Experiment
Simulation via Computation
CSE is a Craft to be Learned
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.
A Little History
IBM 360 Mainframe (1964)
DEC PDP-11 (1970)
Personal Computers (1980s)
Handheld Devices (2000s)
+ The Cloud
The Internet (1969)
The Internet (1972)
The Internet (1990s)
Personal Computers (1990s)The Internet (2000s)
http://xkcd.com/256/
http://xkcd.com/802/
Scale has changed.The concepts have not!
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