Voor de beste ervaring schakelt u JavaScript in en gebruikt u een moderne browser!
Je gebruikt een niet-ondersteunde browser. Deze site kan er anders uitzien dan je verwacht.

Software Engineering is an evolving field shaped by continuous innovations in technology, design patterns, and techniques. This Master’s stands apart from classical computer science by focusing on system complexity, human factors, and the enduring principles that transcend tools and trends. You’ll gain the skills to adapt and innovate in a rapidly changing field.

Curriculum structure

The Master’s in Software Engineering at UvA offers a rigorous, hands-on exploration of the principles and practices that define modern software systems. Rather than focusing solely on the tools of today—which can become outdated—this programme delves into the enduring techniques, methodologies, and critical thinking that will stand the test of time.

Throughout the programme, you’ll:

Learn to think beyond code: Gain a deep understanding of why stakeholder needs are hard to capture, how to navigate the human and technical complexities of large systems, and how to make strategic decisions that endure beyond the next technological trend.

Master real-world applications: From model-based design for cyber-physical systems to automated testing, DevOps, and cloud computing, you’ll work on projects that mirror industry and research challenges.

Develop both hard and soft skills: Courses combine advanced technical topics with a strong focus on communication, stakeholder engagement, and collaboration—skills that are critical for delivering solutions in dynamic, high-stakes environments.

Conclude with a cutting-edge Master’s Project: Your journey culminates in an independent research project conducted within a UvA research group or high-tech company, where you’ll contribute to advancing the field while developing critical leadership and project management skills.

Whether full-time or part-time, this programme is designed to equip you with the skills, mindset, and experience to lead in the ever-evolving world of software engineering.

Semester 1
  • Requirements Engineering (6 EC)
    • Understand why stakeholder needs are hard to express and capture.
    • Learn the limitations of (agile) methods and how to mitigate them.
    • Practice knowledge gathering, system modeling, and experiment setup.
    • Explore real-life cases and psychological insights to improve requirements gathering and decision-making.
    • Emphasis on soft skills like interviewing and communication.
  • Software Specification, Verification and Testing (6 EC)
    • Develop formal specifications using predicate logic.
    • Use abstraction and type specifications to enhance testability.
    • Apply random test generation and automated testing tools to functional and imperative programs.
    • Focus on Haskell examples while emphasizing principles applicable across languages.
    • Integrate logic and testing into modern software engineering workflows.
  • Model-Based Design of Cyber-Physical Systems (6 EC)
    • Gain insights into complexities of systems like satellites, cars, and medical devices.
    • Use Statecharts, Petri Nets, and DSLs to model behavior and validate system functionality.
    • Perform schedulability analysis, cache analysis, and design-space exploration.
    • Engage in team-based projects that apply model-based methodologies to real-world challenges.
  • Software Evolution (6 EC)
    • Tackle challenges of maintaining and evolving large, dynamic software systems.
    • Apply empirical and language engineering techniques, including maintainability metrics and refactoring.
    • Work with real open-source systems using Rascal to develop metrics, analyses, and visualizations.
    • Explore cutting-edge research in software maintenance, with practical assignments and guest lectures.
  • Preparation Master’s Project Software Engineering (6 EC)
    • Develop skills in problem analysis, scientific literature review, and research planning.
    • Create a graduation project proposal and survey of related literature.
    • Engage with supervisors and peers for guidance and feedback.
    • Build foundations in academic writing, English proficiency, and feasibility analysis.
