Transcript Module 1
Module 1: Course Overview • Course: CSE 460 • Instructor: Dr. Eric Torng • Grader: Yi Liu 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