The course introduces the fundamentals of computer networks by illustrating applications and protocols of the TCP/IP network architecture.
The course provides an overview of green computing issues and proposed solutions for (a) evaluating and reducing energy consumption and carbon emissions in ICT and telecommunication systems, (b) designing energy-efficient hardware and software systems, and (c) reducing e-waste and pollution.
The course presents various advanced software engineering techniques, including microservice-based architectures, testing, agile principles, container-based virtualisation, business process modeling and security. It includes a weekly hands-on lab where students experiment the design, analysis, development and deployment techniques introduced.
The course aims at training students to develop large software systems working in real projects, dealing with the up-to-date issues of software design, implementation and testing of real projects. To this purpose the course experiments modern techniques for making software more robust, e.g. ad hoc static code analyses and tools, model checkers, code verification, testing frameworks, and language-based security frameworks.
As the world experiences environmental problems due to increasing carbon emissions, national and EU initiatives target the compelling need of our society to achieve sustainability goals. ICT systems produce 2% to 6% of the global carbon emissions throughout their lifecycle. On the other hand, ICT can contribute to reducing carbon emissions in other sectors (e.g. agriculture, building management, transportation) through digitalisation. The course aims at introducing students to fundamentals of Green ICT, providing them with a toolbox to consider sustainability aspects in their research.