Principles of Programming Languages
IPP Acad. year 2022/2023 Summer semester 5 credits
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
- 39 hrs lectures
- 13 hrs projects
- 60 pts final exam (written part)
- 20 pts mid-term test (written part)
- 20 pts projects
Křivka Zbyněk, Ing., Ph.D. (UIFS)
Křivka Zbyněk, Ing., Ph.D. (UIFS)
Course Web Pages
Subject specific learning outcomes and competences
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.
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.
Why is the course taught
IT bachelors should understand principals of program representation in run-time, what categories of programming languages are available, what one can expect from a particular programming language. Moreover, a deeper understanding of processing and implementation of object paradigm and design patterns is necessary and required as an outcome too.
Prerequisite knowledge and skills
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.
- perl, php, python
- Lecture notes in PDF file
- Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - I, studijní opora pro kombinované studium, modul IPP I, 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
- Kolář, D.: Principy programovacích jazyků a objektově orientovaného programování - III, studijní opora pro kombinované studium, modul IPP III, VUT FIT, 2006
- Sebesta R.W.: Concepts of Programming Languages, 4th edition, ADDISON-WESLEY, 1999, ISBN 0-201-38596-1
- MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation (3rd Edition). Oxford University Press, 1999
- Lee, D.K.: Foundations of Programming Languages, Second Edition, Springer, 2017
Syllabus of lectures
- Introduction, the definition of used terms
- Imperative languages, non-structured programming languages
- Block-structured programming languages
- Modular languages
- Object-oriented languages
- Some specialities of object-oriented programming languages
- Design patterns
- Declarative languages, lambda calculus
- Functional programming languages
- Logical programming languages
- Another declarative programming languages, their comparison
- Main differences in usage and implementation of declarative and imperative programming languages
- Conclusion, discussion of the follow-up courses
Syllabus - others, projects and individual work of students
A simple program or programs/scripts implemented in the given programming language together with relevant documentation.
- 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.)
At the end of a term, a student should have at least 50% of points that he or she could obtain during the term; 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.
How to contact the teacher
Via e-mail - each tutor should be contacted vie his/her e-mail presented on his/her official WWW page. As a subject of the e-mail, as the leading text, put acronym of the course, e.g. IPP: ... or [IPP] ...
Such a way, it is suitable to ask more or less personal quitestions (not devoted to vider audience) or to ask a slot for personal consultation. If you wan to ask issues of projects then use forum for the project - information may be useful even for other students
|Mon||exam||2023-03-27||E104 E112||08:00||08:45||IPP - půlsemestrální zkouška - 8:00|
|Mon||lecture||1., 5., 6., 7., 8., 11., 12. of lectures||E104 E105 E112||08:00||10:50||9999||2BIB 3BIT||xx 20 - 29||Kolář|
|Mon||lecture||2., 3., 4., 9. of lectures||E104 E105 E112||08:00||10:50||9999||2BIB 3BIT||xx 20 - 29||Křivka|
|Mon||exam||2023-03-27||E104 E105 E112||09:00||09:45||IPP - půlsemestrální zkouška - 9:00|
|Mon||exam||2023-05-15||A112 A113 D0206 D0207 D105 E104 E105 E112 G202||09:00||11:50||řádná|
|Mon||exam||2023-05-29||D0206 D0207 D105 E104 E105 E112||09:00||11:50||1. oprava|
|Mon||exam||2023-03-27||E104 E105 E112||10:00||10:45||IPP - půlsemestrální zkouška - 10:00|
|Tue||exam||2023-03-28||E104 E105 E112||10:00||10:45||IPP - půlsemestrální zkouška - 10:00 - út|
|Tue||lecture||1., 5., 6., 7., 8., 10., 11., 12., 13. of lectures||E104 E105 E112||10:00||12:50||9999||2BIA 3BIT||xx 10 - 19||Kolář|
|Tue||lecture||2., 3., 4., 9. of lectures||E104 E105 E112||10:00||12:50||9999||2BIA 3BIT||xx 10 - 19||Křivka|
|Tue||exam||2023-03-28||E104 E105 E112||11:00||11:45||IPP - půlsemestrální zkouška - 11:00 - út|
|Tue||exam||2023-03-28||E104 E112||12:00||12:45||IPP - půlsemestrální zkouška - 12:00 - út|
|Thu||exam||2023-06-08||D0206 D105||13:00||15:50||2. oprava|
Course inclusion in study plans
- Programme BIT, 2nd year of study, Compulsory
- Programme BIT (in English), 2nd year of study, Compulsory
- Programme IT-BC-3, field BIT, 2nd year of study, Compulsory