Code: BIE-PA2.21 Programming and Algorithmics 2
Lecturer: Ing. Jan Trávníček Ph.D. Weekly load: 2P+1R+2C Completion: A, EX
Department: 18101 Credits: 7 Semester: S
Description:
Students know the instruments of object-oriented programming and are able to use them for specifying and implementing abstract data types (stack, queue, enlargeable array, list, set, table). They learn these skills using the C++ programming language and are introduced to all C++ features needed in object-oriented programming (e.g., template programming, copying/moving of objects, operator overloading, inheritance, polymorphism).
Contents:
1. From C to C++, non-object-oriented extensions.
2. Programming styles, introduction to object-oriented programming.
3. Classes and objects in the C++ language.
4. Overloaded operators in C++.
5. Copying, copy constructor in C++.
6. Selected STL components.
7. Inheritance, polymorphism in C++.
8. Abstract classes in C++.
9. Class and function templates in C++.
10. Exceptions and exception handling in C++. Abstract data
types stack and queue in C++.
11. Abstract data types enlargeable array, list, set, and table in C++.
12. Associative data structures.
13. C++11 extensions.
Seminar contents:
1. Introduction to C++
2. OOP basics
3. Visibility, constructor, destructor, modules
4. Operator overloading
5. Shallow vs. deep copy
6. STL containers
7. Inheritance
8. Abstract methods
9. Fuction a class template
10. Exceptions and C++11
11. C++11
12. Practice (extra tasks)
12. Reserve
Recommended literature:
1.Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. : Introduction to Algorithms (3rd Edition). MIT Press, 2016. ISBN 978-0262033848.
2. Brassard G., Bratley P. : Fundamentals of Algorithmics (3rd Edition). Pearson, 2015. ISBN 978-0133350685.
3. Sedgewick R. : Algorithms (4th Edition). Addison Wesley, 2011. ISBN 978-0321573513.
4. Sedgewick R. : Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching (3rd Edition). Addison-Wesley, 1998. ISBN 978-0201350883.
Keywords:
FIT, programming, C++, algorithms

Abbreviations used:

Semester:

Mode of completion of the course:

Weekly load (hours per week):