ITSE301 : Logic Programming

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

Type

Elective

Credits

03

Prerequisite

ITGS211

Overview

The course provides an introduction to Logic Programming. Topics Include: the syntax and the semantics of Prolog; Prolog interpreter; problem solving in AI; Prolog database querying, parsing, meta-programming; List Processing; Controlling Backtracking; Definite Clause Grammars; Practical Applications; Semantic Web and Logic Programming.

Intended learning outcomes

Knowledge &understand

  • Explain basic concepts and definitions of logic programming.
  • To be familiar with the basic components of the program using the Prolog language
  • To understand the difference between declarative programming and procedural programming
  • To understand the principles of declarative specification
  • To explain the problems in a logical programming style
  • To know the facts and rules
  • Explaining the term of Predicates
  • Explain the different features of variables in the Prolog language

mental skills

  • Distinguish between the different types of terms (data objects) in the Prolog language
  • To compare the declarative programming method and procedural programming
  • Distinguish between unification and backtracking to evaluate a series of objectives
  • To compare the values of arithmetic expressions.
  • To describe the main techniques for String manipulation in Prolog

Practical & professional skills

  • To use the Prolog language , and designing well Prolog programs
  • It uses unification and backtracking technology to evaluate a series of targets entered by the user.
  • Evaluate arithmetic expressions and compare their value.
  • Evaluate a set of goals in Prolog iteratively.
  • Use 'Cut' predicate and Cut with Failure to specify exceptions to general rules
  • Define predicates to create a database of relevant facts within a Prolog database.
  • Represent Data in the form of Lists

General and transferable skills

  • To be able to use modern technological tools.
  • Working in a team to complete a mini project
  • To use internet sites and scientific references for independent study
  • To be able to deliver and present, writing reports

Teaching and learning methods

  • Lectures
  • Tutorials
  • HomeWorks
  • Labs

Methods of assessments

  • Midterm exam = 20
  • HomeWorks = 5
  • Lab exam = 15
  • Project = 20
  • Final exam = 40

Course contents

  • Introduction of Logic Programming
  • Introduction of Prolog language
  • Basics of Prolog
  • Clauses and Predicates Clauses
  • Satisfying goals
  • Search & Backtracking
  • Operators and Arithmetic Operators
  • Recursion and Lists in prolog.
  • Cut and negation
  • Representing Data Structures in prolog
  • Changing the Prolog Database
  • List Processing
  • String Processing
  • Inputting a String of Characters

Networks Programming (ITSE405)
Mobile Applications Development (ITSE304)
Cryptographic Algorithms and Protocols (ITSE306)
Information Retrieval Systems (ITSE307)
Mobile Operating System (ITSE308)
Programming Paradigms (ITSE309)
Principles of Games Developments (ITSE401)
Multimedia Systems (ITSE404)
Cloud Computing (ITSE406)
Web Services (ITSE407)
Web Applications Development (ITSE408)
Modelling of Complex Systems (ITSE303)
Data Mining/Business Intelligence (ITSE302)
Social Networking (ITSE409)
Logic Programming (ITSE301)
Mathematics I (ITMM111)
Physics (ITPH111)
Problem solving Technic (ITGS113)
Intro to Information Technology (ITGS111)
General English1 (ITEL111)
Arabic language 1 (ITAR111)
Mathematics II (ITMM122)
Arabic language 2 (ITAR122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Networking (ITGS215)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Introduction to Databases (ITGS228)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Introduction to Internet Programming (ITGS226)
Computer Architucture & Organization (ITGS223)
Information Security (ITGS224)
Design and Analysis algorithms (ITGS301)
IT Project Management (ITGS303)
Software Requirements Analysis (ITSE311)
Advanced Databases (ITSE312)
Scientific Writing (ITGS304)
Modern Programming Language (ITSE322)
Software Construction (ITSE321)
Operating System (ITGS302)
Software Design and Architecture (ITSE411)
Advanced Internet Programming (ITSE412)
Human Computer Interaction (ITSE413)
Software Engineering Ethics (ITSE414)
Software Quality Assurance and Testing (ITSE421)
Software Reuse and Component-Based Software Engineering (CBSE) (ITSE422)
Visual Programing (ITSE423)
software design models (ITSE424)