Time and Place: TTh 1:30-2:45 PM, BYAC 240
Instructor: Joohyung Lee (joolee (at) asu (dot) edu)
Instructor's Office Hours: TBD
Description: Mathematical logic plays a fundamental role in various areas of computer science : computer architecture (Boolean logic, digital gates, hardware verification), software engineering (specification, verification), programming languages (semantics, type theory, logic programming), databases (relational algebra, database query language), artificial intelligence (automated theorem proving, knowledge representation), algorithms and theory of computation (complexity, computability, expressiveness), etc.
This course is an elementary but mathematically solid introduction to propositional and first order logic, and their applications in computer science. You will learn logic mainly by doing homework problems, by presenting your solutions to the class, and by studying and discussing the solutions presented by others. There is no textbook; the necessary theory and the statements of problems to discuss will be provided in a series of handouts. You should make a serious effort to solve each of them. Try to figure out solutions by yourself or in collaboration with other students, but not by asking someone who already knows the answers, and not by reading books.
In each handout, some problems are marked for class discussion. You are expected to volunteer to present your solutions to at least one of them (preferably more) at some point, which will earn you credit for class participation. These should be solutions that you found by yourself, without much help from others.
Several times during the semester you will receive e-mail messages with additional homework problems. When you work on these additional problems, you may consult the materials handed out in class and your notes, but not any books, and you should not accept any help.
Your grade will be determined by class participation, homework submitted electronically, two midterms and the final.