Notice: Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/kos.fs.cvut.cz/web/lib_locale.php on line 9

Notice: Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/kos.fs.cvut.cz/web/lib_locale.php on line 11
KOS.FS - fakultní nadstavba
  česky  čs
english  en
Algorithms for Engineering Informatics (E371014)
Katedra:ústav přístrojové a řídící techniky (12110)
Zkratka:Schválen:24.02.2009
Platí do: ??Rozsah:2P+2C
Semestr:L,ZKredity:5
Zakončení:Z,ZKJazyk výuky:EN
Anotace
Basic introduction into Java (tasks can be solved in any language; Pascal/Delphi course alternatively for who is interested). Algorithms with numbers - divide-and-conquer algorithms, recurrence relations, the fast Fourier transform. Big-O notation. Sorting algorithms - bubble sort, insert sort, selection sort, heap sort, quick sort, mergesort. Graphs - depth-first search in undirected graph, depth-first search in directed graphs, strongly connected components. Paths in graphs - distances, breadth-first search, lengths on edges, Dijkstra's algorithm, priority queue implementations, shortest paths in the presence of negative edges, shortest paths in dags. Greedy algorithms - minimum spanning trees, Huffman encoding.


Vyučující
Ing. Vladimír Hlaváč Ph.D.
Letní 2024/2025
Ing. Vladimír Hlaváč Ph.D.
Letní 2023/2024
Ing. Vladimír Hlaváč Ph.D.
Letní 2022/2023
Osnova
• Introduction to Java programming (all examples in Java).
• Java: arrays, strings, built-in functions, input from console, the “for” loop.
• Java: procedures and functions. Interpolation, iteration, recursion. Factorial. Loops, input from file.
• Java: classes, instances of classes (objects). Static and dynamic variables. Constructor.
• Sorting algorithms: bubble sort, combo sort, insertion sort, selection sort.
• Divide-and-conquer algorithms: quick sort, heap sort, merge sort. Complexity of algorithms. Space complexity. Big-O notation.
• Counting sort, bucket sort. Insertion sort and quicksort variants and stability.
• Mathematical algorithms: multiplication of two matrices, greatest common divisor, least common multiple (LCM), Euclid's algorithm. Factorization.
• Divide-and-conquer algorithms, recurrence relations, and the fast Fourier transform.
• Data structures: linked lists (stack, circular queue), trees (binary, AVL, red-black; B-trees).
• Graphs and graph algorithms: terminology, notation, theory, breadth-first search (BFS), depth-first search (DFS), minimum spanning tree.
• Paths in graphs: distances, breadth-first search, lengths on edges, Dijkstra's algorithm, priority queue implementations, shortest paths in the presence of negative edges, shortest paths in DAGs (directed acyclic graphs). Greedy algorithms: minimum spanning trees, Huffman encoding, Horn formulas.
Osnova cvičení
Students will try to write and debug simple programs based on the content from the previous lecture. Solutions for at least 9 out of 11 tasks must be uploaded to the Moodle server within three weeks of the proposition. Programs can be written in any language, but for the final assessment, the student must be able to show any of them running. This assumes that the programming environment used for the task is installed on their own notebook or accessible through a terminal service, if a language other than Java is used.
Literatura
Study materials including lecture slides and preparations are provided by lecturer.
Požadavky
At the beginning of the course, students will receive three tasks to solve in any programming language.
Each task will represent one algorithm introduced later in the lectures.
For the exam, the student must show these programs running, explain how they work (at the level of individual words), explain why they chose this method, and be able to make modifications to the code on demand (oral part of the exam)
Klíčová slova
algorithms, searching, sorting, linked list, tree, recurrence, graphs
data online/KOS/FS :: [Helpdesk] (hlášení problémů) :: [Obnovit] [Tisk] [Tisk na šířku] © 2011-2022 [CPS] v3.8 (master/ade9e2c3/2024-10-11/07:15)