Instructor
Office Hours Email
|
Dr. Feodor Dragan
Room 254 MSB TR 1:00 - 2:00 and 4:30 - 5:30 p.m. and by appointment dragan@cs.kent.edu (330) 672-9058 |
Teaching Assistant
Office Hours Email
|
Hassan Gobjuka
Room 355 MSB TR 1:00 - 2:00 p.m. and by appointment hgobjuka@cs.kent.edu (330) 672-9108 |
You are about to embark on the
study of a fascinating and important subject: the theory of computation.
It comprises the fundamental mathematical properties of computer hardware,
software, and certain applications thereof. In studying this subject we
seek to determine what can and cannot be computed, how quickly, with how
much memory, and on which type of computational model. The subject has
obvious connections with engineering practice, and, as in many sciences,
it also has purely philosophical aspects.
...
Theory is relevant to practice.
It provides conceptual tools that practitioners use in computer engineering.
Designing a new programming language for a specialized application? What
you learned about grammars comes in handy. Dealing with string searching
and pattern matching? Remember finite automata and regular expressions.
Confronted with a problem that seems to require more computer time than
you can afford? Thank back to what you learned about NP-completeness. Various
application areas, such as modern cryptographic protocols, rely on theoretical
principles that you will learn here.
Theory is also relevant to you
because it shows you a new, simpler, and more elegant side of computers,
which we normally consider to be complicated machines. The best computer
designs and applications are conceived with elegance in mind. A theoretical
course can heighten your aesthetic sense and help you build more beautiful
systems.
Finally, theory is good for
you because studying it expands your mind. Computer technology changes
quickly. Specific technical knowledge, though useful today, becomes outdated
in just a few years. Consider instead the abilities to think, to express
yourself clearly and precisely, to solve problems, and to know when you
haven't solved a problem. These abilities have lasting value. Studying
theory trains you in these areas.
Practical considerations aside,
nearly everyone working with computers is curious about these amazing creations,
their capabilities, and their limitations. A whole new branch of mathematics
has grown up in the past 30 years to answer certain basic questions. Here's
a big one that remains unsolved: If I give you a large number, say, with
500 digits, can you find its factors (the numbers that divide it evenly),
in a reasonable amount of time? Even using a supercomputer, no one presently
knows how to do that in all cases within the lifetime of the universe!
The factoring problem is connected to certain codes in modern cryptosystems.
Find a fast way to factor and fame is yours!
Homework | - | - | - | 30% |
Midterm Exam | ?????? | March ??, 2004 | 3:15 - 4:30 pm | 35% |
Final Exam | Friday | May 7, 2004 | 7:45 -10:00 am | 35% |