Course detail

Theoretical Informatics

FEKT-LTINAcad. year: 2018/2019

Object oriented design. Abstract datat types, theoretical models, directed and undirected graphs, graph representation methods. Deterministic and nondeterministic automata. Data structures and objects. Spanning tree, shortest paths in graphs, Parallel and sequential algorithms. Distributed algorithms. Optimization, genetic algorithms.

Language of instruction

Czech

Number of ECTS credits

6

Mode of study

Not applicable.

Learning outcomes of the course unit

Students have skills of design and implementation of various forms of abstract data types and its application to solve specific problems: linear, tree and graph data structures, search in the data structures, genetic algorithms.

Prerequisites

The subject knowledge on the Bachelor degree level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Techning methods include lectures, computer laboratories and practical laboratories. Course is taking advantage of e-learning (Moodle) system. Students have to write a single project/assignment during the course.

Assesment methods and criteria linked to learning outcomes

final examination

Course curriculum

1. Information representation, objective oriented design
2. Information representation, introduction to data structures
3. Complexity, computability and automata theory
4. Information representation, linear data structures and sorting
5. Information representation - tree data structures
6. Information representation - graph theory
7. Information acccess - spanning tree
8. Information acccess - graph search
9. Information acccess - data mining
10. Information acccess - decision trees
11. Information acccess - genetic algorithms
12. Information acccess - genetic algorithms II.
13. Multithreaded computations, parallelization
14. Final exam

Work placements

Not applicable.

Aims

To provide theoretical knowledge of information gathering, processing and sharing in communication systems, and of their structure, behaviour and mutual interaction.

Specification of controlled education, way of implementation and compensation for absences

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Aktuální studijní materiály jsou k dispozici v elearningu na adrese / Study materials are available at : https://www.vutbr.cz/elearning/ (CS)
Burget, R., Teoretická Informatika, VUT v Brně, ISBN: 978-80-214-4897-1, 2013 (CS)
Burget, R., Teoretická informatika - cvičení, VUT v Brně, 2014 (CS)

Recommended reading

Battista, G., Tollis, I.: Graph Drawing: Algorithms for the Visualization of Graphs. Prentice Hall, 1998. (EN)
Goodrich, T.M., Tamassia, R.: Data Structures and Algorithms in Java. John Wiley & Sons, 2000. (EN)
James Edward Keogh, Ken Davidson, Datové struktury bez předchozích znalostí, Computer Press, 2006 - Počet stran: 223 (CS)

Classification of course in study plans

  • Programme EEKR-ML Master's

    branch ML-TIT , 1. year of study, winter semester, compulsory

  • Programme EEKR-ML1 Master's

    branch ML1-TIT , 1. year of study, winter semester, compulsory

  • Programme EEKR-CZV lifelong learning

    branch ET-CZV , 1. year of study, winter semester, compulsory

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

Introduction to theoretical informatics.
Fundamentals of graph theory.
Deterministic and nondeterministic algorithms.
Data structures and objects.
Algorithm theory.
Fundamentals of queue theory.
Distributed algorithm theory and calculations.
Stochastic processes.
Optimatization and genetic algorithms.
Visualization of information.
Searching for information.
Data securing theory.
Information compression theory.

Exercise in computer lab

39 hours, compulsory

Teacher / Lecturer

Syllabus

Introduction to JAVA programming.
Objects and classes.
Interface and packages.
Data structures and operators.
Generation of classes and applications.
Generation and treatment of exceptions.
Generation of applet.
Graphics and animation.
Interactivity and event processing.
Threads and multithreading.
Network programming.
JAVA programming tools.
Review exercise and credit pass.