Events

Master Meetings

Have you decided on which Master programme to study? Would you like more information on the contents and teaching methods at USI? Register at our Master Meetings to attend courses.
The various Master Meetings offer you the opportunity to follow lectures together with the current master students. Guided by a USI student, you can visit the campus and make up your mind as to whether the contents correspond to your study ambitions.

Registration is compulsory. Please register online.

27.11.2019

MSc in Informatics

08:30-10:15
SI-003, Informatics Building

Programming Styles

Prof. Matthias Hauswirth

 

You are a good programmer. You are fluent in multiple programming languages. But can you program in style? This course is a journey through the landscape of programming languages and idioms. You will discover a multitude of dramatically different programming styles. A style arises from a set of constraints you impose on your code. Styles are independent of a given programming language. You can use many different programming languages to write code in a given style. In this course you won't just hear about and discuss various styles. You will practice those styles. You will look at programming as an art, and like a budding artist—be it a painter, a writer, or a musician—you will practice producing works in multiple artistic styles.

08:30-10:15
SI-004, Informatics Building

 

Distributed Systems

Prof. Patrick Eugster

 

Distributed Systems are ubiquitous in modern computer systems. In general, any computing system composed of interconnected autonomous processors is a distributed system. Therefore, understanding how distributed systems are structured is paramount to master modern computer systems. This course is an introduction to distributed systems. It covers basic principles, architectures, and algorithms of distributed systems. The course surveys various aspects of distributed systems, including distributed systems architectures, networking and internetworking, distributed objects and remote invocation, security, distributed file systems, name services, consistency and replication, fault tolerance, and distributed transactions.

10:30-12:15
SI-003, Informatics Building

 

User Experience Design

Dr. Monica Landoni

 

This class aims at familiarising students with both the theory behind the discipline of Human Computer Interaction (HCI) and the practical process of User eXperience (UX) design. Students not only develop an awareness and appreciation of the crucial implications of good interfaces in terms of overall system performance and user satisfaction, but also learn core skills needed in order to identify user requirements, envision interfaces and processes, and evaluate competing design options.

10:30-12:15
SI-013, Informatics Building

Software Performance

Prof. Matthias Hauswirth

 

This course teaches how the various layers of a computer system interact and affect the resulting performance. It performs two cuts down the system stack: one about the 'state' and the other about the 'behavior' of a system. The discussion of 'state' investigates memory usage of applications, leak detection, garbage collection, virtual memory management, and cache performance. The discussion of 'behavior' investigates call graphs, dynamic class loading, shared libraries and dynamic linking, control flow graphs, exception handling, compiler optimizations, and branch prediction. The course uses Java virtual machines and their internal operation as a running example and teaches basic static and dynamic program analysis techniques. It includes a series of programming assignments in which students implement various program analyses.

13:30-15:15
SI-008, Informatics Building

High-Performance Computing

Prof. Olaf Schenk

 

Are you interested in using Europe’s faster supercomputers? Would you like to learn how to write programs for parallel supercomputers, such as a Cray or a cluster of GPUs? The course is designed to teach students how to program parallel computers to efficiently solve challenging problems in science and engineering, where very fast computers are required either to perform complex simulations or to analyze enormous datasets. This course is a graduate-level introduction to high-performance computing. It refers to two things: efficient as the problem size grows, and efficient as the system size measured in numbers of cores grows. The course is organized as a HPC Lab. The practical aspect of this course is implementing the techniques you’ll learn to run on real parallel systems, so you can check whether what appears to work well in theory also translates into practice. Programming models you’ll use include include include OpenMP, and MPI, and possibly others.

13:30-15:15
SI-003, Informatics Building

Mobile and Wearable Computing

Prof. Silvia Santini

 

The widespread use of mobile and wearable devices such as mobile phones and smart watches enables the design and implementation of an endless set of novel services in applications areas like mobile health, smart working, and more. This course presents the main building blocks of such services and applications and discusses the challenges that arise on the path towards their realization. Following an overview of typical mobile services and applications the focus will be devoted to the most significant technologies, including hardware platforms, programming environments and tools. Relevant aspects related to the design and development of a mobile application, including the handling of sensors, the design of user interfaces, the management of local and remote sensor data storage, privacy and security issues will be investigated and addressed. To gain practical hands-on experience, students will learn during dedicated tutorials how to design, implement, and demonstrate Android-based mobile applications.