**Major Requirement
(for B.S.)**
Course Description:
There is a beautiful theoretical underpinning to computer
science and this course explores it in depth. It looks
at theoretical models underlying machines, languages,
and algorithms, and amazingly, discovers that all of
the models are essentially the same.
This course addresses the fundamental question of what is
computable and discovers that some well-defined problems
cannot be solved by any programmer, on any machine, in any
language. It also investigates some problems that, although
they can be solved, can never be solved efficiently. In addition,
the class learns how to identify such problems. It is handy
before you spend time trying to come up with an efficient
solution to know that no such solution exists.
Offerings:
Offered each spring semester.
Instructor:
This course is taught by all computer science faculty.
Prerequisites:
CSCI 112 or 114, CSCI 250. See the department
policy on prerequisites.
Comments
from Previous Students:
- "This course made clearer concepts from other computer
science courses."
- "Great course. It was really neat to see how everything
came together amazingly."
- "I loved this course! I especially appreciated it after
I took the subject test because my good knowledge
of context-free grammars etc. is what saved me on the test."
- "This class was simply amazing! I carefully cherish my
textbook as a bible of computer science. I feel
nostalgic every time I pick it up from the shelf."
- "Important subject matter for any CS major."
- "By far my favorite class in CS. But of course, what
would one expect from a math major?"
- "Definitely the most difficult class, but also the most
interesting."
- "This was my absolute favorite class.
The logical problem solving structure of
languages and machines was right up my ally. Lots of
fun."
Catalog
Description:
This course examines the theoretical
foundations of Computer Science. It studies the relationship
between finite-state machines and various language models.
Computability theory is also studied. Prerequisite:
Computer Science 112 or 114, and 250.
Two
Credits Staff Spring Semester
|