umass lowell computer science 91.304 foundations of computer science prof. karen daniels fall, 2009...
Post on 20-Dec-2015
221 views
TRANSCRIPT
UMass Lowell Computer Science 91.304
Foundations of Computer Science
Prof. Karen Daniels Fall, 2009
UMass Lowell Computer Science 91.304
Foundations of Computer Science
Prof. Karen Daniels Fall, 2009
Lecture 1Lecture 1
Introduction/OverviewIntroduction/OverviewTh. 9/3/2009Th. 9/3/2009
Web PageWeb PageWeb PageWeb Page
http://www.cs.uml.edu/~kdaniels/courses/304.html
Nature of the CourseNature of the Course
• Core course: Core course: required for all CS majorsrequired for all CS majors• Advanced undergraduate levelAdvanced undergraduate level
• Graduate students take separate course (91.502)Graduate students take separate course (91.502)
• No programming requiredNo programming required• ““Pencil-and-paper” exercisesPencil-and-paper” exercises
PrerequisitesPrerequisites
Growth of FunctionsGrowth of Functions
SummationsSummations
RecurrencesRecurrences
SetsSets
ProbabilityProbability
MATHMATHProofsProofs
LogarithmsLogarithms
PermutationsPermutations
CombinationsCombinations
Discrete Math I & II (92.321, 92.322)Discrete Math I & II (92.321, 92.322)
What’s it all about?What’s it all about?
• Automata and LanguagesAutomata and Languages• Starting point for models of computation• Finite automaton used in text processing, compilers, hardware design.
• Context-free grammar used in programming languages and AI.
• Computability TheoryComputability Theory• What is an algorithm? What is computable? What is “decidable?”What is an algorithm? What is computable? What is “decidable?”• Theoretical models led to actual computer construction.Theoretical models led to actual computer construction.• Helps to identify useful approaches to real problems.Helps to identify useful approaches to real problems.
• Complexity TheoryComplexity Theory• Classify problems as easy or “hard” by creating complexity classes.Classify problems as easy or “hard” by creating complexity classes.• Cryptography has used computationally hard problems to design codes.Cryptography has used computationally hard problems to design codes.
-Three areas below are central to the theory of computation.Three areas below are central to the theory of computation.-They are linked by the common question:They are linked by the common question:
-““What are the fundamental capabilities and limitations of What are the fundamental capabilities and limitations of computers?”computers?”
source: textbooksource: textbook
Course Structure: 3 PartsCourse Structure: 3 Parts
• Automata and LanguagesAutomata and Languages• Regular LanguagesRegular Languages• Context-Free LanguagesContext-Free Languages
• Computability TheoryComputability Theory• Church-Turing ThesisChurch-Turing Thesis• DecidabilityDecidability• ReducibilityReducibility
• Complexity TheoryComplexity Theory• Time ComplexityTime Complexity
TextbookTextbook
• Required: • Introduction to the Theory of ComputationIntroduction to the Theory of Computation
• by Michael Sipserby Michael Sipser• Thomson Course TechnologyThomson Course Technology• 20062006• ISBN 0-534-95097-3ISBN 0-534-95097-3• see course web site (Related Links) for errata (2see course web site (Related Links) for errata (2ndnd edition) edition)
Ordered for UML bookstore
22ndnd Edition Edition
Syllabus (current plan)Syllabus (current plan)
Syllabus (current plan, continued)Syllabus (current plan, continued)
Syllabus (current plan, continued)Syllabus (current plan, continued)
Important DatesImportant Dates
• Quiz (closed book)Quiz (closed book) Thursday, 9/10 Thursday, 9/10• Midterm Exam Midterm Exam (Chapters 0-3): Thursday, 10/22: Thursday, 10/22• Final Exam Final Exam (Chapters 0-5, 7):(Chapters 0-5, 7): TBATBA
GradingGrading
• Homework 30%• Quiz (chapter 0, closed book) 5%• Midterm (chapters 0-3, open book & notes) 30% • Discretionary (attendance, participation) 5%• Final Exam (cumulative, open book & notes) 30%