Programme: |
Computer Sciences |
Module: Software Engineering (2023-2024) |
Study Cycle: | Second Cycle (Postgraduate) |
Faculty: | Contemporary Sciences and Technologies |
Programme Code: | SE-120 |
Academic year: | 2024 / 2025 |
Title: | Master in Computer Sciences / Module: Software Engineering |
ECTS: | 120 (2 years) Accrediation |
Decision: | Decision for starting of the program |
Changes in the field of computer sciences and their application are very dynamic. The main challenge of the research and studies in this area is developing new advanced systems and technologies that will provide solutions in the area of information and communication technologies. Information and communication technologies have become the largest, the most important and the most developed sectors that are rapidly expanding in the European Union and the global market. In addition, the emergence of new markets for the software and telecommunications sector in Southeast Europe has led to increased demand for highly qualified and specialized professionals in this field. Graduate students can work as professional software engineers or as software architects in the development of software companies or in IT departments of various different enterprises. The high level of professional skills will enable graduate students to become successful leaders in the software industry.
The program will supply students with the necessary knowledge and skills so that they can contribute to all aspects of the software development process, including planning, collaboration, specifications, design, development, delivery and maintenance of software products. In addition, students will also acquire general skills, such as analytical and critical thinking, teamwork including multicultural environments, planning and organization. After finishing this program, the graduates will have career opportunities in a variety of industries, mainly fulfilling the needs for designing computer systems, developing software for mobile and Web applications, working as database engineers, managers of software projects and processes, etc. depending on the track the students will choose within this study program. The last semester of studies includes master thesis writing, enabling program graduates to continue their studies towards a doctoral degree in computer sciences.
Knowledge and understanding
Ability to develop and implement original and creative IT ideas to ensure the quality and design and managing applications related to telecommunications applications areas such as security and quality assurance;
Ability to apply IT skills and knowledge and demonstrate specialized competencies in computer sciences and information technologies in order to organize and connect telecommunications processes like a structure that is managed and monitored both in terms of data flow and in terms of creating user interfaces;
Having knowledge and understanding of areas such as computer sciences and engineering (programming, web technologies, databases, networks, computer and information systems and multimedia);
Having knowledge of one or more areas of the telecommunications industry that can upgrade students to expert s in the application of knowledge in a given area;
Applying knowledge and understanding
Ability to critically, independently and creatively solve problems in new and unfamiliar environments with no previous experience in telecommunications;
Planning, management and evaluation of independent research in the field of telecommunications as well as development and implementation of appropriate tools for testing, simulation and implementation;
Creativity and originality in the interpretation of the knowledge in informatics to solve problems related to the objectives of the industrial production area of telecommunications;
Making judgement
Ability for creative integration and synthesis of knowledge from several areas in the telecommunicationsfield, and administration processes and systems using IT tools designed and created for a specific issue.
Creating educational processes using computer tools and techniques;
Ability to deal with complex situations associated with specific processes resulting in real-time telecoms space;
Ability to identify appropriate specialized instances and make sound judgments in situations of lack of complete information or data based on personal, social and ethical principles and responsibilities associated with the application of knowledge and understanding;
Communication skills
Ability to share findings and proposals with rational argument and reliance both with professionals and with unskilled people, clearly and unambiguously;
Taking considerable responsibility in shared outcomes, running and initiating activities, etc.
Learning skills
Ability to take responsibility for continued private study in specialized areas of business and information within the networked economy;
Ability to take responsibility for further professional development and training;
Semester 1
-
[MCPL2010]
[6 ECTS]
Software Analysis and Design
This course aims to familiarize students with the concepts, methods, and tools of object-oriented analysis and design of software systems, especially methods used in large-scale product development projects. This course covers the general design principles and patterns that support the development of maintainable, reusable, and scalable software. Analysis and design models are represented using UML models such as use case diagrams, class diagrams, sequence diagrams, and state diagrams. In addition, techniques, and guidelines for analysing software domains and requirements are presented.
-
[ECSSE-01]
[6 ECTS]
Software Project Management
The aim of this course is to give students knowledge on how to develop a software project management plan for software intensive systems; how to set up monitoring and control mechanisms; how to allocate and reallocate project resources; how to track schedule, budget, quality, productivity, and progress; frameworks and how to plan for the installation and support phase of the system life cycle. The students will understand the importance project structure, resource planning and execution, and progress measures of a project. In addition, they will understand the relationships among quality assurance, configuration management, verification and validation, and test and evaluation. They will also gain an understanding of the key issues in costing and pricing units of effort, motivation of workers, leading project teams, and total quality management.
-
[CM210]
[6 ECTS]
Software Testing and Quality Assurance
Software plays an important role in our daily activities, often providing critical services to end users. It is important to ensure that these systems function as they are intended with a high degree of quality. Software testing is one of the techniques that is widely used to ensure the software quality. These techniques are used by developers in order to validate, verify, and evaluate the quality of software produced during the software engineering process. This course aims to provide students with advanced knowledge of the techniques used in software testing, as well as processes, methods and tools used to track and ensure the software quality. Students will gain an understanding of the concepts and theories that underlie these techniques and practical knowledge on applying those.
-
[6 ECTS]
General Elective (from SP)*
- [EM575] Programming in Java
- [EM576] Programming in .NET
- [EM577] Cryptography
- [EM578] Programming in Python
- [EM579] Mobile Applications Development
- [EM580] Game Programming
- [EM581] Parallel Processing
- [EM582] Е-commerce
- [EM583] Computer Network Management (After Comp. Networks)
- [EM574] NoSQL Databases
- [EM584] Mobile and Wireless Networks
- [EM585] IT Professional Ethics
- [EM586] Digital Logic Design and Simulation
- [EM587] Numerical Methods
- [EM588] Internet of things
- [EM572] Introduction to Artificial Intelligence
- [EM589] Cybersecurity
- [EM573] Introduction to Information Systems
- [E2802] Business Analytics
- [6 ECTS] Professional Elective (from the module)**
Semester 2
-
[CM194]
[6 ECTS]
Practicum
On successful completion of this course, students should be able to relate academic course material to real teaching conditions at workplace; develop experience in various aspects of teaching ICT such as planning, organizing, material selection and lesson delivery, as well as adapting to workplace culture; develop appropriate work related habits and professional attitudes by observations of skilled teachers; communicate effectively in a variety of forms to students, parents and colleagues; and work in a team.
-
[CM205]
[6 ECTS]
Cloud Infrastructure and Technologies
This course introduces to students the foundational knowledge required for understanding cloud computing from different perspectives, both technological and the business one. Students will learn about the various cloud service models (IaaS, PaaS, SaaS), deployment models (Public, Private, Hybrid) and the key components of a cloud infrastructure (VMs, Networking, Storage - File, Block, Object, CDN). The course also covers emergent cloud trends and practices including - Hybrid Multicloud, Microservices, Serverless, DevOps, Cloud Native and so on. Finally, some other important topics such as cloud security, monitoring, and different job roles in the cloud industry are explained.
-
[CM204]
[6 ECTS]
Computer Security
This course teaches principles of computer security from an applied viewpoint and provides hands-on experience with security threats and countermeasures. The course additionally covers principles and skills useful for making informed security decisions and for understanding how security interacts with the world around it. Applied topics include cryptography, authorization control, operating systems security, and web and network security. Other topics include general security principles, human factors such as trust and social engineering, the security of complex systems, and the economics of security. The course aims to balance theory and practice.
-
[6 ECTS]
General Elective (from SP)*
- [EM575] Programming in Java
- [EM576] Programming in .NET
- [EM577] Cryptography
- [EM578] Programming in Python
- [EM579] Mobile Applications Development
- [EM580] Game Programming
- [EM581] Parallel Processing
- [EM582] Е-commerce
- [EM583] Computer Network Management (After Comp. Networks)
- [EM574] NoSQL Databases
- [EM584] Mobile and Wireless Networks
- [EM585] IT Professional Ethics
- [EM586] Digital Logic Design and Simulation
- [EM587] Numerical Methods
- [EM588] Internet of things
- [EM572] Introduction to Artificial Intelligence
- [EM589] Cybersecurity
- [EM573] Introduction to Information Systems
- [E2802] Business Analytics
- [6 ECTS] Professional Elective (from the module)**
Semester 3
-
[MCS-303]
[6 ECTS]
Research Methodology
The purpose of this course is to provide students with knowledge and understanding of different scientific theories and methodologies. Initially the student will be introduced to the conceptual, theoretical definitions and examples of all existing methods of research, hypothesis, direct and indirect variables, validation of the results, the conclusions BIAS and scientific qualitative and quantitative methodologies, "ground research" methodology and other methodological approaches. In each chapter the student will work on practical assignments. After completing the course the student will be able to explain thoroughly and understand the importance of basic scientific concepts, effectively search and find information-relevant literature, identify, describe and formulate scientific problems, make a careful choice of alternative research approaches, thoroughly described, compare and explain the advantages and disadvantages of different scientific methods for collecting quantitative and qualitative data, apply basic scientific methods to analyse quantitative and qualitative data, understand different frameworks for building theory and review and evaluate scientific publications.
-
[CM191]
[6 ECTS]
Advanced Algorithms and Data Structures
This course builds on previous knowledge in the area of algorithms and data structures. The goal of the course is to acquaint students with efficient advanced algorithms and adequate data structures that are used to organize, search, and optimize data. It also includes the theoretical efficiency of algorithms and its practical determination in order to be able to compare different algorithms. During the course, students will be introduced to several well-known algorithms, particularly search and optimization in complex nonlinear structures such as trees and graphs.
-
[CM192]
[6 ECTS]
Formal Methods in Computer Science
This course gives students a comprehensive introduction to formal methods and their application in software specification and verification. It covers some fundamentals in formal methods, including set theory, functions, finite state machines, predicate and temporal logics, and model checking. The course will give students examples of real-world application of these formal techniques.
- [6 ECTS] Professional Elective (from the module)*
- [6 ECTS] Professional Elective (from the module)*
Semester 4
-
[CST-THESIS-120]
[30 ECTS]
Master Thesis
This module enables students to transfer their skills and knowledge to research and carry out more complex tasks related to their master thesis. The module is designed to be fully practical and students to acquire the necessary knowledge and skills to approach writing the thesis. The module has unique return result-to enable students to write the master thesis with minimal difficulties, and with maximum efficiency. The course aims to improve research techniques and style of writing the paper, taking into account the prevention of the usage of illegal means, such as plagiarism and infringement of copyright, which are prohibited by the Statute of SEEU.