Programming and Algorithmics 1
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-PA1.21 | Z,ZK | 7 | 2P+2R+2C | Czech |
- Course guarantor:
- Jan Trávníček
- Lecturer:
- Miroslav Balík, Radek Hušek, Jan Trávníček, Ladislav Vagner, Josef Vogel
- Tutor:
- Miroslav Balík, Daniel Breiner, Vít Břichňáč, Tomáš Dejmek, Jarmila Fialová, Radek Hušek, Roman Jelínek, Jiří Kašpar, František Kovář, Jaroslav Kříž, Petr Laštovička, Jan Matoušek, Tomáš Pecka, Sebastian Prokop, Róbert Selvek, Ivan Šimeček, Ondřej Štorc, Jan Šuráň, Jakub Švec, Jan Trávníček, Oliver Tušla, Ladislav Vagner, Josef Vogel
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
Students gain the ability to formulate algorithms for solving basic problems and write them in the C language. They understand data types (simple, structured, pointers), expressions, statements, functions, concept of recursion. They learn to analyse simple cases of algorithm complexity. They know fundamental algorithms for searching, sorting, and manipulating with linked lists and trees.
- Requirements:
-
None.
- Syllabus of lectures:
-
1. Algorithms, Programs and Basic support of development.
2. Variables, Input and Output in C language.
3. Floating point arithmetic. Expressions in C language.
4. Flow control statements in C language.
5. Functions in C language.
6. Arrays and strings in C language.
7. Structures and Pointers in C language.
8. Pointers and dynamic memory allocation in C language.
9. Complexity, Searching and Quadratic sorting.
10. Linked structures and Trees.
11. Recursion, MergeSort, QuickSort introduction.
12. Working with files, Modular programming in C language.
13. Abstract data types (boolean, complex numbers, queue, stack).
- Syllabus of tutorials:
-
1. Numeral systems, conversions. Bit, byte, word, double word. Development environments.
2. Integer types, variables, assignments, I/O. Displaying integers, two's complement code.
3. Real data types. Displaying floating-point numbers. Expressions.
4. Conditional statements.
5. Cycles, processing sequences.
6. Functions.
7. Arrays and strings.
8. Pointers and dynamic variables.
9. Structures.
10. Complexity of algorithms, examples of algorithms with various complexities.
11. Recursive functions.
12. Linked lists.
13. Reserved.
- Study Objective:
-
The module provides fundamental algorithmics and procedural programming skills that are crucial for further studying.
- 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. Kochan S.G. : Programming in C (4th Edition). Addison-Wesley, 2014. ISBN 978-0321776419.
5. Virius M : Jazyky C a C++: kompletní průvodce, 2. vydání, Grada, 2011. ISBN 978-80-247-3917-5.
- Note:
- Further information:
- https://courses.fit.cvut.cz/courses/BI-PA1/
- Time-table for winter 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 - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- 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)