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

Info iconThis preview shows pages 1–3. 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? 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 1

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

View Full DocumentRight Arrow Icon
2 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 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 –In tege r s n 1 , n 2 , . .., n k • Output –n 1 , n 2 , . .., n k in nondecreasing order – Find element problem • Input r s n 1 , n 2 , …, n k – Search key S
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 07/25/2008 for the course CSE 460 taught by Professor Torng during the Fall '07 term at Michigan State University.

Page1 / 42

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

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

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