Programming Paradigms
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BIE-PPA | Z,ZK | 5 | 2P+2C | anglicky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
- Požadavky:
- Osnova přednášek:
-
1. Introduction: The syntax and semantics of programming languages, scopes, strict and lazy evaluation, orthogonality.
2. Imperative programming paradigm: statements, data types, procedures, passing parameters.
3. Object-oriented programming paradigm and data abstraction.
4. Functional programming paradigm and lambda calculus.
5. Semantic constructs of functional programming languages and their implementation. Functional programming style.
6. Logic programming paradigm and formal logic.
7. Semantic constructs of logic programming languages and their implementation. Declarative programming style.
8. Programming languages with constraints.
9. Query languages. Domain-specific languages.
10. Support and language constructs for parallel and distributed computing and synchronization in various programming paradigms.
11. Scripting languages.
- Osnova cvičení:
- Cíle studia:
-
The goal is to provide a survey and understanding of main programming paradigms. Basic principles and semantic conceptsof high-level programming languages based on these paradigms are explained. In the area of object-oriented programming,the course builds upon the Object-Oriented Programming course. Functional and logic (declarative) programming paradigmsare discussed in more details. Beside explanation of the basic principles, the emphasis is on mastering practical examples.The course provides comparison and discussion of the pros and cons of individual paradigms and the reasons for combining these paradigms in modern programming languages.Moreover, implementation aspects of various types of programming languages are discussed.
- Studijní materiály:
-
[1] Scott, M. L.: Programming Language Pragmatics, 3rd Edition, Morgan Kaufmann, 2009, 978-0123745149,
[2] Sebesta, R. W.: Concepts of Programming Languages, 10th Edition, Addison-Wesley, 2012, 978-0131395312,
[3] Sethi, R.: Programming Languages: Concepts and Constructs, Addison-Wesley, 1996, 978-0201590654,
- Poznámka:
-
Information about the course and courseware are available at https://courses.fit.cvut.cz/BIE-PPA/
- Další informace:
- https://courses.fit.cvut.cz/BIE-PPA/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Bachelor branch Security and Information Technology, in English, 2015-2020 (volitelný předmět)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in English, 2015-2020 (povinný předmět zaměření)
- Bachelor branch Computer Science, in English, 2015-2020 (povinný předmět oboru)
- Bachelor Specialization, Information Security, 2021 (VO)
- Bachelor Specialization Computer Systems and Virtualization, 2021 (VO)
- Bachelor branch Computer Science, in English, 2015-2020 original version (povinný předmět oboru)
- Bachelor Specialization, Computer Engineering, Version 2024 (VO)