Transcript Module 1

Module 1: Course Overview
• Course: CSE 460
• Instructor: Dr. Eric Torng
• TA: ?
1
What is this course?
• Philosophy of computing course
– We take a step back to think about computing in
broader terms
• Science of computing course
– We study fundamental ideas/results that shape
the field of computer science
• “Applied” computing course
– We learn study a broad range of material with
relevance to computing today
2
Philosophy
• Phil. of life
– What is the purpose of
life?
– What are we capable of
accomplishing in life?
– Are there limits to
what we can do in life?
– Why do we drive on
parkways and park on
driveways?
• Phil. of computing
– What is the purpose of
programming?
– What can we achieve
through programming?
– Are there limits to what we
can do with programs?
– Why don’t debuggers
actually debug programs?
3
Science
• Physics
– Study of fundamental
physical laws and
phenomenon like
gravity and electricity
• Engineering
– Governed by physical
laws
• Our material
– Study of fundamental
computational laws
and phenomenon like
undecidability and
universal computers
• Programming
– Governed by
computational laws
4
Applied computing
• Applications are not immediately obvious
– In some cases, seeing the applicability of this
material requires advanced abstraction skills
• Every year, there are people who leave this course
unable to see the applicability of the material
– Others require more material in order to
completely understand their application
• for example, to understand how regular expressions
and context-free grammars are applied to the design
of compilers, you need to take a compilers course
5
Some applications
– Important programming languages
• regular expressions (perl)
• finite state automata (used in hardware design)
• context-free grammars
– Proofs of program correctness
– Subroutines
• Using them to prove problems are unsolvable
– String searching/Pattern matching
– Algorithm design concepts such as recursion
6
Fundamental Theme
• What are the capabilities and limitations of
computers and computer programs?
– What can we do with computers/programs?
– Are there things we cannot do with
computers/programs?
7
Studying the Theme *
• How do we prove something CAN be done
by SOME program?
• How do we prove something CANNOT be
done by ANY program?
– How would Scott Adams answer this question?
8