Master of Science in Software Engineering

Allikas: Kursused
(Ümber suunatud leheküljelt IVSM)

Master of Science in Software Engineering is a joint curriculum of the University of Tartu and the Tallinn University of Technology. The current page contains information about the relevant courses given at the Tallinn University of Technology.


Campus information

To find your way around the TUT campus, please take a look at [1], there is also a map available there.


If you choose the the Embedded and Real-time software engineering specialization, then you will need to find a place to stay in Tallinn. The dormitory situation is very tight, so please make sure you book your places well ahead.

The information how to book a place at the dormitories can be found here.

For new students, please make sure you file your applications on the 1st of June! The system opens on June 1st, and the sooner you apply the higher you are in the queue. You should not file it earlier either because then your application will end in a pile with all other students, and it takes longer. Student can choose only two houses on the application, so have a look at different dormitory buildings here:[2] Siidisaba building is located not in the campus, but in Kristiine area, which is closer to city centre, but away from university. Campus office will start giving out offers starting July 3. Have a look at the campus website: [3] For students who plan to move after Autumn semester, November is about the latest time when to file an application with CampusTTU. Please note that students who have not stayed in TUT dormitories can follow the link "Send application". Students who have previously stayed at the dormitories need to follow the link "e-kyla login" and file the application from there. You can send yourself a password reminder from the page.

Access to TUT Study Information System

It is necessary to register to the courses given at TTÜ in TTÜ Study Information System (Õppeinfosüsteem, ÕIS for short). To access it you need to either

  • Use your ID card or residence permit with a chip to log in at
  • There is another inteface to the same system at Feel free to use the one that you feel more comfortable with. This interface allows you to log in using your Uni-ID (details in the next section).
  • If you do not have the chip card, you will need to go to the ÕIS admins in room SOC-132 to get a username and password.

There is a 5 min video explaining how to use OIS [4].

Login to lab computers, submission of homeworks

To log in to labs and to submit homeworks in many courses you will need to know your Uni-ID. You are able to find it out and set a password at by again using your ID card or residence permit with a chip. (You are also able to log into the lab computers with the chip card).

If you do not have the chip card, you will be able to find out your Uni-ID and set passwords in room ICT-410 or at the IT HelpDesk, room SOC-129.

There is a learning environment where you will get access using your Uni-ID based e-mail address. Once you have your Uni-ID access sorted, please navigate to and choose the Office365 login. Use your Uni-ID based e-mail address in the form '' and set up your account in the system. You will later be able to join courses.


It is possible to view the timetables by going to [5] and selecting "Timetables" from the left menu. Then look for your group (Autumn semester: IVSM11, IVSM12, IVSM31, IVSM32, Spring semester IVSM21, IVSM22). Please note that there may be changes in the timetable until the beginning of September / beginning of February.

For combining your electives and free choice courses, please check out the "condensed timetable" link.

1st semester

Core module

Agile Software Development The course will take place in Tartu. If you choose the Embedded and real-time software specialization and stay in Tallinn, you will be able to reimburse your bus/train tickets for attending the core module courses in Tartu. Contact for further information.

Systems Modelling The course will take place in Tartu. If you choose the Embedded and real-time software specialization and stay in Tallinn, you will be able to reimburse your bus/train tickets for attending the core module courses in Tartu. Contact for further information.

IDY0204 Software Quality and Standards (Autumn semester) ITT8060 Advanced programming:

For students staying in Tartu a shuttle bus will be provided to take them to Tallinn on Wednesdays and back to Tartu in the evening. The bus will start at 7:15 from Raatuse 22, Tartu and return at 18:00 from Akadeemia tee 15a (the IT building) Akadeemia tee 3 (the SOC building).

The buildings of the TUT campus can be located by the help of the [6].

Embedded and real-time software specialization

Real-Time Operating Systems and Systems Programming


ITI8600 Methods of Knowledge Based Software Development.

2nd semester

NB! Always double check with the timetable available at study information system.

NB! In TUT the Spring semester in 2017 started on January 30.

Seminar module

ITX8301 MSc Seminar I (Spring 2017: Tue 10:00-11:30 (ICT-411))

Embedded and real-time software specialization

ITI8531 Software synthesis and verification: (Spring 2017: Lecture Thu 10:00-11:30 (ICT-A2), Lab Thu 12:00-13:30 (ICT-411))

ITI8500 Foundations of embedded real-time systems (the content of the course will be changed to involve more practical work) (Spring 2017: Lecture + Lab Mon 16:00-19:00 (ICT-312/ICT-415))

ITI8520 Real-time software engineering. The course will be redesigned to reflect the engineering perspective to real-time software engineering and Internet of Things together with code generation from models. The theoretical knowledged will be complemented with appropriate practical project in the course ITI8500. (Spring 2017: Lecture Tue 12:00-13:30 (ICT-A2), Lab Wed 12:00-13:30 (ICT-637) )


