Specialisation in Programming Languages

Programming languages are a medium for communicating our intentions to the computer and to each other. The field of programming languages studies organizing principles that link other areas cutting across all of computer science. The field covers programming language design, compilers, runtime systems, type systems, program verification, performance, and static and dynamic analysis. Programming languages is an active area. There is a great need for new programming abstractions to be developed, new languages invented, and existing languages extended to be able to effectively program and take full advantage of new platforms and architectures.

Graduates will be prepared to work in fields related to program understanding, analysis, manipulation, and transformation. They will acquire the tools and techniques needed to specify and implement language-based solutions. Students will study fundamental aspects of programming languages, both from the theoretical and the practical side, preparing them to become industry professionals or to continue on towards a PhD.

Across the two years students must acquire:

  • 30 ECTS out of 36 ECTS of core courses
  • 18 ECTS of “Programming Languages” tagged courses and write their thesis in the same area

6 ECTS can be acquired from non-INF Master programmes at USI.

Course ECTS Sem
Advanced Java Programming 6 Autumn
Computer Aided Verification 6 Autumn
Programming Styles 3 Autumn
Software Performance 6 Autumn
Advanced Computer Architectures 6 Spring