This course provides a first introduction to the theoretical concepts of Computer Science. The focus of the course is the study of abstract computing devices without targeting a specific programming language and/or computing platform. In particular, we will study:
a) finite automata, which model computing machines with finite fixed memory, and the class of regular languages, which is used for pattern matching languages;
b) pushdown automata and context-free grammars that facilitate declarative specifications of language syntax;
c) the universal computational model of Turing machines, and the inherent limits of what can be solved on a computer (undecidability); and, finally,
time complexity theory,
which helps us measure the time used to solve a problem.
The course also
emphasizes rigorous thinking and mathematical proofs.
· Class: Mon, Wed and Fri 10:45-11:35, BYAC 110
· Instructor: Georgios Fainekos (fainekos at asu),
· Office hours: Mon 3:30-4:30 & Tue 10:00-11:00
· Office: BYENG 474
Data structures and Discrete mathematics
· Required: Introduction to the theory of computation, Michael Sipser, Thomson Course Technology, Second Edition, 2004.
· Additional Reference: Introduction to Automata Theory, Languages and Computation, J.E. Hopcroft, R. Motwani, and J.D. Ullman, Addison Wesley, Third edition, 2006
Grades will be based on
· Seven Homework Assignments: One third
· Two Midterms: One third
· Final Exam: One third
· There will be one or two optional projects. Those who choose to do the project will be graded as follows:
o Homework: 1/4
o Midterms: 1/4
o Final exam: 1/4
The homework must be turned in by the end of the class on the due day (unless specified otherwise).
· If turned in one day late, 10% off.
· If turned in two days late (next class - some week), 25% off.
· If turned in three days late (next class on Monday next week), 50% off.
If turned in later than
above, NO credit.
policy will be *strictly* enforced.
NO excuses will be accepted, plan ahead!
Your work for this course must be the result of your own individual effort. Having said that, you are allowed to discuss problems with your classmates or me, but you must not blatantly copy others' solutions. Copying (or slightly changing) solutions from online sources, other books or your friends is easily detectable. If the latter copying is detected the worst credit will be split among the perpetrators, or worse! Also, if you can find an answer online, then so can I!
The best way to prepare for the midterms and the exams is to do the homework on your own!
If you are entitled to extra accommodation for any reason (such as a disability), I will make every reasonable attempt to accommodate you. However, it is your responsibility to discuss this with the instructor at the beginning of the course.