FI:PB006 Princ. of Prog Lang. and OOP - Course Information
PB006 Principles of Programming Languages and OOP
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
In-person direct teaching - Teacher(s)
- doc. Mgr. Jan Obdržálek, PhD. (lecturer)
Jindřich Halabala (assistant)
Mgr. Anna Řechtáčková (assistant) - Guaranteed by
- doc. Mgr. Jan Obdržálek, PhD.
Department of Computer Science – Faculty of Informatics
Contact Person: doc. Mgr. Jan Obdržálek, PhD.
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Wed 25. 9. to Wed 18. 12. Wed 10:00–11:50 D1
- Prerequisites
- ( IB111 Foundations of Programming || NOW( IB111 Foundations of Programming )) && ( PB071 Principles of low-level prog. || PB111 Principles of low-level prog. )
The course is, due to its synthetic nature, intended for students with some knowledge of a modern imperative programming language (Python), some low-level language (C) and a functional programming language (Haskell). - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- Image Processing and Analysis (programme FI, N-VIZ)
- Bioinformatics and systems biology (programme FI, N-UIZD)
- Computer Games Development (programme FI, N-VIZ_A)
- Computer Graphics and Visualisation (programme FI, N-VIZ_A)
- Computer Networks and Communications (programme FI, N-PSKB_A)
- Cybersecurity Management (programme FI, N-RSSS_A)
- Formal analysis of computer systems (programme FI, N-TEI)
- Graphic design (programme FI, N-VIZ)
- Graphic Design (programme FI, N-VIZ_A)
- Hardware Systems (programme FI, N-PSKB_A)
- Hardware systems (programme FI, N-PSKB)
- Image Processing and Analysis (programme FI, N-VIZ_A)
- Information security (programme FI, N-PSKB)
- Informatics (programme FI, B-INF) (2)
- Informatics in education (programme FI, B-IVV) (2)
- Information Security (programme FI, N-PSKB_A)
- Quantum and Other Nonclassical Computational Models (programme FI, N-TEI)
- Computer graphics and visualisation (programme FI, N-VIZ)
- Computer Networks and Communications (programme FI, N-PSKB)
- Principles of programming languages (programme FI, N-TEI)
- Programming and development (programme FI, B-PVA)
- Cybersecurity management (programme FI, N-RSSS)
- Services development management (programme FI, N-RSSS)
- Software Systems Development Management (programme FI, N-RSSS)
- Services Development Management (programme FI, N-RSSS_A)
- Software Systems Development Management (programme FI, N-RSSS_A)
- Software systems (programme FI, N-PSKB)
- Machine learning and artificial intelligence (programme FI, N-UIZD)
- Teacher of Informatics and IT administrator (programme FI, N-UCI)
- Informatics for secondary school teachers (programme FI, N-UCI) (2)
- Computer Games Development (programme FI, N-VIZ)
- Processing and analysis of large-scale data (programme FI, N-UIZD)
- Natural language processing (programme FI, N-UIZD)
- Course objectives
- The goal of this course is to introduce students to the various concepts present in modern programming languages. The course also serves as an introduction to object-oriented programming.
- Learning outcomes
- By the end of the course, the student will:
know basic concepts present in modern programming languages;
be able to quickly obtain an in-depth understanding a of new programming language and start using it;
understand the principles of object-oriented programming;
able to assess suitability of a given programming language for a particular problem domain;
to analyze both strong and weak aspects of a given programming language, - Syllabus
- Names, bindings, scopes. Block structure. Representing object in memory.
- Primitive and composite types. Typechecking. Lists. Pointers and references. Type derivation.
- Control flow: expressions, statements, control structures.
- Subprograms: local definitions, parameter passing, overloaded and generic functions. Coroutines.
- Abstract data types: basic concepts, encapsulation, case studies. Parameterized ADT, generics. Namespaces.
- Object oriented programming: principles, inheritance, dynamic binding.
- Exceptions: basic concepts, case studies, exceptions in functional programming languages.
- Support for name handling and encapsulation in large programs.
- Literature
- recommended literature
- SEBESTA, Robert W. Concepts of Programming Languages. 10th Edition. Addison-Wesley, 2012, 816 pp. ISBN 978-0-13-139531-2. info
- Programming language pragmatics. Edited by Michael Lee Scott. 2nd ed. Oxford: Elsevier Science [distributor], 2006, xxxi, 875. ISBN 9780126339512. info
- Teaching methods
- The course is organized as a series of lectures.
- Assessment methods
- 6 shorter homeworks during the semestr. Final exam at the end of semester. The exam consists of two parts: a theoretical (written) part and a practical part (programming on a computer).
- Language of instruction
- Czech
- Further Comments
- Study Materials
The course is taught annually. - Listed among pre-requisites of other courses
- Teacher's information
- https://is.muni.cz/el/1433/podzim2020/PB006/index.qwarp
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/PB006