UIINFNP017 Functional Programming

Faculty of Philosophy and Science in Opava
Summer 2025
Extent and Intensity
0/2/0. 4 credit(s). Type of Completion: z (credit).
Teacher(s)
Ing. Jiří Blahuta, Ph.D. (seminar tutor)
Guaranteed by
Ing. Jiří Blahuta, Ph.D.
Institute of Computer Science – Faculty of Philosophy and Science in Opava
Prerequisites
Basic knowledge of programming and the use of editing tools and the MS environment.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
Course objectives
History of Lisp and its perspective. Dialects of Lisp, Common Lisp. Basic data types, atoms, lists and their processing. Symbols and functions, principles of functional programming. Using recursion and iteration. Lambda calculus, anonymous functions, higher order functions. Lisp and artificial intelligencet. Macros. Structures and object oriented programming in Lisp.
Learning outcomes
After completing the course, the student will be able to create recursive functions and work with lists, use structures, and object-oriented programming in the LISP language.
Syllabus
  • 1. Lisp and its development, present and perspective. Dialects, relatives and descendants of Lisp. Common Lisp as standard, compared with other languages. Prescriptive, procedural, object-oriented , modular, logic and functional programming and support for Lisp.
  • 2. First look at Lisp. Basic data types. Atoms and lists their evaluation. Symbols and links; functions; the principles of functional programming.
  • 3. Macintosh Common Lisp. Editor, the listener, the inspector and debugger. IDE integration and Lisp. Lisp as a dynamic language.
  • 4. The second view of Lisp. Lambda calculus in Lisp, anonymous functions, higher order functions, lexical environment. Lisp and artificial intelligence.
  • 5. A third view of Lisp. Cycle Read-eval-print. Basic data types for the second time. Macros. Optimization program.
  • 6. Object-oriented programming in Lisp. Classes and instances, multiple inheritance. Generic functions, methods and multimethods. A combination of methods. Metaobject protocol.
Literature
  • Povinná:  TOURETZKY, David S. Common LISP: A Gentle Introduction to Symbolic Computation. Mineola, NY: Dover Publications, 2013. ISBN 978-0-486-49820-1. Doporučená:  MUELLER, John. Functional programming for dummies. Hoboken, New Jersey: John Wiley, [2
Teaching methods
75% attendance in exercises, active participation. More thant 50% success rate in submitted tasks.
Assessment methods
Elaboration of assigned tasks. Earning more than half of the points for completing the assigned tasks. Mandatory participation in exercises min. 75%.
Language of instruction
Czech
Teacher's information
http://is.slu.cz
Exercises with the teacher, solving tasks
The course is also listed under the following terms Summer 2022, Summer 2023, Summer 2024.
  • Enrolment Statistics (Summer 2025, recent)
  • Permalink: https://is.slu.cz/course/fpf/summer2025/UIINFNP017