COURSE DESCRIPTION
The information and communication technology (ICT) sector is responsible for approx. 1.8-2.8% of the global greenhouse gas (GHG) emissions in 2020, and software is both part of the problems and the solutions. Traditional software engineering principles and techniques do not consider the climate, environment, and sustainability aspects in building and using software for any purpose. We, software engineers, developers, researchers, climate scientists, and various other related stakeholders, need to think about how we can reduce the carbon footprint due to building and using software-intensive systems.
Green and sustainable software engineering is an emerging concept that can help reduce the carbon footprint related to software. In this introductory course, we will introduce the concept of green and sustainable software engineering and the engineering process to build green and sustainable software.
Topics
You will learn
By the end of the course, you will be able to: analyze the green and sustainability issues in traditional software engineering, identify and incorporate key elements to be included in the software engineering process to make the software green and sustainable, and use techniques to make your software code energy efficient.
Who is the course for?
This course is designed for those who are software developers, managers and software related policy makers, or have knowledge about software development, and want to consider the green and sustainability aspects in their everyday life. Also, this course will be useful for computational scientists who build green software and want to know more about these aspects in software engineering. However, this is an introductory course, and it will show a path for life-long learning to build more in-depth knowledge in each concept introduced in this course.
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 aim of this course is to give students insight about certification and about what it means to certify/self-assess safety- critical systems with focus on software system and to create a safety case, including a multi-concern perspective when needed and reuse opportunities, when appropriate.
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.