Programming and Algorithmics 2
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-PA2.21 | Z,ZK | 7 | 2P+1R+2C | Czech |
- Course guarantor:
- Jan Trávníček
- Lecturer:
- Radek Hušek, Jan Trávníček, Josef Vogel
- Tutor:
- Tomáš Dejmek, Jarmila Fialová, Radek Hušek, Roman Jelínek, Barbora Kolomazníková, František Kovář, Jaroslav Kříž, Petr Laštovička, Jan Matoušek, Petr Pauš, Tomáš Pecka, Matyáš Rak, Petr Šťastný, Ondřej Štorc, Jan Šuráň, Jan Trávníček, Ladislav Vagner, Josef Vogel
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
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).
- Requirements:
-
Fundamentals of algorithmics and C.
- Syllabus of lectures:
-
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.
- Syllabus of tutorials:
-
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
- Study Objective:
-
The aim of the course is to teach students to use the means of object-oriented programming and use them in the specification and implementation of abstract data types with emphasis on implementation using link structures. The course is a compulsory subject of the program, which is followed by a number of other courses.
- Study materials:
-
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.
5. Virius M. : Programování v C++ - od základů k profesionálnímu použití. Grada, 2018. ISBN 978-80-271-0502-1.
- Note:
- Further information:
- https://courses.fit.cvut.cz/BI-PA2/
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - The course is a part of the following study plans:
-
- Bachelor Specialization Information Security, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Management Informatics, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Computer Graphics, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Computer Engineering, in Czech, 2021 (compulsory course in the program)
- Bachelor program, unspecified specialization, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Web Engineering, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Artificial Intelligence, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Computer Science, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Software Engineering, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2021 (compulsory course in the program)
- Bachelor Specialization Information Security, in Czech, 2024 (compulsory course in the program)
- Bachelor program, unspecified specialization, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Management Informatics, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Computer Graphics, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Software Engineering, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Web Engineering, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Computer Engineering, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Artificial Intelligence, in Czech, 2024 (compulsory course in the program)
- Bachelor Specialization Computer Science, in Czech, 20214 (compulsory course in the program)
- Bc. specialization Computer Graphics with omitting BI-SVZ (compulsory course in the program)