Applications 2024-02-15 - 2024-08-09
COURSE DESCRIPTION
Every sector of the global economy relies on software. This makes software one of the principal targets for state-sponsored groups, military, criminals and other type of adversaries. Such attacks try to exploit insecure code, that is seemingly innocent bugs, which allow the adversaries to obtain unauthorized access to information or to take full control of compromised systems. The purpose of this course is to train software professionals in understanding in depth how insecure code can be exploited. In addition, it will equip them with knowledge in how to defend against this type attacks.
The course begins by analyzing technical, psychological, and real-world factors that lead to production of vulnerable code. This is important knowledge for both developers and managers as it allows them to take actions that mitigate the impact of these factors, both when programming is performed but also during project management.
Software exploits use specially crafted input data to applications and services to leverage logic flaws in the code that processes the input. Typically, the exploits overwrite specific structures in the program memory space, which allows them to bypass access control mechanisms and/or execute code provided as part of the input data. Therefore, a large part of the course is dedicated to understanding how exploits are constructed, essentially learning attackers’ “modus operandi”.
This course provides an understanding of automating software testing using program analysis with the goal of intelligently and algorithmically creating tests. The course covers search-based test generation, combinatorial and random testing while highlighting the challenges associated with the use of automatic test generation. You will learn: Understand algorithmic test generation techniques and their use in developer testing and continuous integration. Understand how to automatically generate test cases with assertions. Have a working knowledge and experience in static and dynamic generation of tests. Have an overview knowledge in search-based testing and the use of machine learning for test generation.
This course deals with model-based testing, a class of technologies shown to be effective and efficient in assessing the quality and correctness of large software systems. Throughout the course the participants will learn how to design and use model-based testing tools, how to create realistic models and how to use these models to automate the testing process in their organisation.
The aim of this course is to provide participants with the principles behind model-driven development of software systems and the application of such a methodology in practice. Modelling is an effective solution to reduce problem complexity and, as a consequence, to enhance time-to-market and properties of the final product.
The purpose is to give the students an overview of issues and methods for development and assurance of safety-critical software, including details of selected technologies, methods and tools. The course includes four modules: Introduction to functional safety; knowledge that give increased understanding of the relationship between Embedded systems / safety-critical system / accidents / complexity / development models (development lifecycle models) / certification / “the safety case”. Analysis and modelling methods; review of analysis and modelling techniques for the development of safety-critical systems. Verification and validation of safety critical software, methods and activities to perform verification and validation. Architectures for safety critical systems. Safety as a design constraint.
The course has the objective to provide proficiency in cybersecurity analysis and design in industrial settings, with a special focus on smart factories and Industry 4.0. To that aim, you will learn about advanced cybersecurity concepts, methodologies and tools. You will also be able to apply your knowledge to case-studies of industrial relevance.
Explore the different tools and software to design, test, and prototype custom robot parts and robust robot behaviour. In recent years, industries around the world have been getting creative when it comes to incorporating robotics into their workflows. This three-week course offers a fascinating introduction to software and tools currently used in robotics. You’ll build basic knowledge of robotics tools and learn how they can be adapted for different industries. Familiarise yourself with Ubuntu operating system and Gazebo framework Gain hands-on experience using 3D robotics models in simulation Learn from the experts at the cutting edge of control engineering, robotics, and AI This course is designed for anyone interested in using robotic solutions in their role and who wants to learn the basics of robotics frameworks. The course will be given in English.