|Course||B401 / A595—Fundamentals of Computing Theory|
|Times||Mon & Wed, 01:00 PM-02:15 PM|
|Office Hours||Arun Chauhan: Wed 03:00-05:00pm (LH 330E)|
|Nilesh Mahajan: Fri 10am-12pm (LH 130)|
|Textbook||John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman|
|Introduction to Automata Theory, Languages, and Computation, 3/E. Addison-Wesley, 2006.|
About the course
Suppose your pointy-haired boss gave you a project to write a program that would optimize the deployment of his sales force by minimizing their daily circuit through all of their 100 customers. Your evaluation would be based on how quickly could your program come up with the best possible route. Should you take up the challenge? Or, consider a situation where you need to develop a tool that needs to take commands from a user, understand those commands, and then take appropriate actions. What kind of language and programming tools should you use to write such a tool? Are there problems that you cannot solve by writing programs? Is there a systematic way to answer questions about the limits of what computers can and cannot do? What are “regular expressions” and how are those related to text editors? These are the kind of questions that this course will help you answer.