Lecturer(s)
|
-
Král Erik, Ing. Ph.D.
-
Perůtka Karel, Ing. Ph.D.
|
Course content
|
1. What are algorithm, program, programming language and integrated development environment. Common programming paradigms, declarative programming, imperative programming, functional programming, object-oriented programming. 2. Representing algorithm using a flowchart. 3. The compilation, build and run of program and basics of work with IDE. Input-output tools. 4. Basic programming components. Representing values, expressions and statements in the program. Values representation in memory. Basics objects and their operations. Object Lifetime. 5. Program Control flow and looping statements. 6. Array. Homogenous arrays, array copy, equality of arrays, assignments of array values. 7. Two and multidimensional arrays. 8. Stack, Queue, Dynamic array, Associative array from the point of the user. 9. Algorithm time complexity. Linear search with a sentinel, Binary search algorithm, Bubble Sort, Select Sort, Insert Sort. 10. Function, definition and usage. Recursive functions. 11. Quicksort sorting algorithm. 12. Memory management, automatic (on stack) memory allocation, static block, dynamic allocation (on the heap). Garbage collector. 13. How to find bugs, debugging, control flow visualisation. Exception categories and exception handling. 14. Documentation and software testing. 15. Common language platform libraries.
|
Learning activities and teaching methods
|
Lecturing, Exercises on PC, Individual work of students
- Home preparation for classes
- 20 hours per semester
- Participation in classes
- 42 hours per semester
- Preparation for course credit
- 20 hours per semester
- Term paper
- 26 hours per semester
|
learning outcomes |
---|
Knowledge |
---|
Definuje co je to překlad, sestavení a spuštění programu. |
Definuje co je to překlad, sestavení a spuštění programu. |
Popíše co je to proměnná, zásobník a halda. |
Popíše co je to proměnná, zásobník a halda. |
Vypíše syntaxi aritmetických a boleanovských výrazů, příkazů pro větvení programů a cyklů a funkcí. |
Vypíše syntaxi aritmetických a boleanovských výrazů, příkazů pro větvení programů a cyklů a funkcí. |
Zdůvodní vhodnost použití různých typů proměnných a to jak zabudovaných tak i uživatelsky definovaných jako je pole a struktura. |
Zdůvodní vhodnost použití různých typů proměnných a to jak zabudovaných tak i uživatelsky definovaných jako je pole a struktura. |
Vysvětlí výhody organizace kódu pomocí funkcí. |
Vysvětlí výhody organizace kódu pomocí funkcí. |
Defines what compiling, building and running a program is. |
Defines what compiling, building and running a program is. |
Describes what a variable, stack, and heap are. |
Describes what a variable, stack, and heap are. |
Lists the syntax of arithmetic and Boolean expressions, program branching statements, and loops and functions. |
Lists the syntax of arithmetic and Boolean expressions, program branching statements, and loops and functions. |
Justifies the appropriateness of using different types of variables, both built-in and user-defined, such as array and struct. |
Justifies the appropriateness of using different types of variables, both built-in and user-defined, such as array and struct. |
Explain the advantages of organizing code using functions. |
Explain the advantages of organizing code using functions. |
Skills |
---|
Analyzuje problém a navrhne jeho rešení pomocí počítačového programu. |
Analyzuje problém a navrhne jeho rešení pomocí počítačového programu. |
Použije vhodné konstrukce z hlediska organizace zdrojového kódu a efektivity programu. |
Použije vhodné konstrukce z hlediska organizace zdrojového kódu a efektivity programu. |
Vytvoří zdrojový kód programu. |
Vytvoří zdrojový kód programu. |
Přeloží, sestaví a spustí program s pomocí integrovaného vývojového prostředí. |
Přeloží, sestaví a spustí program s pomocí integrovaného vývojového prostředí. |
Identifikuje a opraví chyby v programu. |
Identifikuje a opraví chyby v programu. |
Analyzes the problem and proposes a solution using a computer program. |
Analyzes the problem and proposes a solution using a computer program. |
Uses appropriate constructs in terms of source code organization and program efficiency. |
Uses appropriate constructs in terms of source code organization and program efficiency. |
Creates the source code of a program. |
Creates the source code of a program. |
Compile, assemble and run the program using an integrated development environment. |
Compile, assemble and run the program using an integrated development environment. |
Identifies and corrects errors in the program. |
Identifies and corrects errors in the program. |
teaching methods |
---|
Knowledge |
---|
Individual work of students |
Lecturing |
Lecturing |
Individual work of students |
Exercises on PC |
Exercises on PC |
assessment methods |
---|
Written examination |
Written examination |
Analysis of the student's performance |
Analysis of the student's performance |
Recommended literature
|
-
Hunt, Andrew. Programátor pragmatik : jak se stát lepším programátorem a vytvářet kvalitní software. Vyd. 1. Brno : Computer Press, 2007. ISBN 978-80-251-1660-9.
-
KEOGH, J. DAVIDSON, K. Datové struktury bez předchozích znalostí. Praha : Computer Press, 2006. ISBN 80-251-0689-6.
-
Keogh, James Edward. OOP bez předchozích znalostí : průvodce pro samouky. Vyd. 1. Brno : Computer Press, 2006. ISBN 80-251-0973-9.
-
McConnell, S. Dokonalý kód. Brno: Computer press,, 2006.
-
Pšenčíková, Jana. Algoritmizace. Vyd. 1. Kralice na Hané : Computer Media, 2007. ISBN 978-80-86686-80-9.
|