The objectives of the study programme 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 programme will enable students with the necessary knowledge and skills to contribute in 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, team work and work in multicultural environments, planning and organizing.
After finishing this programme, the graduates will have career opportunities in a variety of industries, mainly fulfilling needs for computer systems design, such as software developer, software tester, manager of software projects and processes.
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 in 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 needs and directions of personal and autonomous development.
Semester 1
-
[6 ECTS]
Research Methodology
The goal of this course is to enable students with knowledge and understanding of different scientific theories and methodologies that are applied in the field of software and application development.
After completing the course, students will be able to:
* Thoroughly explain and understand the importance of the basic scientific concepts;
* Effectively search relevant information and literature;
* Identify, describe and formulate scientific problems;
* Make a careful choice of alternative research approaches;
* Thoroughly describe, compare and explain the advantages and disadvantages of various scientific methods for collecting quantitative and qualitative data;
* Apply basic scientific methods during analysis of quantitative and qualitative data;
* Understand different frameworks for theory building;
* Assess and review scientific publications.
-
[6 ECTS]
Software Engineering
The course goal is to provide students with a deep, critical and systematic understanding of management principles and techniques for designing effective software applications. To introduce students to the meaning of the methodology for management of software development solutions. The course covers various design and management aspects in the development of specialized software systems, including the critical path methods, Pertt method, network analysis methods, creating the project structure, Maruna technique for managing risks, and techniques for agile software development.
-
[6 ECTS]
Advanced Data Structures and Algorithms
This course is based on previous knowledge of algorithms and data structures. The course goal is to acknowledge students with advanced efficient algorithms and appropriate data structures used for data presentation, search and optimization. The course also reviews the theory of algorithm complexity and its practical determination in order to be able to compare different algorithms. During the course, students will become familiar with several known algorithms, especially for search and optimization in complex nonlinear structures, such as trees and graphs.
-
[6 ECTS]
Elective course 1
-
Programming Techniques and Technologies
The goal is to provide students with a deep, critical and systematic understanding of the principles and techniques and different technologies of programming and a thorough review of software design. Study of patterns of design patterns, frameworks for design and architecture are examined. Review of the current middleware architectures. Component based design. Theory of measure and use of metrics in the design. Characteristics of good design: performance, reliability, security, reusability, etc.
-
Human-Computer Interface
The course goal is to provide students with a deep, critical and systematic understanding of the principles and techniques of human-computer interaction, evaluation of user interface, task analysis, user-centered design, prototypes. Conceptual models and metaphors. Design of windows, menus and commands. Voice and natural language I/O. Response time and feedback. Colors, icons and sounds. Internationalization and localization.
-
Artificial Intelligence
This course is an introduction to specific algorithms and applications in fundamental areas of Artificial Intelligence: the agents, logic, search, reasoning in environments of uncertainty, machine learning and neural networks. Practical experience in a specialized programming language Prolog and tools for processing data in the field of artificial intelligence.
-
System Analysis and Design
The purpose of this course is to enable students with understanding and усаге оф methodologies, techniques, tools and perspectives essential for system analysts to successfully investigate and develop information systems applications by using standard modeling techniques, such as structure, modeling techniques, and techniques for object modeling. Students should understand and be able to use various technologies and tools for designing programs. Also, students should understand the methods and their limitations in creating a working design with the results obtained from systematic analysis.
-
Grid Computing
The course aims to provide a detailed introduction to the structures for Grid processing. Presented are the different components of these systems and also how these components fit together. The purpose of this course is to provide an ongoing review of Grid processing that reflects the current progress, to report the actual experiences and explain currently available technologies and those announced by laboratories, companies and standardization bodies.
-
Computer Networks and Web Applications
The main purpose of this course is to enable students gain deep, critical and systematic understanding on the principles and techniques of diverse network architecture technologies as well as networking multimedia applications (internet based interactive 3D graphics, IP TV, P2P and GRID based multimedia services).
-
[6 ECTS]
Elective course 2
-
Programming Techniques and Technologies
The goal is to provide students with a deep, critical and systematic understanding of the principles and techniques and different technologies of programming and a thorough review of software design. Study of patterns of design patterns, frameworks for design and architecture are examined. Review of the current middleware architectures. Component based design. Theory of measure and use of metrics in the design. Characteristics of good design: performance, reliability, security, reusability, etc.
-
Human-Computer Interface
The course goal is to provide students with a deep, critical and systematic understanding of the principles and techniques of human-computer interaction, evaluation of user interface, task analysis, user-centered design, prototypes. Conceptual models and metaphors. Design of windows, menus and commands. Voice and natural language I/O. Response time and feedback. Colors, icons and sounds. Internationalization and localization.
-
Artificial Intelligence
This course is an introduction to specific algorithms and applications in fundamental areas of Artificial Intelligence: the agents, logic, search, reasoning in environments of uncertainty, machine learning and neural networks. Practical experience in a specialized programming language Prolog and tools for processing data in the field of artificial intelligence.
-
System Analysis and Design
The purpose of this course is to enable students with understanding and усаге оф methodologies, techniques, tools and perspectives essential for system analysts to successfully investigate and develop information systems applications by using standard modeling techniques, such as structure, modeling techniques, and techniques for object modeling. Students should understand and be able to use various technologies and tools for designing programs. Also, students should understand the methods and their limitations in creating a working design with the results obtained from systematic analysis.
-
Grid Computing
The course aims to provide a detailed introduction to the structures for Grid processing. Presented are the different components of these systems and also how these components fit together. The purpose of this course is to provide an ongoing review of Grid processing that reflects the current progress, to report the actual experiences and explain currently available technologies and those announced by laboratories, companies and standardization bodies.
-
Computer Networks and Web Applications
The main purpose of this course is to enable students gain deep, critical and systematic understanding on the principles and techniques of diverse network architecture technologies as well as networking multimedia applications (internet based interactive 3D graphics, IP TV, P2P and GRID based multimedia services).
Semester 2
-
[24 ECTS]
Master Thesis
This module enables students to transfer their skills and knowledge to research and make more complex the task of the 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 paper, taking account to stop illegal means, such as plagiarism and infringement of copyright, which are prohibited by the Statute of SEEU.
-
[6 ECTS]
Free elective course 1
-
Internet Architectures
The purpose of this course is to provide students with deep understanding and competencies about the basic concepts and ideas that emphasize the architectural models of the Internet. Upon completion, students should be able to: have a deep understanding of concepts, principles, methods and techniques necessary for designing, analyzing and maintaining large, scalable web and application services, to understand and be able to make appropriate design decisions about persistence, flexibility, scalability and sustainability of different software architectures used in web and mobile applications; have deep understanding about the complex Internet infrastructure and protocols required for the establishment of social media applications and mobile services, to have a good understanding of different architectural patterns for implementing internet and mobile applications from large scale and to understand and use different integration approaches for the expansion of existing web applications in order to meet the demands of online communities.
-
Development of web and mobile applications
The purpose of this course is to provide students with technological bases, knowledge and skills related to different web and mobile development frameworks used for implementation and deployment of Internet and mobile applications and services. After completing the course, students will be able to: have a good understanding of various methods and techniques used in web and mobile engineering; have a good understanding of various development frameworks for deploying web and mobile applications and services, understand those aspects of design and user requirements for developing scalable web and mobile applications and services, have a deep understanding of the various standards for web and mobile development, to master and use different tools and development approaches for implementing internet and mobile solutions and have understanding of test-driven development and aspects of usability-related Internet and mobile applications and services.
-
Selected Advanced Topics in IT Applications for Preparing a Scientific Paper
The aim of this subject is:
* To display the technical elements, the structure of the text and design of a scientific research.
* To enable students to acquire advanced knowledge and skills from selected advanced chapters of IT applications that will be needed in preparing the scientific and research paper.
* Practical application of these objectives in preparing student’s individual research paper.
-
Applications for Statistical Data Processing
The aim of this subject is:
* To display the technical elements in the field of statistics: organizing, processing, and comparing through analysis and publication of data.
* To enable students to acquire advanced knowledge and skills of the applications for statistical data processing.
* Practical application of these objectives in statistical processing of data obtained from questionnaires, reports, scientific studies and other documents.
-
Methodology of Teaching
The aim of the course is to introduce the students to the basic teaching approaches and methods. They are expected to gain knowledge and skills in order to be able to apply the active educational tools. The course also offers development, learning and teaching as concepts and basic practices that allow teachers to teach about the development of thinking. Throughout this course, students will gain both theoretical background and entirety of strategies that will enable them to reflect and develop both their own and their students` critical thinking.