Master’s Programme in Software Engineering 120 credits
It is no longer possible to apply to this option
The programme meets the complex challenges facing the software developers of the future. This is achieved through education and training in advanced concepts within software technology, covering the entire sequence of development.
The Master´s programme in Software Engineering prepares you to develop software that addresses many of the challenges of the modern world. You will learn how to build products using emerging technologies such as the cloud, smart networks and the internet of things. MSc in Software Engineering students are people who want to become software architects and leaders of development teams. The programme provides you with the qualifications required to apply for software engineering positions in world-leading companies and opens the door towards software engineering research.
The Master´s programme in Software Engineering introduces you to the dynamic development of scalable, secure, reliable and high-performance software that delivers great user experience. By drawing on the lecturers’ industry and research experiences, you will develop the skills to plan, design and develop software, to manage local and global projects, and to evaluate the real-world impact of your software. For future software engineers, the programme provides a supportive environment where you can experiment with your own ideas for software. Internship opportunities offered by companies will prepare you for work in the industry. For future researchers, the programme offers a guided experience of doing authentic research. The BTH environment will connect you with leading researchers who will inspire you.
The programme consists of 120 credits and leads to a two-year Master´s degree.
On completion of the programme, students will be awarded the second cycle degree
Master of Science (120 credits). Main field of study: Software Engineering
- Type of instruction: On campus, day, full-time
- Study period: 2019-September-02 until 2021-June-06
- Education level: Second cycle
- Main field of study: Software Engineering
- Programme syllabus: Download
- Application: It is no longer possible to apply to this option
- Welcome letter: Download
- Location: Karlskrona
- Language of instruction: The teaching language is English.
- Entry requirements: A Bachelor's degree - three years (180 ECTS) of study of Software Engineering, or a Bachelor’s degree in Computer Science. Completed studies corresponding to 90 ECTS credits classified within the subject of Software Engineering or Computer Science. The Bachelor's degree must include at least 30 credits in one or more of the following areas:
Programming, Object-oriented Systems, Software Design, Data Structures and Algorithms, Database Technology, Data Communications, Real Time Systems, Operating Systems. In addition, a completed course of at least 7.5 credits in Software Engineering or a Team Software Engineering Project is required. The Bachelor's degree must also include at least 15 credits in Mathematics. English B/English 6.
Specific eligibility in the English language from upper secondary school for non-Swedish students:
TOEFL 575/90; IELTS 6,5 no section below 5.5, or University of Cambridge and Oxford tests.
(This paragraph is a translation from Swedish of the approved method, “Antagnings¬ordning”[Admission regulations], Dnr; BTH-1.2.1-0223-2017.)
This method has the purpose of assessing the applicants’ competency for studies at, among others, the Master Programmes in Electrical Engineering, Computer Science and Software Engineering.
BASES FOR RANKING OF APPLICANT
Previous university studies and English.
DETAILS ON BASES FOR SELECTION:
The first step of the ranking process is an assessment of the relevance of the area and specialisation of the applicants’ previous university studies to the applied programme. This assessment is made in three categories: minimal relevance = merit points 0, average relevance = merit points 0.5, high relevance = merit points 1.
Finally, the applicants’ TEOFL or IELTS level in English is normalised to a value between 0 and 1, where 0 is the minimum level to pass the prerequisites of the applied programme and 1 is the maximum level of the test. Applicants’ who are not required to prove their English skills with TOEFL or IELTS tests will get the merit point 1.
These two merit point values are added to a total merit value between 0 and 2.
MAXIMUM MERIT RANKING:
A maximum of 2 merit points will be given, according to the above given details.
Applications that are accepted for review based on the basic requirements for the programme will be ranked according to the details above. If not all applicants with the same lowest merit point can be admitted, a preference is given to the gender that is least represented at the programme, and if further selection is needed lots will be drawn.
On completion of the programme, students will be awarded the second cycle degree
Master of Science (120 credits).
Main field of study: Software Engineering
After completion of the programme the student shall:
- Have understanding for problems, theories and challenges within large scale software engineering.
- Have broad understandings for methods within software engineering.
- Have deep method knowledge within parts of software engineering.
- Have necessary skills to adapt available methods to the problem at hand.
- Have the ability to identify strengths and weaknesses within methods, results as well as prepare improvement suggestions.
- Have the ability to lead investigations using appropriate scientific methods.
- Have the ability to critically assess problems, solutions and results.
- Have the ability to take a scientific approach to the work performed.
- Have the ability to reflect over ethical and social aspects of Software Engineering.
Courses in this programme
The purpose of this course is to offer an introduction and an overview of the subject area software engineering, insight into contemporary research in software engineering, and practical exercise in basic software engineering skills.Read more
The course focuses on basic and advnaced knowledge and skills within continuous requirements engineering and product management in large-scale development of software intensive systems and products in a changing and cost sensetive reality. The course provides the students with both a theoretical and practical application of methods and techniques for requirements engineering and product management..Read more
The aim of the course is to offer an overall training in agile and lean that prepares campus students to practically evaluate the potential of agile / lean, plan the implementation of agile / lean, and realize agile and lean in an agile environment.Read more
Software Architecture is an important technical concept in modern large-scale software development that serves several purposes: planning development resources; analyzing the problem domain from multiple perspectives using the architectural views; and abstracting big amounts of information to obtain a useful overview of the system. In addition, the architecture and the decisions on how to construct architecture are a key component to plan and achieve a certain level of quality in a system, which thereby determines how successful the system will be. In the course the students are expected to obtain detailed knowledge about software architectures and software quality and the effects software architectures and architectural decisions have on the qualities of the software product under development. The students will acquire understanding about how to: i) document software architectures of existing systems; ii) construct software architectures based on modern methods and ideas such as architecture styles and patterns and tactics, by considering the intended product, the surrounding technology and the developing organization; iii) discuss the suitability of a software architecture for a specific software product in a specific context using facts as basis.Read more
Since many years has parallelism been an approach to obtain high performance in computer systems. However, developing parallel programs is difficult and time consuming, and has therefore only been used in large-scale server systems. Today, that picture has changed with the introduction of multicore processors. Now is almost every computer equipped a small multiprocessor. In order to utilize the performance potential, the programs also need to be parallel. In other words, multiprocessor systems and parallel programming will be fundamental building blocks for contemporary as well as future computer systems. In order to be able to develop high-quality programs for future computers it is essential that the student develop a thorough understanding of different design principles for multiprocessor systems, as well as a thorough understanding of different methods and techniques for developing parallel computer programs.Read more
The purpose of the course is to obtain knowledge in probability theory as well as statistical theory and methods. Emphasis lies in probability theory and stochastic processes with technical applications.Read more
To understand, assess and control software and software development projects, one must be able to measure various aspects of software and its development. The measurement may concern for example the software’s quality, the efficiency of processes and tools, or the productivity of the staff. Measurements make it possible to detect and diagnose problems and to follow up whether various actions have had the desired effect. The goal of the course is to provide students with the fundamentals of software measurement. Students will acquire knowledge of how measurements can be used to control, manage and predict software development processes. Students will also acquire a basic understanding of measurement processes and an awareness of the problems associated with software measurement, as well as experience in creating measurement models and carry out measurements.Read more
Testing is vital software engineering activity, but it is often challenging to perform software testing in an efficient and effective manner. The objectives of this course are for participants to appreciate how testing can improve software quality when effectively integrated into the software engineering processes, understand how this can be achieved using both established and novel software testing techniques, and gain practical experience of tools that support and automate these techniques.Read more
The aim of the course is to enable students to acquire specialised understanding of UNIX-based systems and for programming close to the operating system. This involves, among other things, being able to program at the most abstract level of the operating system, close to the user, and down through the levels of abstraction to the lowest level, system calls. The course trains students in designing software that interacts with the computer through the operating system UNIX (and operating systems similar to or based on UNIX such as Linux and MacOS). It provides a foundation for continued studies in other fields (such as computer security) demanding a practical understanding of the technology involved. The objective of the course is achieved by the student through gaining practical experience of developing programs in a UNIX environment in a series of laboratory exercises.Read more
The main purpose of the course is to introduce theory and methods from machine learning and real-world applications from data mining. The technological development has increased our dependency on databases for storage and processing of information. The number and size of these databases grow rapidly. Due to this growth, it becomes more difficult to manually extract useful information. We therefore need semiautomatic and automatic methods to use, aggregate, analyze, and extract such information. Methods and techniques from machine learning, data mining, and artificial intelligence have been shown to be useful for these purposes.Read more
The main objective of this course is to teach students to understand and how to address various software security problems in a secure and controlled environment. During this course the students will gain knowledge (both theoretical and practical) in various kinds of software security problems, and techniques that could be used to protect the software from security threats. The students will also learn to understand the ”modus operandi” of adversaries; which could be used for increasing software dependability.Read more
Performance is an important aspect of all software. In order to develop good and high-performance software, it is essential that students have a good understanding of and can apply the different methods and techniques to analyze and optimize the performance of a software system.Read more
The purpose of the course is to offer students a possibility to enrich their knowledge and their understanding within a specific topic in the subject area software engineering. The students embiggens their knowledge about current research and state of the art in the specific topic as a preparation for a upcoming masters thesis or to extend their knowledge about a topic not part of the regular course offering.Read more
Artificial intelligence exists in different forms in an increasingly bigger part of the computerized systems we use - Optimization techniques in logistics, computer-controlled characters in computer games, decision support systems, imaging algorithms and mobile robots. This purpose of the course is to introduce students to the field of artificial intelligence and some of its applications.Read more
The course aims at a detailed understanding of software quality and the challenges involved in achieving high software quality. Furthermore, the course discusses quality management of software and its role in software development, as well as the activities, technologies and models that are important for software quality assurance. During the course, participants will develop an awareness of the current state-of-the-art in software quality assurance as well as the state-of-practice within the software industry.Read more
Evolution and Maintenance of software is concerned with continuously correcting, adapting, and perfecting the software. This work introduces special challenges such as the need to understand the existing codebase without having access to the original developers, in order to make changes you need to understand the consequences of thee changes, you need to modernise the use of e.g. unit testing, and you need to take time to improve and refactor the codebase according to sound programming principles. It is, however, not enough to understand the source code in itself. You also need to understand how the source code is stored in a configuration management system, and how to suggest, inspect, approve, introduce, and test changes in the software and in the configuration management system. The intention of this course is to, through a practical case, create a deeer insight in to challenges such as the above.Read more
The aim of the course is that students will practice their ability to define, plan, implement and present independent scientific research work. Students are expected to apply the knowledge acquired during their education and independently immerse themselves in one or more specific sub-areas within the main subject area software engineering. The goal of the student is to, orally and in writing, report the results of his or her research and to critically examine and oppose on another thesis. The presentations shall comply with the requirements and criteria for academic writing.Read more
Tuition fees and payment
Find answers to the most frequently asked questions about application and tuition fees at Blekinge Institute of Technology.