Programming and Algorithmics 2
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BIE-PA2.21 | Z,ZK | 7 | 2P+1R+2C | anglicky |
- Garant předmětu:
- Jan Trávníček
- Přednášející:
- Jan Trávníček
- Cvičící:
- Tomáš Dejmek, Radek Hušek, František Kovář, Jan Trávníček, Ladislav Vagner, Josef Vogel
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
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).
- Požadavky:
-
Fundamentals of algorithmics and C.
- Osnova přednášek:
-
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.
- Osnova cvičení:
-
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
- Cíle studia:
-
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.
- Studijní materiály:
-
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, ISBN978-80-271-0502-1
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PA2/
- Další informace:
- https://courses.fit.cvut.cz/BIE-PA2/
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bachelor Specialization Computer Engineering, 2021 (povinný předmět programu)
- Bachelor Specialization, Information Security, 2021 (povinný předmět programu)
- Bachelor Specialization, Software Engineering, 2021 (povinný předmět programu)
- Bachelor Specialization, Computer Science, 2021 (povinný předmět programu)
- Bachelor Specialization, Computer Networks and Internet, 2021 (povinný předmět programu)
- Bachelor Specialization Computer Systems and Virtualization, 2021 (povinný předmět programu)
- Bachelor Specialization, Computer Engineering, Version 2024 (povinný předmět programu)