Course detail

Principles of Programming Languages

FIT-IPPAcad. year: 2023/2024

The course offers a basic classification of programming languages with a more detailed explanation of imperative and declarative languages. Explaining imperative paradigm, it will be presented non-structured, structured (both block and modular), and object-oriented programming languages. Design patterns are presented as a programming technique. A brief introduction into functional and logic programming will be studied during the explanation of the declarative paradigm. The underlying theories are discussed too. Students will also be given an introduction to processing (translation) of presented programming paradigms/languages.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Entry knowledge

Formal languages and their models, grammars, automata; translation/analysis of formal languages. Focus on regular and context-free languages and their models, grammars, automata and processing.

Rules for evaluation and completion of the course

  • Mid-term exam, for which there is only one schedule and, thus, there is no possibility to have another trial - 20 points.
  • One project should be solved and delivered in given deadlines during a term - 20 points.

  • Mid-term exam - written form, a test, where answers are given in full sentences, no possibility to have a second/alternative trial. (20 points)
  • Projects realization - 1 project (program(s) development according to a given specification) with appropriate documentation. (20 points)
  • Final exam - written form, a test, where answers are given in full sentences, 2 another corrections trials possible. (60 points - the minimal number of points which can be obtained from the final exam is 25, otherwise, no points will be assigned to a student.)

Aims

To give an overview: of existing programming paradigms, of the range of existing programming languages and their classification, and of requirements on programming language usage, analysis, and translation.
Students will be able to classify programming languages. They will be able to use a given programming paradigm on a certain level too. Moreover, basic analysis and compilation issues will be clarified as well. Usage of selected design patterns.

Study aids

Not applicable.

Prerequisites and corequisites

Basic literature

Not applicable.

Recommended reading

Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - I, studijní opora pro kombinované studium, modul IPP I, VUT FIT, 2006
Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - III, studijní opora pro kombinované studium, modul IPP III, VUT FIT, 2006
Křivka, Z., Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - II, studijní opora pro kombinované studium, modul IPP II, VUT FIT, 2008
Lecture notes in PDF file (EN)
Lee, D.K.: Foundations of Programming Languages, Second Edition, Springer, 2017
MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation (3rd Edition). Oxford University Press, 1999
Sebesta R.W.: Concepts of Programming Languages, 4th edition, ADDISON-WESLEY, 1999, ISBN 0-201-38596-1
Texty přednášek v elektronické podobě (CS)

Elearning

Classification of course in study plans

  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory
  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory

  • Programme IT-BC-3 Bachelor's

    branch BIT , 2 year of study, summer semester, compulsory

Type of course unit

 

Lecture

39 hod., optionally

Teacher / Lecturer

Syllabus

  1. Introduction, the definition of used terms
  2. Imperative languages, non-structured programming languages
  3. Block-structured programming languages
  4. Modular languages
  5. Object-oriented languages
  6. Some specialities of object-oriented programming languages
  7. Design patterns
  8. Declarative languages, lambda calculus
  9. Functional programming languages
  10. Logical programming languages
  11. Another declarative programming languages, their comparison
  12. Main differences in usage and implementation of declarative and imperative programming languages
  13. Conclusion, discussion of the follow-up courses

Project

13 hod., compulsory

Teacher / Lecturer

Syllabus

A simple program or programs/scripts implemented in the given programming language together with relevant documentation.

Elearning