Instructor:

Course Venue:
## LLT 1B

CIT Block B

College of Computing and Information Sciences

Course Code:

CSC 1209

Course Credit Units:

3

Semester:

Semester 2

Year of Study:

Year 1

Undergraduate or Graduate Level:

Undergraduate Level

Academic Programs:

Department:

Course Discipline:

Course Description & Objectives:

This course introduces a paradigm where computation arises from proof search in a logic according to a fixed, predictable strategy. It thereby unifies logical specification and implementation in a way that is quite different from functional or imperative programming. This course pro- vides a thorough, modern introduction to logic programming. It intro- duces the basic concepts and techniques of logic programming followed by successive refinement towards more efficient implementations or ex- tensions to richer logical concepts. It covers a variety of logics and operational interpretations.The aim of the course is to provide a basic introduction to the logic programming language, Prolog. It aims at introducing a number of logical systems of importance in computer science.

Learning Outcomes:

By the end of the subject, students should:

- Be conversant with the syntax and semantics of propositional and predicate logic
- Be familiar with a variety of applications of predicate logic in software verification, databases and knowledge-based systems
- Be able to write specifications in predicate logic expressing state constraints
- Understand the notion of formal proof, and be able to construct simple proofs in a natural deduction proof system for predicate logic
- Be aware that there are inherent expressiveness and computational limitations to the applicability of logical systems, and be famil- iar with a number of restrictions under which the computational limitations can be overcome
- Be able to write programs in a logic programming language,
- Understand both the top-down and the bottom up operational semantics of logic programs