Semester 2
  • DevOps and Cloud-based Software (6 EC)
    • Master DevOps principles, including CI/CD, Agile, Scrum, and cloud computing.
    • Automate cloud-based software development with tools like Chef, Terraform, and Ansible.
    • Develop practical applications using AWS or Azure, with insights from industry experts.
    • Address real-world challenges such as QA, monitoring, and secure development with DevSecOps.
  • Software Process (6 EC)
    • Explore the dynamics of delivering complex software systems in business and government settings.
    • Learn empirical research methods, stakeholder needs, and project management strategies.
    • Analyze failed projects and devise strategies for success.
    • Participate in guest lectures and collaborative case studies.
  • Master’s Project Software Engineering (18 EC)
    • Conduct original research that adds knowledge or gathers new evidence in software engineering.
    • Execute a project aligned with the proposal from the Preparation phase, with close supervision.
    • Produce a written thesis and defend your findings in a final presentation.
    • Integrate technical expertise with soft skills like stakeholder communication and strategic decision-making.

Detailed course information

For detailed information regarding the curriculum and courses, please see the UvA Course Catalogue via the link below. 

Learning approach

Courses combine interactive lectures, labs, and project-based assignments, offering you hands-on experience from day one. You’ll focus less on individual tools and more on the principles and methodologies that make them effective and adaptable.

Master’s Project

The MSc Software Engineering culminates in an independent Master’s project where you’ll tackle real-world challenges, conduct original research, and develop solutions with lasting impact. This capstone project is your chance to apply both technical expertise and essential soft skills, such as stakeholder engagement and project management. You’ll work under the guidance of academic supervisors and may choose to collaborate with renowned research institutes such as the National Research Institute for Mathematics and Computer Science (CWI)—or collaborate with a leading company in Amsterdam’s high-tech ecosystem.

A distinctive feature of the programme is the access to the annual UvA Thesis Fair, where you’ll connect directly with industry leaders and research groups to discover cutting-edge project opportunities. The fair has grown into a major networking event, setting the stage for a Master’s project that seamlessly integrates academic rigour and practical relevance. It’s where your ideas meet innovation—preparing you to contribute to the evolving field of software engineering.

Research projects

Lab assignments are part of the programme. Most are conducted in small groups and have to be completed in one or two weeks. This requires that you work together with other students at the faculty, and do all your reading in advance at home. As the year progresses, more and more projects are carried out on an individual basis under supervision.

Continuous academic support

Our dedicated faculty provides tailored feedback and support during this ambitious programme, with weekly check-ins to monitor your progress and ensure a healthy balance between challenge and support. You’ll receive guidance on both technical and personal development, fostering resilience and adaptability.

Flexible study options

Full-time or part-time

The MSc Software Engineering can be completed in one year full-time or over two years part-time, offering flexibility for working professionals. Many companies support part-time study within working hours, making it easier to balance work and academic commitments.

  • Part-time study structure

    Weekly schedule: ~16 contact hours (2 days: Mon/Tue or Wed/Thu) + ~4 hours self-study.

    Study load: 6 EC per block (one course).

    Year 1: Three courses + preparation for the Master’s project.

    Year 2: Three courses + completion of the Master’s project.

    The Master’s project can be particularly challenging for part-time students, often extending their study duration. However, selecting a project aligned with your employer’s interests can provide additional time and support. A typical timeline would be:

    Year 1:

    January: Project subject selection (part-time).

    April–June: Preparation and start (part-time).

    Year 2:

    April–May: Execution (full-time).

    June: Finishing up (part-time).

    Note: Due to visa regulations, non-EU/EEA/Swiss nationals cannot enroll in the part-time programme.

Pre-Master's programme

The objective of the pre-Master's programme is to equip students selected by the Admissions Board with the necessary knowledge and skills to successfully complete the Master’s programme. This personalised pre-Master’s programme helps us to achieve one of the university’s highest success rates.

Accreditation and title

This Master's programme has been accredited by the Accreditation Organisation of the Netherlands and Flanders (NVAO). Upon successful completion of the programme (a total of 60 ECTS), students will receive a legally recognised Master's degree in Software Engineering and the title of Master of Science (MSc).

Bring your own device

All students enrolled in Software Engineering are requested to bring their own laptop, due to the nature of the programme. More information on specific system requirements can be found here.