FI:PB006 Princ. of Prog Lang. and OOP - Course Information
PB006 Principles of Programming Languages and OOPFaculty of Informatics
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- doc. Mgr. Jan Obdržálek, PhD. (lecturer)
RNDr. Vladimír Štill, Ph.D. (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
- Fri 8:00–9:50 Virtuální místnost
- ( IB111 Foundations of Programming || IB002 Algorithms I ) && PB071 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
- there are 61 fields of study the course is directly associated with, display
- 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 be able:
to choose a programming language (programming paradigm) suitable for a given problem domain;
to analyze both strong and weak aspects of a given programming language;
to quickly obtain an in-depth understanding a of new programming language;
understand the principles of object-oriented programming.
- 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. Event handling.
- 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
- Evaluation: final written exam.
- Language of instruction
- Further Comments
- Study Materials
The course is taught annually.
- Listed among pre-requisites of other courses
- PB007 Software Engineering I
PB006 || NOW(PB006) || PB161 || NOW(PB161) || PB162 || NOW(PB162) || IB114
- PB175 Project managment and project
PB007 && PB006
- PB176 Basics of Quality and Managment of Source Code
PB006 || PB071 || now(PB071)
- PV178 Introduction to Development in C#/.NET
PB006 || PB161 || PB162
- PB007 Software Engineering I
- Teacher's information