Bachelor theses
Automata Library -- Data Compression
Author
Jan Parma
Year
2017
Type
Bachelor thesis
Supervisor
Ing. Tomáš Pecka
Reviewers
Ing. Jan Trávníček, Ph.D.
Department
Summary
This bachelor's thesis deals with the implementation of compression algorithms LZ77, LZ78 and implementation of Huffman coding. It also analyzes the current testing solution for an existing Automata Library, which is performed using shell scripts. At the same time, testing was added to newly created algorithms.
Compression algorithms are written in C++, as the current version of the library is written in the same programming language, and testing is newly solved using the Python language.
The main result of the thesis is the extension of the library with the already mentioned compression algorithms and methods. Also the initial design and implementation of a unified test suite for all parts of the Automata Library.
ALT Algorithm Library - web interface
Author
Michael Vrána
Year
2020
Type
Bachelor thesis
Supervisor
Ing. Tomáš Pecka
Reviewers
Ing. Jan Trávníček, Ph.D.
Department
Summary
This thesis deals with the design and implementation of web GUI for the Algorithms Library Toolkit. This GUI in the form of a web application shows individual algorithms as boxes, the outputs of which can be further piped to other algorithms. User can specify inputs of algorithms and then also evaluate them. This web application integrates an already existing React application Statemaker which simplifies creation and visualization of finite automata. For ALT to be accessible to the web application a web API was created.
Dictionary-based compression methods
Author
Matěj Javorka
Year
2023
Type
Bachelor thesis
Supervisor
Ing. Tomáš Pecka
Department
Summary
The subject of this bachelor thesis is the analysis, design and implementation of dictionary compression methods LZ77, LZ78, LZSS and LZW.
The literature research describes the basic concepts, principles and methods of data compression. It then discusses dictionary-based data compression methods in greater detail, specifically analysis of the LZ77, LZ78, LZSS, and LZW algorithms, along with a description of the appropriate data structures used with these algorithms.
The practical part of the thesis deals with the design and implementation of these algorithms in the C++ programming language. The implementation makes it possible to choose between compressed and learning output, i.e. whether the compression output should be compressed unreadable binary data or human-readable textual data that represent the run of the algorithm and thus facilitate its understanding. Furthermore, tests of these algorithms are designed and implemented, and suitable data corpora are selected on which the compression time, decompression time and compression ratio of the implemented algorithms are measured. The results of the detailed measurements are presented in the appendix of this paper.
The main output of the thesis is the implementation of compression algorithms in the form of console applications, which can be used for real data compression as well as an auxiliary tool for teaching compression algorithms in courses dealing with data compression, such as the master's course NI-KOD at FIT CTU.
Open data of Prague integrated transport with history
Author
Alexander Žibrita
Year
2023
Type
Bachelor thesis
Supervisor
Ing. Tomáš Pecka
Department
Summary
This bachelor thesis deals with a development of software for processing and storing open data of Prague Integrated Transport and provision of data statistical overviews. The analysis addresses the methods of providing public transport data and some applications built on top of them. The practical section focuses on the design and implementation of the application using appropriate technologies and is based on a microservice architecture. The key output is a web page providing basic reports. The thesis concludes by naming the possibilities for further extension.
Compiler frontend for a subset of C++ programming language
Author
Daniel Král
Year
2024
Type
Bachelor thesis
Supervisor
Ing. Tomáš Pecka
Reviewers
Ing. Štěpán Plachý
Department
Summary
Compilers for programming languages are an essential part of modern software development. This thesis deals with the design of the frontend of a compiler for an (almost) subset of C++ called C+-. First, the scope of C+- is specified. Then the use of ANTLR4 for lexical and syntactic analysis and the creation of an abstract syntactic tree is described. This is followed by semantic analysis and generation of the LLVM IR intermediate code using LLVM C++ API. The implementation of the compiler is tested with a set of
sample codes.