Programme: |
Computer Sciences (2022/2023) |
Module: Software and Application Development |
Study Cycle: | Second Cycle (Postgraduate) |
Faculty: | Contemporary Sciences and Technologies |
Academic year: | 2024 / 2025 |
Title: | Master of Computer Sciences / Module: Software and Application Development |
ECTS: | 60 (1 year) Accrediation |
Decision: | Decision for starting of the program |
The objectives of the study program are:
- To respond to the global market needs for software and application development with particular emphasis on regional needs and specific perspectives of the Republic of Macedonia towards building a common European educational, employment and research space;
- To prepare students for current and future technological challenges in ICT areas by developing the skills of critical thinking necessary for creativity, ethics and efficiency in a wide range of contexts;
- To train students to approach the information needs of an organization to implement new technologies and discover innovative solutions to business and research programs;
- To prepare students for further academic or research careers;
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
Advanced knowledge and understanding in the field of software and application development, including:
- Software development, needs analysis, design, coding, testing;
- Programming languages, their analysis and use in the development of various software solutions, software system analysis, development of Internet applications and security, networking;
- Knowledge of advanced concepts in computer science.
- Managing large software projects.
Applying knowledge and understanding
- Can apply, use, develop and deploy advanced software systems.
- Can offer and apply different methods and methodologies of software development for delivery of major IT solutions.
- Can use various tools for software development and program them using shell, scripts and compiled programs in standalone or web environments.
- Can participate in the process of solving problems in new, unseen or unknown environments for software development in an original, critical and creative way.
- Is able to organize software systems in order to solve various social, economic and/or technological issues.
- Is able to participate in research projects as a base for further academic development.
- Demonstrates expertise in addressing real problems in the field of software development and project management.
- Can develop and apply original and creative ideas.
Making judgement
- Can in an adequate way collect, analyze and evaluate data using modern tools and systems for certain social, economic and/or organizational issues.
- Is able to adequately assess the required deadlines, resources and risks in the planning, development, deployment and maintenance of software, using appropriate tools.
- Can argue and explain ideas, concepts.
- Can test, assess and appropriately decide on various possible IT solutions.
Communication skills
- Can in a clear and unambiguous way communicate their knowledge, data and results of studies to team members, customers, managers and other stakeholders in software development.
- Can adequately adjust the style and form of expression when addressing unskilled audience.
- Can initiate, lead and take responsibility for the work of a group of people.
- Is able to undertake preparations for research and contribute to the field of software development.
Learning skills
- Can follow new developments in the field of software and application development, learn new technologies and implement them.
- Can identify their needsand directions of personal and autonomous development.
Semester 1
-
[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 analyze quantitative and qualitative data, understand different frameworks for building theory and review and evaluate scientific publications.
-
[MCS-103]
[6 ECTS]
Advanced Software Engineering
The aim of this course is to provide students with knowledge and understanding of advanced software engineering concepts. Initially the students will be introduced to the construction of a clear specification. In addition, the aim is to answer the following advanced aspects of software engineering: What key technical activities are conducted during the clean room software engineering process? How is component-based software engineering used to create systems from reusable components? How does the client/server architecture affect the way in which software is engineered? Are software engineering concepts and principles applicable for Web-based applications and products?
-
[MCS-201]
[6 ECTS]
Advanced Data Structures and Algorithms
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.
-
[6 ECTS]
Professional elective course
- [EMCS-03] Web Engineering
- [ECS4060] Human - Computer Interaction
- [ECSWMS-07] Cloud Computing Technologies
- [EMCS-01] Service Oriented Architectures
- [EMCS-02] Data Visualization
- [ECSWMS-05] Web Application Security
- [ECSWMS-04] Software Development for Mobile Devices
- [ECSWMS-06] Large Scale Distributed Systems
- [ECSSE-01] Software Project Management
- [ECSSE-02] Software Testing and Analysis
- [ECSSE-03] Requirements Engineering
- [ECSSE-04] Agile Software Development
- [ECSSE-05] Model-Driven Software Development
- [ECSSE-06] Software Quality Assurance and Risk Management
- [EM480] Multi-Paradigm Programming
- [EM481] Distribution Systems Software Engineering
- [EM549] Modern Front-End Web Development
-
[6 ECTS]
Professional elective course
- [EMCS-03] Web Engineering
- [ECS4060] Human - Computer Interaction
- [ECSWMS-07] Cloud Computing Technologies
- [EMCS-01] Service Oriented Architectures
- [EMCS-02] Data Visualization
- [ECSWMS-05] Web Application Security
- [ECSWMS-04] Software Development for Mobile Devices
- [ECSWMS-06] Large Scale Distributed Systems
- [ECSSE-01] Software Project Management
- [ECSSE-02] Software Testing and Analysis
- [ECSSE-03] Requirements Engineering
- [ECSSE-04] Agile Software Development
- [ECSSE-05] Model-Driven Software Development
- [ECSSE-06] Software Quality Assurance and Risk Management
- [EM480] Multi-Paradigm Programming
- [EM481] Distribution Systems Software Engineering
- [EM549] Modern Front-End Web Development
Semester 2
-
[MCS-101]
[6 ECTS]
Advanced Databases
The course aims are to continue with an in-depth study of databases. The course is a continuation of the same course from the first study cycle; it starts with some revision of the conceptual database design models (a well-known entity relationship model) and continues with the enhanced entity relationship model. The concept of normalization and normal forms is introduced and is used for database design. The course continues with data storage methods, representing data elements, database system architecture, query processing and optimization, transaction processing concepts, concurrency control techniques, database recovery techniques and database security and authorization.
-
[SAD-200]
[24 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.