Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

Algorithms for Engineering Informatics

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
E371014 Z,ZK 5 2P+2C English
Garant předmětu:
Vladimír Hlaváč
Lecturer:
Vladimír Hlaváč
Tutor:
Vladimír Hlaváč
Supervisor:
Department of Instrumentation and Control Engineering
Synopsis:

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.

Requirements:

The course strongly assumes prior knowledge of programming.

For the Exams: knowledge prescribed in lectures. The exam has a practical and oral parts. The practical part of the exam - write and debug a simple program on given task.

For Assessment, the student receies three tasks to program.

Syllabus of lectures:

Introduction into Java programming (all examples in Java).

Theory of algorithms. Complexity of algorithms. Big-O notation.

Mathematical algorithms - multiplication of two matrices, the greatest common divisor, the least common multiple ( LCM ) , Euclid's algorithm.

Factorial, recursion, factorization.

Divide-and-conquer algorithms, recurrence relations, the fast Fourier transform.

Sorting algorithms - bubble sort, combo sort, insert sort, selection sort, heap sort, quick sort, mergesort. Counting sort.

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.

Cryptography - historical ciphers, search primes, factorization, symmetric ciphers.

Syllabus of tutorials:

Introduction into running applications in 308 laboratory, students' accounts.

Simple application. Constants. Simple types, structured types incl. arrays, records, sets, files. Variables. Basics of programming language.

Sorting. Handling events and exceptions.

Printing from Java applications, I/O operations.

Dynamic data structures: stack, queue, linked list, tree.

Binary tree, AVL tree, B-tree.

Graph algorithms.

Each student will be submitted 3 practical excercises to solve, in the range of lectures. Their solutions will create part of the final classification.

Study Objective:

This subject introduces advanced programming skills and algorithms.

Teaching is focused more practically, on the application of algorithms in solving engineering problems. Examples are presented in the language Java.

Study materials:

Study materials including lecture slides and preparations are provided by lecturer.

Note:
Further information:
???? katedrální stránka předmětu http://www.compileonline.com
Time-table for winter semester 2023/2024:
Time-table is not available yet
Time-table for summer semester 2023/2024:
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
roomT4:C1-308
Hlaváč V.
14:15–15:45
(lecture parallel1)
Dejvice
Laboratoř 12110.3 - 308
roomT4:C1-308
Hlaváč V.
16:00–17:30
(lecture parallel1
parallel nr.1)

Dejvice
Laboratoř 12110.3 - 308
The course is a part of the following study plans:
Data valid to 2024-03-27
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet1066206.html