CODE | CIS1223 | ||||||||
TITLE | Declarative Programming and Knowledge-Based Systems | ||||||||
UM LEVEL | 01 - Year 1 in Modular Undergraduate Course | ||||||||
MQF LEVEL | 5 | ||||||||
ECTS CREDITS | 5 | ||||||||
DEPARTMENT | Computer ¸£ÀûÔÚÏßÃâ·Ñ Systems | ||||||||
DESCRIPTION | This introductory study-unit explores the declarative programming paradigm, focusing on its application in knowledge-based systems. Unlike traditional procedural programming, declarative programming emphasises the what over the how, allowing students to articulate complex logic and reasoning processes more intuitively. The study-unit begins by introducing core concepts of declarative programming, including its contrast with imperative approaches and its strengths in AI and rule-based applications. Prolog, a powerful language rooted in logic programming, serves as our primary tool to illustrate these concepts. Through hands-on examples and exercises, students will learn fundamental Prolog constructs, including facts, rules, and queries. Building on this foundation, the focus shifts to knowledge-based systems (KBS), examining their role in simulating expert reasoning and decision-making. Students will study the core principles behind KBS, such as knowledge representation, inference engines, and rule-based logic. In the latter part of the study-unit, students will apply their Prolog skills to construct a small expert system, consolidating their understanding of declarative programming and KBS. By the end of this study-unit, students will have gained a foundational understanding of declarative logic, knowledge-based systems, and the practical applications of Prolog. Study-unit Aims: - Introduce the Declarative Programming Paradigm - Enable students to understand the fundamental principles and differences between declarative and imperative programming approaches; - Develop Proficiency in Prolog - Provide students with practical skills in Prolog, focusing on essential constructs like facts, rules, queries, and recursion, which underpin declarative programming in AI contexts; - Explore Logic and Knowledge Representation - Teach students how knowledge can be represented logically through declarative statements, laying the groundwork for reasoning and inference in intelligent applications; - Understand the Basics of Knowledge-Based Systems (KBS) - Familiarise students with the concepts of knowledge-based systems, their structure, and their role in mimicking expert reasoning and decision-making; - Apply Prolog in Building Knowledge-Based Systems - Guide students in using Prolog to implement simple rule-based systems, ultimately designing a small expert system that demonstrates KBS principles; - Encourage Problem-Solving through Logical Reasoning - Develop the students’ analytical and logical thinking skills, enabling them to approach problems from a declarative perspective. Learning Outcomes: 1. Knowledge & Understanding By the end of the study-unit the student will be able to: - Explain the declarative programming paradigm and its advantages in certain problem-solving contexts, especially in AI and rule-based applications; - Describe the syntax, semantics, and constructs of Prolog, including facts, rules, queries, and recursion; - Outline the main components of a knowledge-based system, such as knowledge representation, inference engines, and rule-based logic; - Demonstrate an understanding of how Prolog can be used to model logical relationships and implement basic reasoning; - Identify real-world applications where declarative programming and knowledge-based systems are advantageous. 2. Skills By the end of the study-unit the student will be able to: - Use Prolog to define and manipulate facts and rules to represent knowledge declaratively; - Formulate and test Prolog queries to retrieve information from a knowledge base effectively; - Apply knowledge representation techniques to structure information logically in Prolog; - Design and implement a simple expert system in Prolog that demonstrates the core principles of knowledge-based systems; - Analyse logical problems and develop solutions using declarative reasoning, showing an ability to think through problems systematically; - Evaluate the effectiveness of Prolog and declarative programming in solving specific types of problems, particularly within the context of AI and knowledge-based applications. Main Text/s and any supplementary readings: Main Texts - Logic Programming with Prolog. Max Bramer. Springer, November 2014. ISBN-13 978-1447154860. Web Resources - Learn Prolog Now! https://www.let.rug.nl/bos/lpn// - The Power of Prolog https://www.metalevel.at/prolog https://github.com/triska/the-power-of-prolog Supplementary Readings - Warren, D. S., Dahl, V., Eiter, T., Hermenegildo, M. V., Kowalski, R., & Rossi, F. (Eds.). (2023). Prolog: The Next 50 Years. Lecture Notes in Computer Science, Vol. 13900. Springer Nature Switzerland. - Kifer, M., & Liu, Y. A. (Eds.). (2018). Declarative Logic Programming: Theory, Systems, and Applications. ACM Books. |
||||||||
STUDY-UNIT TYPE | Lecture and Tutorial | ||||||||
METHOD OF ASSESSMENT |
|
||||||||
LECTURER/S | John M. Abela Peter Albert Xuereb (Co-ord.) |
||||||||
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints. Units not attracting a sufficient number of registrations may be withdrawn without notice. It should be noted that all the information in the description above applies to study-units available during the academic year 2025/6. It may be subject to change in subsequent years. |