CSE 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?
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 Science TheoryExperiment 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
ENIAC (1946)
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)
Scale has changed. The concepts have not!
Long Term History (tiobe.com) Language Position Aug 2011 Position Aug 2006 Position Aug 1996 Position Aug 1986 Java115- C2211 C PHP45-- C#58-- Objective- C (Visual) Basic 7336 Python8725- Perl9610- JavaScript Lisp Ada161792