Intended to provide a solid theoretical foundation for computer science students. A series of artificial machines such as finite state automata, push-down automata and Turing machines are be defined and studied as formal models of computers. Studies their corresponding formal languages such as regular, context-free and unrestricted languages. Discusses related issues such as Church's Thesis, Halting problem and general incompatibility. Falls. Prerequisite(s): CS 3221. 3 Credits
The objective of this course is to provide a solid theoretical foundation for computer science, in answering the fundamental questions of the Computer Science discipline, such as "what is a computer?" and "what such a computer can do and could not do?". If a problem can be solved, how? If it cannot be, why?
After reviewing some basic mathematical concepts, we will characterize the nature of a computer by studying various formal models of computers, such as finite state automata, push-down automata, and Turing machines, together with the various formal languages as characterized by such machines, such as regular languages, regular expressions and context-free languages. We will then explore their capabilities and restrictions, particularly, in terms of their decidability and computability.
Students are strongly advised to attend every class. For those who have to miss classes, I have included an extended abstract of my teaching notes within this web based syllabus.
Lectures or other class meetings for this course may be recorded by the university using USNH media platforms. Such recordings may be available for educational use by other students enrolled in the class (including both for instruction and as a review tool), the course instructor(s), and other university officials who support course instruction. Your voice or image may be captured on the recordings, and by enrolling in this course you are consenting to such recording for these purposes.
Most of the communication regarding this class will be done through email to your plymouth address, with a subject starting with "CS3780:...", so you have to regularly check your email while taking this course.
To achieve the above learning objective, numerous homework of various difficulty degrees will be assigned within the lecture notes. Although a student should not hand in anything unless and until s/he is reasonably sure about their correctness, the answers of all the assigned homework should be handed in, the latest, on the first business day in the following week, once a chapter is completed. A student should definitely
If you have a solid reason for a delay ("excused absences", as defined in the Plymouth State University attendence policy) of the aforementioned homework and/or project, please let me know before the deadline, or as soon as possible afterwards. The work(s) invovled will not be included in calculating your grade for this course.
If a student finds any part of the assignment, including homework, lab assignment, project assignment, midterm and/or final exam, is not clear, she should ask the instructor for clarification as soon as possible. The instructor will share with the whole class such a clarification, anonymously.
One mid-term test and one final exam will be given in this course. For details, check out the Evaluation segment of this syllabus.
Anything and everything handed in for this course must be done by the signed individual. If enough evidence shows that someone is involved with "cheating", the case(s) will be immediately reported to the leader of the Computer Science and Technology discipline. For relevant definitions and procedural details regarding academic integrity related issues, please refer to the recently revised University's policy on Academic Integrity.
Anything and everything, once submitted, will be considered final. If you send it in prematurely by an accident, please send me an email right away to cancel your submission.
As a constructive feedback, an anonymous sample solution for all the assignments, including homeworks, and mid-term test, will be posted after the event. As a further, and important, step of the learning process, students are urged to study such samplers carefully, and compare them with her own works with the goal of learning what is expected. Please do contact the instructor with any further questions.
The instructor will try his utmost to be fair in grading students' work as a measurement of the quality of the submitted work in terms of its degree of meeting a clearly stated expectation. On the other hand, if a student believes that s/he is not given a fair grade, s/he should follow the procedure as specified in the University Fairgrading Policy to appeal the grade.
Plymouth State University is committed to providing students with documented disabilities equal access to all university programs and facilities. If you think you have a disability requiring accommodations, you should immediately contact the Campus Accessibility Services, located in Speare 210, to determine whether you are eligible for such accommodations. Academic accommodations will only be considered for students who have registered with the Accessibility Service. If you have a Letter of Accommodation for this course from the Campus Accessibility Services Office, please provide the instructor with that information privately so that you and the instructor can review those accommodations.
The PASS (Plymouth Academic Support Services) Office, located in Speare 209, provides tutoring and study skills information.
Student Support Foundation (SSF) provides short-term emergency financial assistance and long-term student support. Click here for more information. Student Support Foundation also runs a food pantry, located in Belknap Hall. To learn more about SSF or access the food pantry, either via open hours or a private appointment, contact the SSF advisor, at email@example.com.
You might want to click here for additional information regarding other basic needs.
Introduce the subjects. Review and preview various mathematical notions and terminology, and introduce various ways of providing mathematical proof.
Define, analyze and design finite automata(FA), the class of simplest computers. Prove the equivalence between deterministic finite automata(DFA) and non-deterministic finite automata(NFA), as well as that between FA and regular expressions. Demonstrate various closure properties enjoyed by the languages accepted by FA, and the existence of strictly stronger automata via pumping lemma.
Define, analyze and design Push-down automata(PDA) and its corresponding formal language(CFL) generated by the Context-free grammars. Prove the equivalency between NPDA and CFL. Discuss the closure properties enjoyed by the CFL, and the existence of strictly stronger languages, context-sensitive languages and beyond, via another pumping lemma. Application of CFL in programming languages.
Define, analyze and design Turing Machines(TM) and its variants. Discussion of the equivalency with respect to various computational models. Define general algorithms via Church-Turing Thesis.
Discuss the general computability issue in terms of various decidable prblems, particularly, the Halting problems, and other undecidable problems.
Introduction of the reduction technique in proving more undecidable problems such as the Post Correspondence Problem.
Discuss more advanced topics, including the idea of self-producibility of machines and its applications in proving decidability and constructing computer worms; together with more complexity theory related ideas, and their application in compiler construction. To show the incapability of a computation process, we also discuss the undecidability of certain logical theory.
A calculated grade will then be converted to a letter grade by the following procedure: If a student gets at least 92.5, s/he will get 'A', if s/he gets between 87.5, and 92.4, s/he gets 'A-', so on and so forth, until s/he gets a grade below 42.5, when s/he will get 'F'.
To correct any unintentional inconsistency during the grading process, if your grade is within 0.5 of a letter grade, you will get that higher grade. Thus, if your final grade is above 92.0, you will get A, instead of A-.Your final grade for this course can be found here.