Course detail

Principles of Programming Languages

FIT-IPPeAcad. year: 2017/2018

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.

Language of instruction

English

Number of ECTS credits

5

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

Learning outcomes of the course unit

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.

Prerequisites

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).

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

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.

Course curriculum

    Syllabus of lectures:
    • 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

    Syllabus - others, projects and individual work of students:
    To implement a program for a given simple task in the programming language from the offered ones.

Work placements

Not applicable.

Aims

To give an overview: of existing programming paradigms, of range of existing programming languages and their classification, and of requirements on programming language analysis and translation.

Specification of controlled education, way of implementation and compensation for absences

  • Mid-term 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, 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)

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

Sebesta R.W.: Concepts of Programming Languages, 4th edition, ADDISON-WESLEY, 1999, ISBN 0-201-38596-1

Recommended reading

Lecture notes in PDF file (EN)

Classification of course in study plans

  • Programme IT-BC-1H Bachelor's

    branch BCH , 0 year of study, summer semester, recommended course

Type of course unit

 

Lecture

39 hod., optionally

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

13 hod., optionally

Teacher / Lecturer