Computer Science for Autonomous Systems

The Computer Science for Autonomous Systems MSc prepares students for the design and development of software for intelligent systems including, e.g. autonomous cars. Students will get up-to-date knowledge in one of the fastest growing and dominant technological trends of the future. The training offers students the opportunity to acquire valuable knowledge and competences in software technology, real-time systems, artificial intelligence, robotics and deep learning, data mining, computer image and signal processing, process control, computer graphics and vision. Electives include GIS systems, autonomous systems security issues and industrial mathematics. Students will be involved in the work of the research labs and can work on real industrial research together with professionals of leading companies interested in autonomous systems and autonomous driving.

The language of instruction is English.

Application information

Double degree opportunities:

For the students of the EIT Digital Master School, the specialization of Computer Science for Autonomous Driving as Exit Year is available at ELTE.

For Hungarian and international students the opportunity is open to transfer to EIT Digital Master School for second year and choose a leading European University for their Exit Year studies.

Photo: Zoltán Nemes

PROGRAM CONTENT

Obligatory:

Software Technology module

Software Technology

The course gives a broad overview of the processes and methodologies of software development and its execution. We cover all phases of development from requirements to maintenance and quality assurance with emphasis on architectural design.

Main topics: Software Lifecycle and Software Development Process, Software Development Models (from Waterfall to Agile), role of UX, DevOps tool-chain, ways of code verification, OOP, Modelling and Design, SOLID, UML and xtUML, Architectural Improvements, Creational, Structural, Behavioral and Concurrency Design Patterns, Architectural Patterns.

Software Testing

Principles of software testing, Project life-cycle and testing, Agile concepts. Test process life-cycle.

Test design techniques:

Black-box: Equivalence partitioning, Boundary value analysis, Decision tables, Cause-and-effect graphs, State machines, Use-case testing, etc.

White-box: Statement coverage, decision coverage, MC/DC, path testing.

Experience based: error guessing, exploratory testing, attack testing.

Defect-based testing.

Test documentation, test management.

Software Technology of Real-Time Systems module

Embedded and Real-Time Systems

Nowadays the usage of a real-time system is more and more frequently needed. Today all of the modern operating systems contain real-time kernel. We will overview the features of real-time systems, the scheduling types, RT signals and timers. We will examine its modern appearance in an operating and in an embedded system.

Human and Legal Aspects of Software Development module

Project Management

It describes the project management life cycle and its related processes as well as the project life cycle.

The course follows "The PMBOK® Guide" that contains the globally recognized standard and guide for the project management profession.

The project management standard will be presented as a formal document that describes established norms, methods, processes, and practices.

The course will provide an introduction to key concepts in the project management field.

The course will summarize the Process Groups and provides an overview of process interactions among the ten Knowledge Areas and five Process Groups.

The project management body of knowledge will be discussed, and then a detailed description will be provided on the information in the standard by describing the inputs and outputs as well as tools and techniques used in managing projects.

The standard for project management will be shown that depicts the processes, inputs, and outputs that are considered to be good practice on most projects most of the time.The course will define several key terms and the relationship among portfolio management, program management, project management and organizational project management.

Human Factors in Traffic Environment

The course focuses on interactions between the human, the environment and the vehicle.

Human Perception and Cognition.

Human-Machine interaction. Customization of vehicle for the user.

Legal Framework for Autonomous Driving

The subject focuses on the administrative law background of the development, testing and licensing of automated vehicles, regulation, human rights and data protection issues of autonomous vehicles, security and liability issues.

Artificial Intelligence module

Design and Analysis of Algorithms

Stable matching. Gale-Shapley algorithm. Divide and conquer algorithms. Mergesort. Counting inversions. Closest pair of points. Dynamic programming. Sequence alignment. Knapsack, subset sum and change-making problems. Greedy algorithms. Scheduling problems. Clustering. Approximation algorithms. Load balancing problem. Center selection problem. Randomized algorithms. Quicksort. Quickselect. Karger’s global minimum cut algorithm.

