456-0310/01 – Functional and Logic Programming (FLP)

Gurantor departmentDepartment of Computer ScienceCredits6
Subject guarantorprof. RNDr. Marie Duží, CSc.Subject version guarantorprof. RNDr. Marie Duží, CSc.
Study levelundergraduate or graduateRequirementOptional
Year1Semestersummer
Study languageCzech
Year of introduction2003/2004Year of cancellation2009/2010
Intended for the facultiesFEIIntended for study typesFollow-up Master
Instruction secured by
LoginNameTuitorTeacher giving lectures
BEH01 Ing. Marek Běhálek, Ph.D.
MEN059 Mgr. Marek Menšík, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2
Combined Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

The course should provide both theoretical and practial knowledge of declarative programming languages. The students will deal with programming techniques based on recursive data structures and general recursive specification. Both logic programming and functional programming is dealt with. Logic programming in Prolog and functional programming in Haskell.

Teaching methods

Lectures
Seminars
Individual consultations
Tutorials
Project work

Summary

The course is divided into two independent parts. The part devoted to the functional programming will concern mainly to methods based on the lambda calculus. The second part is oriented to logic programming and programming techniques using the Prolog language.

Compulsory literature:

Programming language Haskell: http://www.haskell.org or http://learnyouahaskell.com/ Programming language Prolog: http://www.swi.psy.uva.nl/projects/SWI-Prolog/

Recommended literature:

Programming language Haskell: http://book.realworldhaskell.org/read/ Programming language Prolog: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html

Way of continuous check of knowledge in the course of semester

Podmínky udělení zápočtu: Vypracování dvou samostatných projektů, každý maximálně 15 bodů. Zápočtový test max. 15 bodů. Minimální počet bodů pro získání zápočtu = 25

E-learning

Další požadavky na studenta

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures: Declarative programming languages, functional and logic programming fundamentals. Lambda calculus, lambda conversion, fixed-point operator, recursive functions. Functional data representation; logical values, tuples, collection, numbers. Data types of the Haskell language, the definition of user-defined data types, abstraction. Definition of functions, unification patterns, lazy evaluation. List data structures, using recursion definition, infinite lists. Proving in functional languages, structural induction. Imperative features of functional programs, monads, computation-state representation, input-output, exceptions. Application of functional programming - denotation semantics. Aplication of functional programming - analysis of a text. Principles of logic programming; substitution, resolution, unification. Prolog data types; lists, tuples. User-defined data types, trees. Basic programming techniques of logic programming. Search and ordering. Meta-programming, work with clauses. Programming with restrictions, language like CLP. Projects: Projekt No 1: Functional specification of the solution of a given problem, and its implementation in the Haskell language. Projekt No 2: Specification of the solution of a given problem using the clausal form of predicate logic, and its implementation in Prolog. Projekt 2: Specifikace řešení zadaného problému ve formě klauzulí predikátové logiky a jeho implementace v jazyce Prolog.

Conditions for subject completion

Full-time form (validity from: 1960/1961 Summer semester, validity until: 2008/2009 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Exercises evaluation and Examination Credit and Examination 100 (100) 51
        Examination Examination 55 (55) 26
                Zkouškový test Written examination 55  26
        Exercises evaluation Credit 45 (45) 25
                Project - functional programming Project 15  0
                Project - logic programming Project 15  0
                Zápočtový test Written test 15  0
Mandatory attendence parzicipation:

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.FormStudy language Tut. centreYearWSType of duty
2009/2010 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Optional study plan
2009/2010 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Optional study plan
2008/2009 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Optional study plan
2008/2009 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Optional study plan
2008/2009 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan
2007/2008 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 2 Choice-compulsory study plan
2007/2008 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan
2007/2008 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Optional study plan
2007/2008 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Optional study plan
2006/2007 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 2 Choice-compulsory study plan
2006/2007 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan
2006/2007 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Optional study plan
2006/2007 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Optional study plan
2005/2006 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 2 Choice-compulsory study plan
2005/2006 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan
2004/2005 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 2 Choice-compulsory study plan
2004/2005 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan
2003/2004 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 2 Choice-compulsory study plan
2003/2004 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 2 Choice-compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner