Coursepack1-3 - Module 1: Course Overview Course: CSE 460...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
1 1 Module 1: Course Overview • Course: CSE 460 • Instructor: Dr. Eric Torng • Grader/TA: Jignesh Patel 2 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 3 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?
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 4 Science • Physics – Study of fundamental physical laws and phenomenon like gravity and electricity • Engineering – Governed by physical laws •O u r m a t e r i a l – Study of fundamental computational laws and phenomenon like undecidability and universal computers • Programming – Governed by computational laws 5 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 6 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
Background image of page 2
3 7 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? 8 Module 2: Fundamental Concepts • Problems • Programs – Programming languages 9 Problems We view solving problems as the main application for computer programs
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 10 Inputs Outputs (4,2,3,1) (3,1,2,4) (7,5,1) (1,2,3) (1,2,3,4) (1,5,7) (1,2,3) Definition • A problem is a mapping or function between a set of inputs and a set of outputs • Example Problem: Sorting 11 How to specify a problem • Input – Describe what an input instance looks like • Output – Describe what task should be performed on the input – In particular, describe what output should be produced 12 Example Problem Specifications* – Sorting problem • Input – Integers n 1 , n 2 , . .., n k • Output –n 1 , n 2 , . .., n k in nondecreasing order – Find element problem • Input – Integers n 1 , n 2 , …, n k
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 83

Coursepack1-3 - Module 1: Course Overview Course: CSE 460...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online