Artificial Intelligence in Processes and Automation

After this course, the students will (i) understand the connection between low level, i.e., network-based AI and high level, i.e., rule-based AI, (ii) be able to develop stochastic and deterministic models from data, (iii) understand control principles, and (iv) understand the principles of designing optimal autonomous systems that can learn with state-of-the-art learning algorithms matching or overcoming human performance in industrial environments. Novel AI-related software libraries will be introduced.

Machine Learning module

Data Mining in Smart Systems

Data processing, preparation (missing value imputation, noise handling and outlier detection, data transformation); clustering techniques (k-means, hierarchical, density-based); frequent pattern and association rule mining (Apriori, Eclat, FP-Growth); prediction models (linear and logistic regression, decision trees, SVM, Bayes models, kernels, matrix factorization); building model ensembles (ensembles, bagging, boosting); model evaluation (overfitting, bias-variance, cross-validation).

Applied Deep Learning

In this course practical problems are addressed with deep learning techniques. Architectures: auto-encoders, convolutional neural networks, recurrent neural networks, long short-term memory, residual networks, and highway networks. Image processing: image restoration and super-resolution, bounding boxes, objects, face, hand, body recognition. Speech processing: speaker identification, speaker de-identification, speech recognition and speech production. Motion and control: deep learning for motion via imitation, dynamic movement primitives. Deep methods for anomaly detection, optical flow, tracking, multi-modal tracking, information fusion and pattern completion.

Numerical Methods for Optimization and Control Theory module

Numerical Methods for Optimization

The goal of this course is to present a number of commonly-used algorithms and how they can be used to solve practical problems related to computer engineering. Numerical solution of nonlinear equations, unconstrained minimization algorithms, linear/nonlinear parameter estimation methods. Newton method, Quasi-Newton methods, method of continuation, gradient, conjugate gradient method, Gauss-Newton method.

System and Control Theory

Dynamic system models, linearity, time-invariance. State-space models. Continuous- and discrete-time models. SISO/MIMO systems. Stability, observability, controllability of LTI systems, canonical forms. Transfer function, poles and zeros of SISO/MIMO systems. Minimal and balanced state-space realization. System norms. Interconnected systems and feedback: stability, and performance. Stabilization: state feedback, optimal LQ control. Observers, model-based controllers. Robustness, robust performance and structured singular value function. H2 and H∞ control.

Signal and Image Processing module

Image and Signal Processing

Signals and systems. Fourier-, Laplace-transform. AD conversion: sampling, quantization. DA conversion, Shannon’s formulae. Windowing. Analog and discrete filters, Signal processing in time domain, in frequency domain. Basic concepts and methods of image processing. Edge detection, segmentation. Image reconstruction. Noise reduction.

Image and Video Processing

Image filtering, edge and corner detection. Scale-space and affine-invariant image features. Texture descriptors. Image thresholding and segmentation. Matching and correspondence. Hough Transform, RANSAC, robust procedures. Video processing. Optical flow. Motion detection, tracking and analysis.

Computer Graphics and Vision module

Computer Graphics

The basic principles and techniques for computer graphics on modern hardware, with special focus on real time applications.

General principles.  The nature of light, electromagnetic spectrum. Reflection and refraction.

Optics. Image formation, first-order optics. The perspective camera. Simplified cameras: weak-perspective and orthographic ones. Omni-directional cameras. Non-perspective distortion of pin-hole cameras.

Elementary geometry and geometric modelling: Coordinate systems, transformations, basic curve, surface, and volume representations.

Image synthesis techniques: Raycasting/raytracing (algebraic and numerical techniques),  incremental image synthesis, volume rendering, geometric queries and algorithms, spatial data structures.

Modern GPU architectures. CPU versus GPU. Stream processing. Evolution of CPU and GPU architectures. Introduction to GPGPU (General Purpose Computing on GPU). Modern OpenGL. Incremental image synthesis, real time raycasting and raytracing for various visualization tasks. Design patterns for real-time software.

3D Computer Vision