ITI8580 Hybrid systems (Spring 2017: Lecture Tue 14:00-15:30 (ICT-A1), Lab Thur 17:45-19:15 (ICT-402))

IAF0530 Dependability and fault tolerance (Spring 2017: Lecture Mon 10:00-11:30 (ICT-315), Lab Mon 08:30-10:00 (ICT-315) weeks 12-16)

ITI8590 Advanced algorithms and data structures (Spring 2017: Lecture Wed 14:00-15:30 (ICT-315), Lab Mon 14:00-15:30 (U03-103) FIRST LAB on Feb 6)

IDY0203 Agent oriented modelling and multi-agent system (not offered in Spring 2017)

Suggested courses that will count as electives

ITT8030 Semantics of programming languages (not offered in Spring 2017)

ITI8565 Machine learning (Spring 2017: Lecture Tue 16:00-17:30 (ICT-A1), Lab Thur 16:00-17:30 (ICT-402))

IEE0710 Cognitronics - a new course on building cyber-physical systems that work together with the human body. (Spring 2017: Lecture Thu: 14:00-15:30, U02-309, Lab Tue: 12:00-14:15, U02-204 (to be confirmed))

ITI8905 Java Fundamentals: Lecture Mon 12:00-13:30 (ICT-315) can be seen in optional courses timetable in ÕIS. A course for advanced students in Java.

3rd semester

Embedded and real-time software specialization

ITX8302 MSc seminar II

All the rest of the compulsory courses should be done by the 3rd semester. You will have the option to participate in a startup project or carry out your practical training in addition to the elective courses.

You will have a palette of MSc level courses to choose from as a free studies course that would support your personal interests and help you in making your skills set unique and attractive to potential employers.


ITI8600 Methods of Knowledge Based Software Development.

IDY0201 Requirements Engineering

Suggested courses that will count as electives

IDN0110 Data mining

4th semester

You are free to choose an elective from the choices available during the Spring semester. Your main effort is expected to go into finalizing your thesis.

Practical training

In software engineering you need to complete 18 ECTS worth of practical training. You can choose between getting credit for internships or doing project courses listed under the practical training module. The below information currently concerns only the credit for internships. Please note that starting with the 2016 cohort, the students choosing the Enterprise Software specialization will need to choose from the two course codes below (or both) to get credit for internships at companies. The embedded and real time software engineering students will need register their internships in University of Tartu.

To get your practical training assessed, you will need to complete a 4 step process and pick from the two intership credit codes:

  • ITX8510 offers 6 ECTS for Internships & Practical trainings. (4 weeks of full time work)
  • ITX8511 offers 12 ECTS for Internships & Practical trainings. (8 weeks of full time work)

If you are looking for a new internship place, please first check out UT practical training offers: [7] and also the following TUT faculty wide page: [8].

If you have found the company or government agency where you want to carry out your internship and have an idea about the duration of the internship, then you should contact the representative at the company and sign the follwing internship form:

1) Practical training plan2016.docx

If you have already work experience, the requirements to get this recognised are as follows:

The work that you have done must be in an IT-related field. For every 6 ECTS you must have worked at least 4 weeks full-time, or 8 weeks part-time (at 50%). You will still be asked to complete the practical training plan to be sure that the internship / practical training gets accepted.

Sign the form, have it signed by the supervisor at the company and then enrol yourself to the IVSM internships and practical training course and upload it to the appropriate assignment.

NB! No forms should be forwarded by e-mails!

2) Your supervisor at the legal entity where you carry out your internship will have to sign a form and evaluate your work progress. Internship regulations and supervisor form can be found on the Internship regulation and forms page ( This signed supervisor form needs to be scanned and uploaded to the appropriate assignment in [9].

You can give the paper copy to the member of staff during your practical training seminar.

3) You will need to write a report about your internship. The guidelines of what the report should contain is given in the following document: Internship report guidelines.pdf. That needs to be submitted together with the supervisor form mentioned in the previous point.

4) You will have to give a presentation about what you have done during your work/internship. This presentation should not only give an overview of what the company is/was doing, but also present some particular projects and problems that you have been working on. If you have worked in a team, also explain how this went and what your contribution was. The presentation should be 8-10 min, and you should expect questions at any time.

The slots are listed in the course [10] under an appropriate wiki. Please write your name (by not exceeding the maximum student count) under the appropriate date. Please note that there are meetings in Tartu and Tallinn listed.

Before the seminar, you should file the application to register practical training under the appropriate course code (ITX8510 and/or ITX8511) in TUT ÕIS. NB! Please press the "submit" button as well!

Note that If you presentation contains some confidential material, then we will arrange a private presentation for your presentation.

If you have any questions, please don't hesitate to contact: Juhan Ernits. The technical questions about how and where to upload to reports should go to Siiri Taveter (siiri.taveter (a)


