Course detail
Principles of Programming Languages (in English)
FIT-IPPeAcad. year: 2024/2025
The course offers basic classification of programming languages with 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. A brief introduction into functional and logic programming will be studied during explanation of declarative paradigm. The underlying theories are discussed too. Students will be also given an introduction to processing (translation) of presented programming paradigms/languages.
Why is the course taught
IT students should understand the principles of program representation in run-time, what categories of programming languages are available, and what one can expect from a particular programming language. Moreover, a deeper understanding of processing and implementation of object-oriented paradigm and design patterns is necessary and required as an outcome, too.
Exam prerequisites
At the end of a semester, a student should have at least 50 % of all points that he or she could obtain during the semester; that means at least 20 points out of 40.
Plagiarism and not allowed cooperation will cause that involved students are not classified and disciplinary action can be initiated.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Offered to foreign students
Entry knowledge
Formal languages and their models (regular and context-free grammars, finite and pushdown automata); processing of formal languages such as analysis (parsers) and translation (compilers); basic programming skills.
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 a given date during a term - 20 points.
- Mid-term exam - written form, a test, where answers are given in sentences (open questions), by selection of appropriate answer from offered ones, and by combination of both of these possibilities, no possibility to have a second/alternative trial. (20 points)
- Projects realization - 1 project (program development according to a given specification) with appropriate documentation. (20 points)
- Final exam - written form, a test, where answers are given in sentences, by selection of appropriate answer from offered ones, and by combination of both of these possibilities, 2 another corrections trials possible. (60 points)
Aims
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.
Study aids
Prerequisites and corequisites
- recommended prerequisite
Formal Languages and Compilers
Basic literature
Recommended reading
Texty přednášek v elektronické podobě (CS)
Elearning
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction, definition of used terms
- Imperative languages, non-structured programming languages
- Block-structured programming languages
- Modular languages
- Object-oriented languages
- Some specialties of object-oriented programming languages
- Comparison of various kinds of imperative programming languages
- Declarative languages, lambda calculus
- Functional programming languages
- Logical programming languages
- Other declarative programming languages, their comparison
- Main differences in usage and implementation of declarative and imperative programming languages
- Conclusion, discussion of the follow-up courses
Project
Teacher / Lecturer
Syllabus
Elearning