Camera models. Feature detection in images. Pattern matching. Camera calibration. Stereo vision. Monocular vision. Simultaneous localization and mapping. Case studies in several application fields of computer vision.

Computer Sensing module

Introduction to Vehicles and Sensors

Principles of autonomous vehicles and self-driving cars. Hardware and software architectures. Sensors, interconnect networks, actuators, processing elements. Radars, LIDAR’s, cameras, ultrasonic, GPS, and other sensors. CAN, LIN, MOST, FlexRay vehicle interconnect networks and architectures. Intelligent transportation systems.

3D Sensing and Sensor Fusion

Operation principles of 3D sensors. Active and passive 3D sensing for autonomous vehicles. Cameras, video cameras, depth cameras, LIDAR sensors, radars, sonars. Comparison of sensors, application areas, advantages and limitations. Sensor fusion on data and feature level and in state space. Camera LiDAR and camera-depth camera fusion. Sensor fusion and semantic segmentation.

Electives

Elective courses, worth of 10 credit points, can be freely chosen from the complete set of courses offered by the University. We encourage the choice of the following elective courses suitable specifically for the autonomous systems curriculum.

Programming

This course establishes the necessary entry-level programming skills for the curriculum. Students with a BSc in Computer Science or Computer Engineering can acquire exemption.

Program structure. Arithmetic and expression evaluation. Control structures in imperative and functional programming. Exception handling. Parameter passing. Pointers and memory management. Abstract data types. Object-oriented programming and inheritance. Generic programming. Concurrency. Comments and documentation. Aggregation-based and linked implementation of data structures. Code quality. Testing and debugging. Coding style and best coding practices. Refactoring.

Foundations of Industrial Mathematics

Basic probability theory, basics of mathematical statistics. Thorough understanding of data analysis using statistical software: analysis of static and dynamic data, plotting, programming in statistical software packages. Introduction to mathematical and probabilistic modelling through examples using mathematical software: discrete models and networks in modelling complex systems, Bayesian analysis, Kalman filters. Practical aspects of using mathematical tools in an industrial environment.

Spatial Information Systems

•          gravity field and shape of the Earth

•          spatial reference systems

•          vector-based data model, data capture

•          topology of spatial systems

•          spatial database management systems

•          tools for access and analysis of spatial data

•          tools for visualization of graphics (vector or raster maps)

•          file formats, import/export

•          object localization and control features, vehicle tracking

•          using map providers 

•          spatial functions and queries

•          raster-based data model, data capture

•          pixel-based raster processing

•          digital filtering, clustering, segment-based raster processing

•          3D data model: TIN and DEM models

Security of Autonomous Systems

Introduction to security analysis methods, including threat modelling and attack modelling both for cyber attacks, e.g. attacks on software or communication and for physical (or field) attacks, e.g. manipulation of sensor data, GPS signals, etc. in autonomous systems. Cryptographic primitives, mathematical background and scope. Use of appropriate cryptographic tools in protocols. Overview of most important protocols used in networking, especially in the automotive industry. Overview of existing standards and recommendations on safety and security of autonomous driving systems.

Cognitive Robotic Systems

After this course, students will be able to connect everyday cognitive principles to the mathematical models. They can design cognitive robotic systems from high level descriptions using simple sensors or deep networks. They can formulate the corresponding risks and cost, understand the need for workflow management under time constraints. They will be able to connect cognitive systems to data collection for developing Big Data and recommendations based on the collected data.

Distributed Systems

Architectures for distributed systems. Synchronous and asynchronous systems. Communication and coordination. Time. Distributed algorithms. Service-oriented architecture. Middleware. Multi-tier applications. Cloud computing. Formal description and modeling of distributed systems. Safety and liveness properties. Fault tolerance.

Application information:

As Hungarian student: www.felvi.hu

As International student: https://www.elte.hu/en/computer-science-msc

As EIT Master School student: https://masterschool.eitdigital.eu/application/

Information: Zsolt Borsi, program coordinator: coordinator@csmsc.elte.hu 

The curriculum is coming soon…