When writing the thesis you should follow the TUT IT Faculty thesis formatting guidelines:

Deadlines for defence in May 2017

If you are following the MSc Seminar, there are some thesis related deadlines set within that seminar.

  • December 1, 2016: Thesis problem statement submitted here. (You need to know your UniID at TUT to log in. You can find it out by logging in to [11] with your ID card or residence permit. You may also need to reset your password there.)
  • May 8, 2017: Submission of the final electronic version of the thesis along with metadata and license to IVSM thesis submission at
  • May 22, 2017: Final printed version of the thesis submitted. Please bring one paper copy to Siiri Taveter in room ICT-429 during office hours 10-12 and 13-16, phone#:58846937
  • May 30, 2017: Thesis defence in room ICT-411.

Shcedule of the defence on 30. May can be seen here: [12]

Deadlines for defence in January 2018

  • June 15, 2017: Thesis problem statement submitted here. (submission will be opened in the beginning of June)
  • End of December 2017: Thesis submission
  • January 2018: Defence

Preliminary deadlines for defence in May/June 2018

  • December 1, 2017: Thesis problem statement submission
  • May 7, 2018: Thesis submission (exact date to be confirmed)
  • End of May / beginning of June, 2018: Thesis defence


  • Jüri Vain
    • Topic areas: mode-based planner synthesis for non-deterministic and distributed systems.
    • Contact: juri.vain (a)
  • Tanel Tammet
    • Topic areas: automated theorem proving, logic based methods in network software
    • Contact: tanel.tammet (a)
  • Jaan Penjam
    • Topic areas: programming language syntax and semantics, evolutionary algorithms, algebraic automata theory
    • Contact: jaan (a)
  • Tarmo Uustalu
    • Topic areas: structured proof theory and type theory, algebraic and categorical logic, program language semantics, program logics, functional programming, methods of program transformation and construction, applications of modal logics in computer science
    • Contact: firstname (a)
  • Marko Kääramees
    • Topic areas: formal methods, model-based testing of software, algorithms, system administration.
    • Contact: marko.kaaramees (a)
  • Sven Nõmm
    • Topic areas: non-linear control systems, modelling, analysis, synthesis
    • Contact: sven.nomm (a)
  • Juhan Ernits
    • Topic areas: model-based testing (including for smart devices, IoT, server side software, robots), applications of functional programming technology (F#), model-based fault detection, 3D mapping using video streams.
    • Contact: juhan.ernits (a)
  • Gert Kanter
    • Topic areas: robot testing, robot software based on ROS, control of robotic manipulators, software engineering in robotics.
    • Contact: gert.kanter (a)
  • Ago Luberg
    • Topic areas: tourism recommender systems, software intensive systems.
    • Contact: ago.luberg (a)
  • Evelin Halling
    • Topic areas: model-based testing, social robotics
    • Contact: evelin.halling (a)
  • Maili Markvardt
    • Topic areas: software testing, e.g.
      • Software testing process, methods & tools in the example of company or organization The aim of this topic is to design and implement comprehensive testing process in an organization, including testing tasks and responsibilities, methods and supporting tools according to analysis of needs. The result (improvement) of implementing the new process must be measurable.
      • Choosing and/or developing test exectution tool/test management tool for a project or organization The aim of this topic is to analyse current situation or problem and choose most appropriate toolset for solving this problem. It can also be considered as implementing (programming) suitable test harness or tool for a specific project.
      • Practical solutions for measuring software test coverage (white and black box) and its relations to testing and development process costThis topic includes finding a way to measure test coverage, implement (additional) tests to increase the coverage and measure if achieved level of coverage is sufficient and if it is economically reasonable (not too expensive to achieve and manage in long term).
      • Survey on cost of software bugs in the example of Estonian public and private sector software systems This topic includes analysis of bugs and IT related problems and creating a framework that could be used in Estonia for assessing cost of live bugs and estimating necessary testing efforts.
    • Contact: maili.markvardt (a)
  • Jaagup Irve
    • Topic area: Systems level software, user interfaces
    • Contact: jaagup.irve (a)
  • Leonidas Tsiopoulos
    • Contact: leonidas.tsiopoulos (a)
    • Integrating verification methods and tools for complex real-time systems, possible case studies include: heating, ventilation and air-conditioning (HVAC), autonomic feeding tractor, or a Nanosatellite.
    • Implementing model transformation between Event-B and Uppaal Timed Automata.
    • Implementing tool support for Model-Based Testing workflow.
    • Verification of hard real-time scheduling on multi-core platforms for mixed-critical applications.

If you cannot find a supervisor matching your interests, please check the topics offered in other MSc curricula at TUT [[13]].

If you still could not find a suitable topic, please contact prof. Jüri Vain (juri.vain (a) or Juhan Ernits (juhan.ernits (a) for further information.