Code: BIE-PPA.21 |
Programming Paradigms |
Lecturer: doc. Ing. Jan Janoušek Ph.D. |
Weekly load: 2P+2R |
Completion: A, EX |
Department: 18101 |
Credits: 5 |
Semester: W |
- Description:
-
The course deals with basic paradigms of high-level programming languages, including their basic execution models, benefits, and limitations of particular approaches. Functional programming paradigm and its basic principles are explained in details. Logic programming is introduced as another way of declarative programming. The principles are demonstrated on lambda calculus and on Lisp (Racket) and Prolog programming languages. Moreover, usage of these principles is demonstrated on modern mainstream programming languages such as C++ and Java.
- Contents:
-
1. High-level programming languages and their paradigms.
2. Basic runtime environment for executing programs.
3. Functional programming: Lambda calculus.
4. Informal introduction to LISP, from Lambda calculus to LISP.
5. Recursion, higher order functions and their composition.
6. Macros.
7. Functional programming in modern programming languages.
8. [2] Efficient interpretation of functional languages: SECD virtual machine.
10. Programming in logic: Prolog - introduction.
11. Unification, cut operator.
12. [2] More complex examples, graph algorithms in Prolog.
- Seminar contents:
-
1. Lambda calculus I
2. Lambda calculus II
3. Lambda calculus III
4. Lisp I
5. Lisp II
6. Lisp III
7. Prolog I
8. Prolog II
- Recommended literature:
-
1. Lee K. D. : Foundations of Programming Languages. Springer, 2014. ISBN 978-3-319-13314-0.
2. Hoyte D. : Let Over Lambda. lulu.com, 2008. ISBN 978-1435712751.
3. Brammer M. : Logic Programming with Prolog (2nd Edition). Springer, 2013. ISBN 978-1-4471-5487-7.
4. Weitz E. : Common Lisp Recipes: A Problem-Solution Approach. Apress, 2016. ISBN 978-1-4842-1177-9.
- Keywords:
- programming languages, functional programming, logic programming
Abbreviations used:
Semester:
- W ... winter semester (usually October - February)
- S ... spring semester (usually March - June)
- W,S ... both semesters
Mode of completion of the course:
- A ... Assessment (no grade is given to this course but credits are awarded. You will receive only P (Passed) of F (Failed) and number of credits)
- GA ... Graded Assessment (a grade is awarded for this course)
- EX ... Examination (a grade is awarded for this course)
- A, EX ... Examination (the award of Assessment is a precondition for taking the Examination in the given subject, a grade is awarded for this course)
Weekly load (hours per week):
- P ... lecture
- C ... seminar
- L ... laboratory
- R ... proseminar
- S ... seminar