Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

Programming Paradigms

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BIE-PPA.21 Z,ZK 5 2P+2R anglicky
Garant předmětu:
Jan Janoušek
Přednášející:
Filip Křikava, Petr Máj
Cvičící:
Tomáš Jakl, Tomáš Pecka
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

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.

Požadavky:

Basic knowledge of imperative programming and of OOP (C and C++)

Osnova přednášek:

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.

Osnova cvičení:

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

Cíle studia:

The goal of the course is to provide an overview of programming paradigms. Basic principles and concepts of high-level programming languages based on the programming paradigms are described and compared. The course deals with functional and logic programming in details. Students should learn both basic theoretical principles and programming practical examples. Principles of implementing programming languages are discussed as well.

Studijní materiály:

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.

Poznámka:

https://courses.fit.cvut.cz/

Další informace:
https://courses.fit.cvut.cz/
Rozvrh na zimní semestr 2023/2024:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
místnost T9:349
Jakl T.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC učebna
Út
St
místnost TH:A-s134
Sliacký J.
Máj P.

16:15–17:45
(přednášková par. 1)
Thákurova 7 (budova FSv)
As134
Čt

Rozvrh na letní semestr 2023/2024:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 22. 4. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet6706506.html