Knowledge and understanding - By means of lectures attended in the context of the course, the student will acquire the methods and knowledge that are necessary to understand how abstract machines work. The student will learn the most important computational complexity classes. The student will also learn principles and technologies of parallel computing architectures, as well as design and implementation parallel algorithms. Finally, the student will acquire the methods and knowledge that are necessary to understand how quantum computers work, and to design quantum algorithms and protocols.
Applying knowledge and understanding - By means of lectures and practical activities in the context of the course, the student will learn how to apply the acquired knowledge in a real design environment. In particular, the student will learn to: design efficient parallel algorithms, design and implement parallel programs, design quantum algorithms and protocols.
Making Judgements - The student will be able understand and critically evaluate the main types of high performance computing systems.
Communication Skills - By means of the lectures and the discussions with the teacher, the student will acquire the specific lexicon related to high performance computing systems. It is expected that, at the end of the course, the student will be able to transmit, both in oral and written form, the main topics of the course, like ideas, engineering problems and related solutions.
Learning skills - The student that will attend the course will be able to improve its knowledge about high performance computing systems, by autonomously referring to specialised books, scientific publications, also beyond the topics presented by the teacher during the lectures, in order to effectively face the entry into employment and undertake further training paths.