Plan for this class • Logistics Welcome to 4003-380 – Syllabus & Ground Rules Introduction to CS Theory – Student Info Forms / Attendance Joe Geigel • What is this Course About • ------ break --------- • Discrete Math Review Logistics Logistics • First things first. • Textbooks – Class Web site – Required: • http://www.cs.rit.edu/~jmg/cs380 • Introduction to Languages and the Theory of Computation , 3rd edition, by John C. Martin – Recommended: • Syllabus (e-version of handout) • Schedule • Theory of Computing: A Gentle Introduction by Kinber & Smith • Homework Assignments • Introduction to Automata Theory, Languages, and • Diary (including these slides) Computation by Hopcroft, Motwani, & Ullman. Logistics Logistics • Prerequisite: • About Me – 1016-265: Discrete Math – Joe Geigel – Office: 10-A172 • Co-requisite – Office Hours: M 2-4 (and by appt) – 1016-705: Discrete Math II – http://www.cs.rit.edu/~jmg • These are important as the material in this class is mathematical in nature. 1
Logistics Logistics • Grading: • Homework – Homework will be assigned weekly. – Three basic course activities: – Will have 1 week to complete each assn. • Homework 45% – Due dates are definite! • Midterm Exam 25% • no late homeworks! • Final Exam 30% • Listed in HOMEWORK section of Web site – Group submission (max 2 people) ok – Each assignment carries equal weight – Lowest homework grade is dropped. Logistics Logistics • Midterm Exam • Homework – Given Thursday, October 10 – Homework problem session • 2 nd half of class on days when homework is not – Covers Chapters 1 - 5 assigned. – Closed book…1 page study guide • Questions about current homework assignment. • Similar problems done on the board. – Review session: Tuesday, October 8 – No make up exams Logistics Logistics • Final Exam • Schedule – Given during exam week – Posted on SCHEDULE section of Web site • Exact date and time TBD – Subject to change, but indicates the best guess as to – Cumulative what will be covered when – Includes links to these slides (in PDF) – Closed book…1 page study guide – Slides should be available 1 day before the lecture. – Review Session: last class (November 12) • Diary – Running list of what was actually covered when – No make up exams. – Includes links to these slides (in PDF) – Slides should be available 1 day before the lecture. • Any questions so far? 2
Logistics Logistics • CS Dept Policy of Academic Dishonesty • A note about e-mail. – Included in hardcopy syllabus – E-mail may be sent to entire class for late- breaking announcements. – Please read and understand. – E-mail address registered in the LDAP database • Speaking of student info forms will be used. – Any questions before I hand them out? – PLEASE be sure that the e-mail listed is the one you actually read. Theory of Computation • The idea of a “computing machine” was debated long before the advent of the first computer. So what is this course all about? – Turing Machine (1936) – ENIAC (1946) • Mathematical rather than physical machine. – Turning machine was invented as an approach at solving the following: • “Can there exist, at least in principle, a definite method by which all mathematical problems can be decided” • This course will present these mathematical models. Computation: Turing Machine Computation: Turing Machine • Tape that holds • Running a Turing Machine Input tape (input/memory) character string – Encode your input and place on the input tape ... • Tape head that reads – Put state machine into the “start” state Read head and writes character – Let the machine change states as it reads/writes State • Machine that changes characters to the tape Machine state based on what is – When machine “stops”, your answer will be left (program) read in on the tape 3
But why? Computation • Application areas • Computation – Basic questions in computer science – Computation • Computability : What problems can and cannot be computed? – Language Processing • Complexity : If a problem can be solved using a “computing machine”, how long will it take ? – Mathematical Modeling – Approach • All this theory was developed before the advent of computers! • Develop a mathematical model for a “computer” • “Run” your problem using this model to test for computability and efficiency Computation: Turing Machine String Recognition problem • All this needs to be described using • Given a string and a definition of a Mathematics! language (set of strings), is the string a member of the language? • Getting from here to there YES, string is – Will describe simpler “mathematical machines” in Language that answer simpler problems. Language – One such problem: String recognition Input string recognition machine NO, string is not in Language Languages Languages • Three elements • Will actually be looking at classes of languages: – Mechanism for defining/ generating a language – The language itself (set of strings) – Each class will have its own means for language generation – A mathematical machine that can be used to test if a string is in the language. – Each class will have its own machine model for string recognition – Languages and machines get more complex as we move forward in the course. 4
Languages So in short… • Practical Uses Theory of Computation – Parsing / Compilers / Interpretters – grep Languages – These mathematical models are used to parse programs Computation written in modern computer languages Parsers / compilers / grep / programming Computability Complexity languages, etc But all this is to come…. • We’ll start with the basics… – after the break • Any questions? 5
Recommend
More recommend