Master of Science in Software Engineering
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.
Accommodation
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 in June! 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 TUT in TUT 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 https://ois.ttu.ee
- There is another inteface to the same system at https://ois2.ttu.ee. Feel free to use the one that you feel more comfortable with.
- 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.
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 pass.ttu.ee 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.
There is a learning environment ained.ttu.ee where you will get access using your Uni-ID based e-mail address. Once you have your Uni-ID access sorted, please navigate to ained.ttu.ee and choose the Office365 login. Use your Uni-ID based e-mail address in the form 'your-uni-id@ttu.ee' and set up your account in the system. You will later be able to join courses.
Timetables
It is possible to view the timetables by going to [2] 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 juhan.ernits@ttu.ee 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 juhan.ernits@ttu.ee for further information.
IDY0204 Software Quality and Standards (Autumn semester) Autumn 2016: Lectures Wed 10:00-11:30, room SOC-209, labs Wed 12:00-13:30, room ICT-401U05-103.
ITT8060 Advanced programming: Autumn 2016: Lectures Wed 14:00-15:30 in ICT-A1 U06A-201, labs Wed 16:00-17:30 in U05-103.
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 campus map.
Exams in January 2017
NB! To get permission to participate in the exam it is necessary to bring an ID with a photo (ID-card, residence permit, passport) to the exam for identification. For the exam in IDY0204 you also need to ensure that you have a working access to moodle.hitsa.ee and you have a laptop with a charged battery with you.
- January 4, 2017: Exam in IDY0204 will start at 11:00. The bus will leave Raatuse 22, Tartu at 8:15. Return bus will leave from Tallinn, Ehitajate tee 5 (near the main entrance of the TUT main building), at 14:00.
- January 11, 2017: Exam in ITT8060 will start at 14:00. The bus from Tartu, Raatuse 22, will leave at 11:15. The return bus will leave from Ehitajate tee 5, Tallinn at 17:15.
- January 18, 2017: Exam in IDY0204 will start at 11:00, exam in ITT8060 will start at 14:00. The bus will leave Tartu, Raatuse 22, at 8:15. The return bus will leave Ehitajate tee 5, Tallinn at 17:15.
- Due to late marking of the exams in ITT8060 the students who asked were granted an extension in the retake of the exam in ITT8060. The retake will take place on February 10, 12:00, in room ICT-411.
Embedded and real-time software specialization
Real-Time Operating Systems and Systems Programming Lectures Fri 10:00-12:30 in room U06A-229, labs 12:00-13:30 in room ICT-405.
Electives
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 (TBA) )
Electives
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.
Electives
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 the following faculty wide page: [3].
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 (http://www.ttu.ee/public/i/infotehnoloogia-teaduskond/Praktikatoend2014_ENG.doc). This signed supervisor form needs to be scanned and uploaded to the appropriate assignment in [4].
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 [5] 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!
- January 2017 2 dates in Tartu (Listed in the wiki under the practical training course in ained.ttu.ee)
- January 2017 2 dates in Tallinn (Listed in the wiki under the practical training course in ained.ttu.ee)
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 either Katri Kadakas from the Dean's office or Elena Vaarmets.
Thesis
When writing the thesis you should follow the TUT IT Faculty thesis formatting guidelines: http://www.ttu.ee/faculties/school-of-information-technologies/it-studies/thesis-and-graduation-9/
Deadlines for defence in January 2017
June 15, 2016August 15, 2016 (the extension is one time only, in 2017 it will be in the middle of June): 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 [6] with your ID card or residence permit. You may also need to reset your password there.)
Deadlines for defence in June 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 [7] with your ID card or residence permit. You may also need to reset your password there.)
- 10 work days from problem statement submission: Feedback (unless you have already received feedback within the MSc seminar)
- May 1, 2017: Thesis submission deadline
- May: Reviews returned to students
- May: Final printed version of the thesis submitted.
- End of May/beginning of June 2017: Thesis defence.
Supervisors
- Jüri Vain
- Topic areas: mode-based planner synthesis for non-deterministic and distributed systems.
- Contact: juri.vain (a) ttu.ee
- Tanel Tammet
- Topic areas: automated theorem proving, logic based methods in network software
- Contact: tanel.tammet (a) ttu.ee
- Jaan Penjam
- Topic areas: programming language syntax and semantics, evolutionary algorithms, algebraic automata theory
- Contact: jaan (a) cs.ioc.ee
- 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) cs.ioc.ee
- Marko Kääramees
- Topic areas: formal methods, model-based testing of software, algorithms, system administration.
- Contact: marko.kaaramees (a) ttu.ee
- Sven Nõmm
- Topic areas: non-linear control systems, modelling, analysis, synthesis
- Contact: sven.nomm (a) ttu.ee
- 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) ttu.ee
- Gert Kanter
- Topic areas: robot testing, robot software based on ROS, control of robotic manipulators, software engineering in robotics.
- Contact: gert.kanter (a) ttu.ee
- Ago Luberg
- Topic areas: tourism recommender systems, software intensive systems.
- Contact: ago.luberg (a) ttu.ee
- Evelin Halling
- Topic areas: model-based testing, social robotics
- Contact: evelin.halling (a) ttu.ee
- 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) ttu.ee
- Topic areas: software testing, e.g.
- Jaagup Irve
- Topic area: Systems level software, user interfaces
- Contact: jaagup.irve (a) ttu.ee
- Leonidas Tsiopoulos
- Contact: leonidas.tsiopoulos (a) ttu.ee
- 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 [[8]] and the topics offered in other MSc curricula at TUT [[9]].
If you still could not find a suitable topic, please contact prof. Jüri Vain (juri.vain (a) ttu.ee) or Juhan Ernits (juhan.ernits (a) ttu.ee) for further information.