SIGCSE'98 Panel on Logic in the CS Curriculum

Logic has been called "the calculus of computer science". The argument is that logic plays a fundamental role in computer science, similar to that played by calculus in the physical sciences and traditional engineering disciplines. Unlike calculus, however, the central place of logic in the computer science curriculum is far from universally accepted. For example, the ACM/IEEE Computing Curricula 1991 lists logic only as one of many mathematics requirements. Yet logic plays an important role in areas of Computer Science as disparate as architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), database (relational algebra and SQL), artificial intelligence (automatic theorem proving), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Some might even argue that much of computer science can be seen as a generalization or outgrowth of logic. On the other hand, there are those who claim that logic is just an academic exercise, of no practical import. The focus of this panel the role of logic in the computer science curriculum.