● Avalible only for Erasmus+ students
× Lab exercises in English
⑤ In case of more than 5 exchange students the lectures will be held in English if agreement with Slovenian students is achieved
* Not available for Exchange students
Phone: +386 1 479 81 19
The Computational Complexity and Heuristic Programming course first presents theoretical knowledge about the algorithmic complexity, teaches students to analyze programs. Student will learn that some of practically interesting problems are too difficult for today's computers.
The aim of the course is to offer practical knowledge about algorithm analysis and present standard and novel heuristic methods, so that a student facing a new difficult problem is able to decide which approach to use and can solve it using one of the optimization libraries.
Practical part is in the form of programming assignments, solving problems, and web quizzes. Assistant is available for consultations.
We instruct students how computer-aided design tools are used to both simulate the VHDL or Verilog design and to synthesize the design to actual hardware. Specific behaviour of HDL tools is emphasized. We present the design of digital circuit using optimal approaches. As part of the course, students develop familiarity and confidence with designing, building and testing digital circuits, including the use of CAD tools, develop team-building skills and enhance technical knowledge through both written assignments and design projects.
In the Intelligent Systems course, students shall learn some of the most useful techniques. A robot or an agent has to reason about an unknown environment. It has to search through different possibilities. It has to analyse data obtained from different sensors. It has to learn from its successes and failures. Techniques which enable such intelligent behaviour are often based on the ideas that stem from nature, such as neural networks and evolutionary learning, but use also the discoveries from statistics, modelling, decision theory, natural language processing, and cognitive modelling. The focus of the course is to prepare students for practical use of theoretical knowledge and application of learned techniques in practical scientific and business problems.
This course will cover in depth the mathematics and basic techniques of computer vision which are widely used in a broad spectrum of modern applications. If you have ever wondered what kind of methods devices like Google glasses, Robotic vehicles, Panorama stitching, Photo editing software, etc., use, this course will address that curiosity and more. At the end of this course, the student is expected to have a grasp in the following topics: Basic image processing techniques, Image derivatives and edges, Model fitting, Local descriptors, Stereo vision, Subspace methods for recognition, Object detection, Object recognition and Basics of motion.
Multimedia systems are an indispensable part of modern information technologies. Students will in the context of this course gain the knowledge and skills necessary for the use and development of multimedia systems. Particular attention will be paid to the basics of manipulation, record, degradation and query multimedia databases with an emphasis on static images, animations and videos. We will discuss the basic techniques and methodology necessary to produce a system for augmented reality using an existing interactive multimedia system.
The statement "Let’s buy a four-core processor to carry out the work four times faster" is ridiculous and misleading. This is common knowledge toanyone who understands how to build parallel systems, integrate cores, processors, and computers in a working system and program a system in such a way that the programs perform in a more efficient way. To make you one of them, during this course we will familiarize you with multi-threaded programming, the programming of general purpose graphics processing units with the Open CL library, with MPI standard for programming distributed system, with grid computing, and cloud computing.
Homework assignments for the course are required and are being assessed. Every week students get a short assignment from the material presented during lectures. To get a positive grade from the homework assignments you need to successfully complete at least 80% of short assignments. Short assignments represent one-third of the final grade. Second-third is obtained from parallelization of more comprehensive algorithm on two different parallel platforms. The last third of the grade is obtained on the oral exam.
Basics about machine and assembly languages, content and organization of object files, assembler, linker, loader, static and dynamic linking, macro processors, system calls and interrupts, input/output implementation and file system tools, memory management, debugging, linux kernel, virtual machines loading, linking and running in java virtual machine.
The course will cover recent research on the structure and analysis of such large social and information networks and on models and algorithms that abstract their basic properties. Class will explore how to practically analyze large scale network data and how to reason about it through models for network structure and evolution. This course is based on the course CS224W offered by Stanford University. The course starts on September 22nd and lasts for ten weeks (not including the breaks). We will precisely follow the CS224W schedule, material, coursework, grading policy etc.
The course describes the structure and techniques of the modern compilers for translating programming languages into executable code. Lectures follow the phases of the modern compilers: lexical analysis, syntax analysis, abstract syntax trees, semantic analysis, activation records, intermediate code, basic blocks, instruction selection, liveness analysis, and register allocation.
The course is very practically oriented with the emphasis on the hands-on experience. The solutions will be implemented and integrated on real robotic platforms using the Robot Operating System, ROS. We will work with mobile robots, which we built from the robot vacuum cleaner iRobot Roomba, the RGBD camera Kinect and other electronic parts. The robots will have to autonomously solve complex tasks, such as the delivery task described above. And of course, to make the development of such robots even more interesting and challenging, the robots developed by the groups of students will compete between themselves in a real robot competition. Let the best robot win!
The aim of the Mathematical modeling course is to build on the basic knowledge and understanding of the concepts of mathematical analysis and linear algebra to advanced concepts, demonstrate their use in modeling in computer science, mathematics and other sciences and develop the basic methods for calculating the resulting models.
The course will include topics in platform based development recommended in the ACM curriculum for CS. The topics will continually adapt to contemporary trends, thus the course is not constrained to a specific platform. Practical part of the course consists of seminar work and consultations (tutorial). Students build the project using sprints as specified by Scrum software engineering methodology.