Master of Science in Computer Science: Software Engineering

Fully Online
18 months
2250 hours | 90 ECTS
Degree
Scaler Neovarsity
Accreditation:
EQF7

About

This degree program teaches students comprehensive and specialised subjects in computer science; it teaches students cutting-edge engineering skills to solve real-world problems using computational thinking and tools, as well as soft skills in communication, collaboration, and project management that enable students to succeed in real-world business environments. Most of this program is case (or) project-based where students learn by solving real-world problems end to end. This program has core courses that focus on computational thinking and problems solving from first principles. The core courses are followed by specialization courses that teach various aspects of building real-world systems. This is followed by more advanced courses that focus on research level topics, which cover state of the art methods. The program also has a capstone project at the end, wherein students can either work on building end to end solutions to real world problems (or) work on a research topic. The program also focuses on teaching the students the “ability to learn” so that they can be lifelong learners constantly upgrading their skills.

  • Target Audience

    • Ages 19-30, 31-65, 65+

  • Target Group

    • This course is designed for individuals who wish to enhance their knowledge of computer science and its various applications used in different fields of employment. It is designed for those that will have responsibility for planning, organizing, and directing technological operations. In all cases, the target group should be prepared to pursue substantial academic studies. Students must qualify for the course of study by entrance application. A prior computer science degree is not required; however the course does assume technical aptitude; and it targets students with finance, engineering, or STEM training or professional experience.

  • Mode of attendance

    • Online/Blended Learning

  • Structure of the programme

  • Please note that this structure may be subject to change based on faculty expertise and evolving academic best practices. This flexibility ensures we can provide the most up-to-date and effective learning experience for our students.The Master of Science in Computer Science combines asynchronous components (lecture videos, readings, and assignments) and synchronous meetings attended by students and a teacher during a video call. Asynchronous components support the schedule of students from diverse work-life situations, and synchronous meetings provide accountability and motivation for students. Students have direct access to their teacher and their peers at all times through the use of direct message and group chat; teachers are also able to initiate voice and video calls with students outside the regularly scheduled synchronous sessions. Modules are offered continuously on a publicly advertised schedule consisting of cohort sequences designed to accommodate adult students at different paces. Although there are few formal prerequisites identified throughout the programme, enrollment in courses depends on advisement from Woolf faculty and staff.The degree has 3 tiers: The first tier is required for all students, who must take 15 ECTS. In the second tier, students must select 45 ECTS from elective tiers. Tier Three may be completed in two different ways: a) by completing a 30ECTS Advanced Applied Computer Science capstone project, or b) by completing a 10 ECTS Applied Computer Science project and 20 ECTS of electives from the program.

  • Grading System

    • Scale: 0-100 points

    • Components: 60% of the mark derives from the average of the assignments, and 40% of the mark derives from the cumulative examination

    • Passing requirement: minimum of 60% overall

  • Dates of Next Intake

    • Rolling admission

  • Pass rates

    • 2023 pass rates will be publicised in the next cycle, contingent upon ensuring sufficient student data for anonymization.

  • Identity Malta’s VISA requirement for third country nationals: https://www.identitymalta.com/unit/central-visa-unit/

    • Passing requirement: minimum of 60% overall

  • Dates of Next Intake

    • Rolling admission

  • Pass rates

Supporting your global mobility
Supporting your global mobility

Global Recognition

Woolf degrees align with major international qualification frameworks, ensuring global recognition and comparability. Earn your degree in the most widely recognized accreditation system in the world.

Learn More About Degree Mobility

Our accreditation through the Malta Further and Higher Education Authority (MFHEA) provides a solid foundation for credential recognition worldwide.

Success stories
Success stories

How students have found success through Woolf

"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
“Woolf and Scaler’s hands-on Master’s program gave me the practical skills and confidence I was missing after my undergraduate degree. Real projects, professional tools, and mentorship transformed how I think, build, and solve problems — leading me to a career as a Software Engineer.”
Bhavya Dhiman
Master’s in Computer Science
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
“Woolf’s flexible, accredited program gave me structure, community, and the confidence to grow. From landing my dream internship to winning a hackathon, Woolf opened doors and shaped both my career and mindset.”
Dominion Yusuf
Higher Diploma in Computer Science
"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
“Woolf and Scaler’s hands-on Master’s program gave me the practical skills and confidence I was missing after my undergraduate degree. Real projects, professional tools, and mentorship transformed how I think, build, and solve problems — leading me to a career as a Software Engineer.”
Bhavya Dhiman
Master’s in Computer Science
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
“Woolf’s flexible, accredited program gave me structure, community, and the confidence to grow. From landing my dream internship to winning a hackathon, Woolf opened doors and shaped both my career and mindset.”
Dominion Yusuf
Higher Diploma in Computer Science
- Design and implement software modules adhering to object-oriented programming principles and best practices - Write effective unit tests to identify and debug software defects - Utilize version control systems to manage code changes effectively and collaborate within a development team

Course Structure

Introduction to Computer Programming: Part 1
125 hours | 5 ECTS

About

This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.

While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.

The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.

Key Intended Learning Outcomes:

  • Assess, analyze, and criticize the various strategies for storing data in a computer program

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to solving problems with 2D lists

  • Propose appropriate solutions to complex and changing problems of data storage, programming functions, and algorithms

Teachers

Oleh Andrus
Oleh Andrus
Serhii Kodenko
Serhii Kodenko
Litvinchuk Eduard
Litvinchuk Eduard
Yurii Volodymyrovych Kuchma
Yurii Volodymyrovych Kuchma
Volodymyr Dunkin
Volodymyr Dunkin

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on computational complexity
  • Develop a specialised knowledge of key strategies related to Object-Oriented Programming
  • Critically assess the relevance of theories for business applications in the domain of technology
  • Acquire knowledge of various methods for structuring data
  • Develop a critical understanding of a modern programming language such as Java or Python
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Creatively apply various programming methods to develop critical and original solutions to computational problems
  • Apply an in-depth domain-specific knowledge and understanding to computer programming
  • Autonomously gather material and organise it into a coherent presentation or essay
Competencies
  • Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented methods
  • Apply a professional and scholarly approach to research problems pertaining to computational complexity
  • Demonstrate self-direction in research and originality in solutions developed for modern programming languages
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming
  • Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays
  • Act autonomously in identifying research problems and solutions related to Object-Oriented programming
Relational Databases
125 hours | 5 ECTS

About

This is a core and foundational course which aims to equip the student with the ability to model, design, implement and query relational database systems for real-world data storage & processing needs. Students would start with diagrammatic tools (ER-diagram) to map a real world data storage problem into entities, relationships and keys. Then, they learn to translate the ER-diagram into a relational model with tables. SQL is then introduced as a de facto tool to create, modify, append, delete, query and manipulate data in a relational database. Due to SQL’s popularity, the course spends considerable time building the ability to write optimized and complex queries for various data manipulation tasks. The module exposes students to various real world SQL examples to build solid practical knowledge. Students then move on to understanding various trade-offs in modern relational databases like the ones between storage space and latency. Designing a database would need a solid understanding of normal forms to minimize data duplication, indexing for speedup and flattening tables to avoid complex joins in low-latency environments. These real-world database design strategies are discussed with practical examples from various domains. Most of this course uses the open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.

Key Intended Learning Outcomes:

  • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases

  • Propose appropriate solutions to complex and changing problems pertaining to Relational Databases

Teachers

Volodymyr Barvinok
Volodymyr Barvinok
Aliiev-Lomach Maksym Olexandrovich
Aliiev-Lomach Maksym Olexandrovich
Dmytro Mazokha
Dmytro Mazokha
Yurii Volodymyrovych Kuchma
Yurii Volodymyrovych Kuchma
Oleksii Serdiukov
Oleksii Serdiukov

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on relational databases
  • Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
  • Develop a specialised knowledge of key strategies related to Relational Databases
  • Critically assess the relevance of theories for business applications in the domain of technology
  • Develop a critical knowledge of relational databases
Skills
  • Apply an in-depth domain-specific knowledge and understanding to Relational Databases
  • Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
  • Autonomously gather material and organise it into a coherent presentation or essay
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to Relational Databases
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
  • Create synthetic contextualised discussions of key issues related to Relational Databases
  • Act autonomously in identifying research problems and solutions related to Relational Databases
  • Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
  • Demonstrate self-direction in research and originality in solutions developed for Relational Databases
Data Structures
125 hours | 5 ECTS

About

This course is aimed to build a strong foundational knowledge of data structures (DS) used extensively in computing. The module starts with introducing time and space complexity notations and estimation for code snippets. This helps students be able to make trade-offs between various Data Structures while solving real world computational problems. The module introduces most widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs. The module discusses multiple implementation variations for each of the above data-structures along with trade-offs in space and time for each implementation. In this course, students implement these data-structures from scratch to gain a solid understanding of their inner workings. Students are also introduced to how to use the built-in data-structures available in various programming languages/libraries like Python/NumPy/C++ STL/Java/JavaScript. Students solve real-world problems where they must use an optimal DS to solve a computational problem at hand.

Key Intended Learning Outcomes:

  • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Data structures

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should implement Data structures

  • Propose appropriate solutions to complex and changing problems pertaining to different approach to Data structures applications

Teachers

Tetiana Filimonova
Tetiana Filimonova
Oleh Osadchuk
Oleh Osadchuk
Dmytro Mazokha
Dmytro Mazokha
Maksym Lyzohub
Maksym Lyzohub
Bohdan Horobets
Bohdan Horobets

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of Data Structures and their implementation
  • Critically assess the relevance of theories for business applications in the domain of technology
  • Develop a specialised knowledge of key strategies related to Data Structures and their usage in computer science
  • Critically evaluate diverse scholarly views on data structures
  • Acquire knowledge widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Autonomously gather material and organise it into coherent data structures
  • Apply data structures in a creative way to develop original, critical solutions to real world problems.
  • Apply an in-depth domain-specific knowledge and understanding of Data Structures
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation
  • Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation.
  • Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation
  • Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation
  • Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation
  • Act autonomously in identifying research problems and solutions related to Data Structures and their implementation
Mathematics for Computer Science
125 hours | 5 ECTS

About

Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.

This course covers discrete mathematics for computer science and engineering. Topics may include asymptotic notation and growth of functions; permutations and combinations; counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.

Students will be able to explain and apply the basic methods of discrete (noncontinuous) mathematics in computer science. They will be able to use these methods in subsequent courses in the design and analysis of algorithms, computability theory, software engineering, and computer systems. The focus of the course is real-world problems and applications often found in business and industry.

Besides, students will learn about different problem-solving strategies and when to use them will give a good start. Problem solving is a process. Most strategies provide steps that help you identify the problem and choose the best solution.

Building a toolbox of problem-solving strategies will improve problem solving skills. With practice, students will be able to recognize and choose among multiple strategies to find the most appropriate one to solve complex problems. The course will focus on developing problem-solving strategies such as abstraction, modularity, recursion, iteration, bisection, and exhaustive enumeration.

The course will also introduce arrays and some of their real-world applications, such as prefix sum, carry forward, subarrays, and 2-dimensional matrices. Examples will include industry-relevant problems and dive deeply into building their solutions with various approaches, recognizing each’s limitations (i.e when to use a data structure and when not to use a data structure).

Key Intended Learning Outcomes:

  • Assess, analyse, and criticise the various strategies for evaluating algorithmic cost arising in the context of computational problem-solving and handling matters arising in the context of structured data

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle evaluating algorithmic performance and solving problems with structured data

  • Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development

Teachers

Tetiana Filimonova
Tetiana Filimonova
Oleksandra Desiateryk
Oleksandra Desiateryk
Yurii Volodymyrovych Kuchma
Yurii Volodymyrovych Kuchma
Kateryna Kotsiubivska
Kateryna Kotsiubivska
Serhii Hladiholov
Serhii Hladiholov

Intended learning outcomes

Knowledge
  • Develop a critical understanding of discrete mathematics as a tool in software development
  • Critically assess the relevance of theories of recursivity and induction for business applications in the domain of computational problem-solving
  • Critically evaluate diverse scholarly views on the appropriateness of various mathematical approaches to software development problems
  • Develop a specialised knowledge of evaluating and describing algorithmic performance using tools from discrete mathematics
  • Acquire knowledge of various methods for optimizing algorithm design
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Apply an in-depth domain-specific knowledge and understanding of discrete mathematics to algorithmic designs
  • Creatively apply various programming methods to most efficiently implement state machines in algorithmic design
  • Autonomously gather material and organise it into a coherent presentation or essay
Competencies
  • Create synthetic contextualised discussions of key issues related to applications of discrete mathematics in computer science
  • Solve problems and be prepared to take leadership decisions related to applying discrete mathematics to optimizing algorithms
  • Act autonomously in identifying research problems and solutions related to the real-world application of discrete mathematics
  • Apply a professional and scholarly approach to research problems pertaining to the growth of functions
  • Efficiently manage interdisciplinary issues that arise in connection to permutations and combinations in algorithm design
  • Demonstrate self-direction in research and originality in solutions developed for solving problems related to discrete probability
Web Design
125 hours | 5 ECTS

About

This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.

Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.

Key Intended Learning Outcomes:

  • Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.

  • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.

  • Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.

Teachers

Mariia Rudenko
Mariia Rudenko
Anna Kutova
Anna Kutova
Yevheniia Ilieva
Yevheniia Ilieva
Ivanna Kovalenko
Ivanna Kovalenko
Mykhailo Guba
Mykhailo Guba

Intended learning outcomes

Knowledge
  • Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
  • Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
  • Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
  • Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
  • Comprehend web standards, cross-browser compatibility, and validation techniques.
  • Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
  • Assess the principles of organising and structuring information for effective website navigation and user experience
  • Understand the concepts and techniques of responsive web design.
  • Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
Skills
  • Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
  • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
  • Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
  • Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
  • Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
  • Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
  • Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
  • Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
  • Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
Competencies
  • Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
  • Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
  • Optimise website assets, reduce load times, and improve overall website performance.
  • Create websites that provide optimal user experiences across a range of devices.
  • Apply accessibility techniques to ensure equal access to information and functionality.
  • Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
UX/UI Design
125 hours | 5 ECTS

About

User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.

Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.

The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.

By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.

Teachers

Mariia Rudenko
Mariia Rudenko
Anna Kutova
Anna Kutova
Viktoriia Komar
Viktoriia Komar
Yevheniia Ilieva
Yevheniia Ilieva
Ivanna Kovalenko
Ivanna Kovalenko

Intended learning outcomes

Knowledge
  • Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
  • Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
  • Gain a deep understanding of the design thinking process and its application in solving complex design problems
  • Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
  • Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
Skills
  • Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
  • Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
  • Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
  • Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
  • Apply knowledge of information architecture principles to structure and organize digital content effectively
Competencies
  • Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
  • Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
  • Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
  • Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
  • Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
Web Design
125 hours | 5 ECTS

About

This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.

Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.

Key Intended Learning Outcomes:

  • Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.

  • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.

  • Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.

Teachers

Mariia Rudenko
Mariia Rudenko
Anna Kutova
Anna Kutova
Yevheniia Ilieva
Yevheniia Ilieva
Ivanna Kovalenko
Ivanna Kovalenko
Mykhailo Guba
Mykhailo Guba

Intended learning outcomes

Knowledge
  • Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
  • Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
  • Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
  • Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
  • Comprehend web standards, cross-browser compatibility, and validation techniques.
  • Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
  • Assess the principles of organising and structuring information for effective website navigation and user experience
  • Understand the concepts and techniques of responsive web design.
  • Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
Skills
  • Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
  • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
  • Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
  • Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
  • Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
  • Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
  • Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
  • Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
  • Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
Competencies
  • Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
  • Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
  • Optimise website assets, reduce load times, and improve overall website performance.
  • Create websites that provide optimal user experiences across a range of devices.
  • Apply accessibility techniques to ensure equal access to information and functionality.
  • Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
Relational Databases
125 hours | 5 ECTS

About

This is a core and foundational course which aims to equip the student with the ability to model, design, implement and query relational database systems for real-world data storage & processing needs. Students would start with diagrammatic tools (ER-diagram) to map a real world data storage problem into entities, relationships and keys. Then, they learn to translate the ER-diagram into a relational model with tables. SQL is then introduced as a de facto tool to create, modify, append, delete, query and manipulate data in a relational database. Due to SQL’s popularity, the course spends considerable time building the ability to write optimized and complex queries for various data manipulation tasks. The module exposes students to various real world SQL examples to build solid practical knowledge. Students then move on to understanding various trade-offs in modern relational databases like the ones between storage space and latency. Designing a database would need a solid understanding of normal forms to minimize data duplication, indexing for speedup and flattening tables to avoid complex joins in low-latency environments. These real-world database design strategies are discussed with practical examples from various domains. Most of this course uses the open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.

Key Intended Learning Outcomes:

  • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases

  • Propose appropriate solutions to complex and changing problems pertaining to Relational Databases

Teachers

Volodymyr Barvinok
Volodymyr Barvinok
Aliiev-Lomach Maksym Olexandrovich
Aliiev-Lomach Maksym Olexandrovich
Dmytro Mazokha
Dmytro Mazokha
Yurii Volodymyrovych Kuchma
Yurii Volodymyrovych Kuchma
Oleksii Serdiukov
Oleksii Serdiukov

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on relational databases
  • Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
  • Develop a specialised knowledge of key strategies related to Relational Databases
  • Critically assess the relevance of theories for business applications in the domain of technology
  • Develop a critical knowledge of relational databases
Skills
  • Apply an in-depth domain-specific knowledge and understanding to Relational Databases
  • Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
  • Autonomously gather material and organise it into a coherent presentation or essay
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to Relational Databases
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
  • Create synthetic contextualised discussions of key issues related to Relational Databases
  • Act autonomously in identifying research problems and solutions related to Relational Databases
  • Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
  • Demonstrate self-direction in research and originality in solutions developed for Relational Databases
Back End Development
125 hours | 5 ECTS

About

This is a foundational course on building server-side (or backend) applications using popular JavaScript runtime environments like Node.js. Students will learn event driven programming for building scalable backend for web applications. The module teaches various aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST APIs. Most of these concepts would be covered in a hands-on manner with real world examples and applications built from scratch using Node.js on Linux servers. This course also provides an introduction to Linux server administration and scripting with special focus on web-development and networking. Students learn to use Linux monitoring tools (like Monit) to track the health of the servers. The module also provides an introduction to Express.js which is a popular light-weight framework for Node.js applications. Given the practical nature of this course, this would involve building actual website backends via assignments/projects for ecommerce, online learning and/or photo-sharing.

Key Intended Learning Outcomes:

  • Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development

  • Propose appropriate solutions to complex and changing problems pertaining to Back End Development

Teachers

Yevhen Khimenko
Yevhen Khimenko
Bohdan Liamzin
Bohdan Liamzin
Andrii Kyryrlenko
Andrii Kyryrlenko
Ivan Melnychuk
Ivan Melnychuk
Yurii Volodymyrovych Kuchma
Yurii Volodymyrovych Kuchma

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to Back End Development
  • Critically evaluate diverse scholarly views on Back End Development
  • Critically assess the relevance of theories for business applications in the domain of technology
  • Develop a critical knowledge of Back End Development
  • Acquire knowledge of key aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST
Skills
  • Creatively apply Back End Development tools to develop critical and original solutions for computational problems
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Apply an in-depth domain-specific knowledge and understanding to Back End Development applications
  • Autonomously gather material and organise it into coherent problem sets or presentations
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to Back End Development
  • Create synthetic contextualised discussions of key issues related to Back End Development
  • Demonstrate self-direction in research and originality in solutions developed for Back End Development
  • Efficiently manage interdisciplinary issues that arise in connection to Back End Development
  • Act autonomously in identifying research problems and solutions related to Back End Development
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
Product Management for Software Engineers
125 hours | 5 ECTS

About

Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, who make sure that evolving customer needs, and market trends are observed and converted into delightful solutions which help businesses get its outcomes.

In this course, students will get a fundamental understanding of product management practices.

This will give them a comprehensive view of the complete product management life cycle.

Key Intended Learning Outcomes:

  • Assess, analyze, and criticize the various strategies for improving a product after launch

  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement

  • Propose appropriate solutions to complex and changing problems of product success or failure  in real-world engineering and science contexts

Teachers

Nastya Yermolaieva
Nastya Yermolaieva
Artem Savchenko
Artem Savchenko
Anton Chornyi
Anton Chornyi
Yuliia Oliinyk
Yuliia Oliinyk

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
  • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
  • Critically assess the relevance of theories of user behaviour for product development
  • Develop a critical understanding of product design and development
  • Critically evaluate diverse scholarly views on assessing user behaviours
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Autonomously gather material and organise it into a coherent presentation or essay
  • Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
  • Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business
Competencies
  • Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
  • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
  • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
  • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
  • Solve problems and be prepared to take leadership decisions related to developing data-informed business cases about bringing products to market and iterating upon them.
  • Act autonomously in identifying research problems and solutions related to product analytics
Career Strategies and Soft Skills for IT Professionals
125 hours | 5 ECTS

About

This course is designed to equip IT professionals with the soft skills and career strategies required for success in the technology industry. The course is project-based and covers a range of topics such as communication skills, teamwork, time management, leadership, networking, and career development.

The course covers the entire lifecycle of a technology project, from requirement gathering to delivery and maintenance. Students will learn how to communicate effectively with stakeholders, manage their time efficiently, lead a team, and collaborate effectively in a team environment.

The course also covers aspects of career development, such as networking and building professional relationships, creating a personal brand, and developing a career plan. Students will learn how to identify their strengths and weaknesses, and how to leverage their skills and experience to advance their careers in the technology industry.

Key Intended Learning Outcomes:

  • Develop and demonstrate effective communication skills.

  • Collaborate effectively in a team environment.

  • Develop and demonstrate leadership skills.

  • Build and maintain professional relationships.

  • Develop and execute a career plan.

Teachers

Roman Cheliadinov
Roman Cheliadinov
Anastasiia Izotova
Anastasiia Izotova
Rustam Aslanov Heraevich
Rustam Aslanov Heraevich
Anton Chornyi
Anton Chornyi
Iryna Liashenko
Iryna Liashenko

Intended learning outcomes

Knowledge
    Skills
      Competencies
        Advanced Javascript
        125 hours | 5 ECTS

        About

        This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.

        The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.

        The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.

        Key Intended Learning Outcomes:

        • Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization

        • Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code

        • Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques

        • Develop asynchronous functions and handle errors effectively for CRUD operations

        Teachers

        Hryhorii Chernysh
        Hryhorii Chernysh
        Mykola Myroshnychenko
        Mykola Myroshnychenko
        Repin Oleksii Viktorovich
        Repin Oleksii Viktorovich
        Oleksii Simak
        Oleksii Simak
        Olexander Repeta
        Olexander Repeta

        Intended learning outcomes

        Knowledge
        • Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
        • Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
        • Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
        • Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
        • Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
        Skills
        • Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
        • Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
        • Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
        • Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
        • Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
        Competencies
        • Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
        • Apply strategies to optimise the performance of JavaScript code and web applications.
        • Develop asynchronous functions and handle errors effectively for CRUD operations.
        • Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
        • Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
        Front End Development
        125 hours | 5 ECTS

        About

        This course builds upon the introductory JavaScript course to acquaint students of popular and modern frameworks to build the front end. We focus on one of the most popular and advanced frameworks/libraries in use – React.js. Students learn various components and data flow to learn to architect real world front end using React.js. This would be achieved via multiple code examples and code-walkthroughs from scratch. We would also dive into React Native which is a cross platform Framework to build native mobile and smart-TV apps using JavaScript. This helps students to build applications for various platforms using only JavaScript.

        Key Intended Learning Outcomes:

        • Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications

        • Propose appropriate solutions to complex and changing problems pertaining to front end development

        Teachers

        Serhii Dykyi
        Serhii Dykyi
        Yevhen Khimenko
        Yevhen Khimenko
        Aliiev-Lomach Maksym Olexandrovich
        Aliiev-Lomach Maksym Olexandrovich
        Hryhorii Chernysh
        Hryhorii Chernysh
        Ivan Melnychuk
        Ivan Melnychuk

        Intended learning outcomes

        Knowledge
        • Develop a specialised knowledge of key strategies related to front end development
        • Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
        • Critically evaluate diverse scholarly views on front end development
        • Develop a critical knowledge of front end developmen
        • Critically assess the relevance of theories for business applications in the domain of technology
        Skills
        • Autonomously gather material and organise it into coherent problem sets or presentations
        • Apply an in-depth domain-specific knowledge and understanding to front end development solutions
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Creatively apply front end development applications to develop critical and original solutions for computational problems
        Competencies
        • Efficiently manage interdisciplinary issues that arise in connection to front end development
        • Create synthetic contextualised discussions of key issues related to front end development
        • Demonstrate self-direction in research and originality in solutions developed for front end development
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
        • Apply a professional and scholarly approach to research problems pertaining to front end development
        • Act autonomously in identifying research problems and solutions related to front end development
        Foundations of Cloud Computing
        125 hours | 5 ECTS

        About

        This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

        Teachers

        Serhii Reshetniak
        Serhii Reshetniak
        Rodion Prokopenko
        Rodion Prokopenko
        Maksym Lyzohub
        Maksym Lyzohub
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma
        Yurii Fedeiko
        Yurii Fedeiko

        Intended learning outcomes

        Knowledge
        • Acquire knowledge of virtualization and how virtualized compute instances are created and configured
        • Develop a specialised knowledge of key strategies related to cloud computing
        • Develop a critical knowledge of cloud computing
        • Critically assess the relevance of theories for business applications in the domain of technology
        • Critically evaluate diverse scholarly views on cloud computing
        Skills
        • Creatively apply cloud computing applications to develop critical and original solutions for computational problems
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Apply an in-depth domain-specific knowledge and understanding to cloud computing services
        • Autonomously gather material and organise it into coherent problems sets or presentations
        Competencies
        • Act autonomously in identifying research problems and solutions related to cloud computing
        • Create synthetic contextualised discussions of key issues related to cloud computing
        • Demonstrate self-direction in research and originality in solutions developed for cloud computing
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of cloud computing
        • Apply a professional and scholarly approach to research problems pertaining to cloud computing
        • Efficiently manage interdisciplinary issues that arise in connection to cloud computing
        Mobile App Design and Development
        125 hours | 5 ECTS

        About

        Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.

        Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.

        Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.

        In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.

        Teachers

        KRISTINA MALITOVSKA
        KRISTINA MALITOVSKA
        Maksym Harmash
        Maksym Harmash
        Rafael Mamedov
        Rafael Mamedov
        Mykhailo Velychkevych
        Mykhailo Velychkevych
        Yevheniia Ilieva
        Yevheniia Ilieva

        Intended learning outcomes

        Knowledge
        • Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
        • Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
        • Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
        • Gain knowledge of security and performance considerations specific to mobile app development
        • Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
        Skills
        • Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
        • Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
        • Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
        • Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
        • Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
        Competencies
        • Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
        • Gain proficiency in integrating mobile apps with backend services and API
        • Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
        • Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
        • Apply the principles of cross-platform mobile app design and development with frameworks like React Native
        Software Development & Quality Assurance
        125 hours | 5 ECTS

        About

        This course is designed to provide a comprehensive understanding of Quality Assurance (QA) in software development. The course will cover the fundamental principles of testing and the different types of testing that are conducted at various levels of the software development life cycle. Students will also learn about the different testing techniques used in QA, such as black box, white box, and experience-based testing.

        The course will also introduce students to various testing tools and methodologies that are commonly used in industry, including test management tools, SQL databases, Postman, and mobile testing. Students will learn about web technologies and the client-server architecture, as well as front-end and back-end development. The course will cover the basics of HTML/CSS, modern application architecture, and working with command-line tools like CI/CD and Git.

        Throughout the course, students will develop a solid understanding of QA and its role in software development. They will learn how to develop test documentation and will gain practical experience in implementing various testing strategies. They will also learn how to analyze and critique different QA methodologies and propose appropriate solutions to complex and changing problems in the context of data structures. Students will be able to apply their understanding of web technologies and modern application architecture to design and test web applications, and will be well-equipped to pursue careers in software development or QA.

        Teachers

        Yevheniia Havadziuk
        Yevheniia Havadziuk
        Hryhorii Chernysh
        Hryhorii Chernysh
        Yuliia Syvonenko
        Yuliia Syvonenko
        Oleh Lomazhuk
        Oleh Lomazhuk
        Denys Neplokhov
        Denys Neplokhov

        Intended learning outcomes

        Knowledge
        • Develop knowledge of test design and execution techniques, including test case design, test script development, and test execution planning.
        • Develop a comprehensive knowledge and understanding of software testing concepts, techniques, and methodologies, including for example functional testing, performance testing, security testing, and usability testing
        • Learn how to interpret and present quality data effectively through reports, dashboards, and visualizations
        • Acquire in-depth knowledge of software quality assurance principles, best practices, and industry standards
        • Assess how to measure and evaluate software quality using relevant metrics, such as defect density, test coverage, and code complexity
        • Acquire knowledge of test management tools, test automation frameworks, bug tracking systems, and performance testing tools
        Skills
        • Apply various testing techniques, such as black-box testing, white-box testing, and regression testing, to verify software functionality, performance, and security.
        • Apply knowledge of troubleshooting and debugging techniques to identify the root causes of software defects.
        • Develop the ability to select and configure appropriate test automation frameworks and tools, design and implement automated test scripts, and execute automated test suites to increase testing efficiency and coverage.
        • Analyze and interpret test results and reports to identify software defects, inconsistencies, and areas for improvement
        • Demonstrate the ability to adapt QA processes to iterative development cycles, collaborate with cross-functional teams, participate in sprint planning, and ensure quality throughout continuous integration and continuous delivery (CI/CD) pipelines
        • Apply understanding of web technologies and modern application architecture to design and test web applications
        Competencies
        • Develop and implement effective test documentation for software development project
        • Acquire proficiency in using defect tracking tools, categorizing defects, and collaborating with development teams for timely resolution.
        • Comprehend the role of QA in iterative development cycles, continuous integration, and continuous delivery
        • Gain proficiency in applying industry best practices and standards to ensure the quality, reliability, and effectiveness of software applications
        • Acquire proficiency in collaborating with cross-functional teams, participating in sprint planning, and ensuring quality throughout rapid release cycles
        • Develop skills in selecting, implementing, and maintaining appropriate test automation frameworks and tools
        • Utilize various testing tools and technologies to design, implement, and manage QA processes
        JavaScript
        125 hours | 5 ECTS

        About

        This course is a hands-on course covering JavaScript from basics to advanced concepts in detail using multiple examples. We start with basic programming concepts like variables, control statements, loops, classes and objects. Students also learn basic data-structures like Strings, Arrays and dates. Students also learn to debug our code and handle errors gracefully in code. We learn popular style guides and good coding practices to build readable and reusable code which is also highly performant. We then learn how web browsers execute JavaScript code using V8 engine as an example. We also cover concepts like JIT-compiling which helps JS code to run faster. This is followed by slightly advanced concepts like DOM, Async-functions, Web APIs and Fetch which are very popularly used in modern front end development. We learn how to optimize JavaScript code to run on both mobile apps and mobile browsers along with Desktop browsers and as desktop apps via ElectronJS. Most of this course would be covered via real world examples and by learning from JS code of popular open-source websites and libraries.

        Key Intended Learning Outcomes:

        • Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript

        • Propose appropriate solutions to complex and changing problems pertaining to JavaScript

        Teachers

        Yevhen Khimenko
        Yevhen Khimenko
        Hryhorii Chernysh
        Hryhorii Chernysh
        Ivan Melnychuk
        Ivan Melnychuk
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma
        Repin Oleksii Viktorovich
        Repin Oleksii Viktorovich

        Intended learning outcomes

        Knowledge
        • Develop a critical knowledge of JavaScript
        • Critically assess the relevance of theories for business applications in the domain of technology
        • Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant
        • Critically evaluate diverse scholarly views on JavaScript
        • Develop a specialised knowledge of key strategies related to JavaScript
        Skills
        • Autonomously gather material and organise into a coherent problem sets or presentations
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Apply an in-depth domain-specific knowledge and understanding to JavaScript tools
        • Creatively apply JavaScript concepts to develop critical and original solutions for computational problems
        Competencies
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript
        • Create synthetic contextualised discussions of key issues related to JavaScript
        • Apply a professional and scholarly approach to research problems pertaining to JavaScript
        • Efficiently manage interdisciplinary issues that arise in connection to JavaScript
        • Demonstrate self-direction in research and originality in solutions developed for JavaScript
        • Act autonomously in identifying research problems and solutions related to JavaScript
        Design and Analysis of Algorithms
        125 hours | 5 ECTS

        About

        This is a foundational and mandatory course which aims to build student's ability to apply various algorithmic design methods to provide an optimal solution to computational problems. This course starts with time and space complexity analysis of divide and conquer algorithms using recursion-tree based methods and Master’s theorem. Students would also learn about amortized time and space complexity analysis for randomized/probabilistic algorithms. Various algorithmic design strategies would be introduced via real world examples and problems. Students would learn when, where and how to optimally use Divide and Conquer, Dynamic programming (top-down and button-up), Greedy, Backtracking and Randomization strategies with examples. The module uses various practical examples from Array manipulations, Sorting, Searching, String manipulations, Tree & Graphs traversals, Graph path-finding, Spanning Trees etc., to introduce the above algorithmic strategies in action. Students would implement many of the above algorithmic design methods from scratch as part of the assignments. The module also introduces how some of these popular algorithms are readily available via popular libraries in various programming languages.

        Teachers

        Sergii Tovstonog
        Sergii Tovstonog
        Yevhenii Horbatiuk
        Yevhenii Horbatiuk
        Oleksandr Prydolob
        Oleksandr Prydolob

        Intended learning outcomes

        Knowledge
        • Acquire knowledge of various algorithmic design methods
        • Develop a critical knowledge of design and analysis of algorithms
        • Critically assess the relevance of theories for business applications in the domain of technology
        • Critically evaluate diverse scholarly views on design and analysis of algorithms
        • Develop a specialised knowledge of key strategies related to design and analysis of algorithms
        Skills
        • Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
        • Autonomously gather material and organise it into a coherent presentation or essay
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
        Competencies
        • Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms
        • Act autonomously in identifying research problems and solutions related to design and analysis of algorithms
        • Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
        • Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
        • Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
        Front End UI/UX Development
        125 hours | 5 ECTS

        About

        This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn how web browsers, mobile apps and web servers work. We then dive into each of the nitty gritty details of HTML5 to build webpages. We would start with simple web pages and then graduate to more complex layouts and features in HTML. We then go on to learn stylesheets based on CSS and how browsers interpret CSS files to render web pages. Once again, we use multiple real world example web pages to learn the internals of CSS. We learn popular good practices on writing responsive HTML and CSS code which is also interoperable on mobile browsers, apps and desktop apps. We would introduce students to building desktop apps using HTML and CSS using appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.

        Key Intended Learning Outcomes:

        • Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development

        • Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development

        Teachers

        Yevhen Khimenko
        Yevhen Khimenko
        Yuliia Syvonenko
        Yuliia Syvonenko
        Ivan Melnychuk
        Ivan Melnychuk
        Yaroslav Olegovich Kosytsia
        Yaroslav Olegovich Kosytsia
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma

        Intended learning outcomes

        Knowledge
        • Develop a critical knowledge of Front end UI/UX development
        • Critically evaluate diverse scholarly views on Front end UI/UX development
        • Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
        • Develop a specialised knowledge of key strategies related to Front end UI/UX development
        • Critically assess the relevance of theories for business applications in the domain of technology
        Skills
        • Apply an in-depth domain-specific knowledge and understanding to technology
        • Creatively apply Front end UI/UX development applications to develop critical and original solutions for computational problems
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Autonomously gather material and organise into a coherent problem sets or presentation
        Competencies
        • Act autonomously in identifying research problems and solutions related to Front end UI/UX development
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of Front end UI/UX development
        • Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development
        • Efficiently manage interdisciplinary issues that arise in connection to Front end UI/UX development
        • Create synthetic contextualised discussions of key issues related to Front end UI/UX development
        • Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
        Advanced Python Programming
        125 hours | 5 ECTS

        About

        Advanced Python Programming builds on introductory programming courses to illustrate object-oriented programming concepts, database design in Python, and the basics of Machine Learning with Python libraries. Students will learn how to solve problems in Python, develop design patterns in Python code, develop internet applications with Python, and collaborate with other students to implement projects. The course introduces advanced features such as decorators and generators, as well as a thorough exploration of the Python development environment.

        This course is designed to prepare students for an entry-level developer position.

        Teachers

        Vladyslav Babenko
        Vladyslav Babenko
        Okal Yurii
        Okal Yurii
        Valerii Dyshlevyi
        Valerii Dyshlevyi
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma
        Boldysheva Oleksandra
        Boldysheva Oleksandra

        Intended learning outcomes

        Knowledge
        • Critically evaluate diverse scholarly views on developing design patterns in Python
        • Develop a specialized knowledge of mathematically-oriented Python libraries such as NumPy, SciPy, and Pandas beyond an introductory level
        • Acquire knowledge of various methods for using Python libraries for machine learning
        • Develop a critical understanding of programming in Python for object-oriented design
        • Critically assess the relevance of theories of statistical analysis in the realm of software engineering
        Skills
        • Creatively apply various visual and written methods for developing meaningful visualisations of mathematical data sets
        • Autonomously gather material and organise it into a coherent presentation or essay
        • Apply an in-depth domain-specific knowledge and understanding of the importance of data analysis in business
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        Competencies
        • Demonstrate self-direction in research and originality in solutions developed for real-world problems using Python libraries and algorithms
        • Solve problems and be prepared to take leadership decisions related to the implementation of web applications in Python
        • Create synthetic contextualised discussions of key issues related to problem-solving in Python
        • Act autonomously in identifying research problems and solutions related to the developing in Python
        • Apply a professional and scholarly approach to research problems pertaining to object-oriented programming in Python
        • Efficiently manage interdisciplinary issues that arise in connection to translating mathematical ideas and solutions into code
        UX/UI Design
        125 hours | 5 ECTS

        About

        User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.

        Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.

        The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.

        By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.

        Teachers

        Mariia Rudenko
        Mariia Rudenko
        Anna Kutova
        Anna Kutova
        Viktoriia Komar
        Viktoriia Komar
        Yevheniia Ilieva
        Yevheniia Ilieva
        Ivanna Kovalenko
        Ivanna Kovalenko

        Intended learning outcomes

        Knowledge
        • Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
        • Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
        • Gain a deep understanding of the design thinking process and its application in solving complex design problems
        • Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
        • Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
        Skills
        • Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
        • Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
        • Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
        • Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
        • Apply knowledge of information architecture principles to structure and organize digital content effectively
        Competencies
        • Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
        • Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
        • Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
        • Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
        • Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
        Web Design
        125 hours | 5 ECTS

        About

        This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.

        Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.

        Key Intended Learning Outcomes:

        • Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.

        • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.

        • Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.

        Teachers

        Mariia Rudenko
        Mariia Rudenko
        Anna Kutova
        Anna Kutova
        Yevheniia Ilieva
        Yevheniia Ilieva
        Ivanna Kovalenko
        Ivanna Kovalenko
        Mykhailo Guba
        Mykhailo Guba

        Intended learning outcomes

        Knowledge
        • Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
        • Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
        • Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
        • Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
        • Comprehend web standards, cross-browser compatibility, and validation techniques.
        • Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
        • Assess the principles of organising and structuring information for effective website navigation and user experience
        • Understand the concepts and techniques of responsive web design.
        • Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
        Skills
        • Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
        • Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
        • Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
        • Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
        • Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
        • Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
        • Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
        • Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
        • Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
        Competencies
        • Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
        • Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
        • Optimise website assets, reduce load times, and improve overall website performance.
        • Create websites that provide optimal user experiences across a range of devices.
        • Apply accessibility techniques to ensure equal access to information and functionality.
        • Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
        Relational Databases
        125 hours | 5 ECTS

        About

        This is a core and foundational course which aims to equip the student with the ability to model, design, implement and query relational database systems for real-world data storage & processing needs. Students would start with diagrammatic tools (ER-diagram) to map a real world data storage problem into entities, relationships and keys. Then, they learn to translate the ER-diagram into a relational model with tables. SQL is then introduced as a de facto tool to create, modify, append, delete, query and manipulate data in a relational database. Due to SQL’s popularity, the course spends considerable time building the ability to write optimized and complex queries for various data manipulation tasks. The module exposes students to various real world SQL examples to build solid practical knowledge. Students then move on to understanding various trade-offs in modern relational databases like the ones between storage space and latency. Designing a database would need a solid understanding of normal forms to minimize data duplication, indexing for speedup and flattening tables to avoid complex joins in low-latency environments. These real-world database design strategies are discussed with practical examples from various domains. Most of this course uses the open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.

        Key Intended Learning Outcomes:

        • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases

        • Propose appropriate solutions to complex and changing problems pertaining to Relational Databases

        Teachers

        Volodymyr Barvinok
        Volodymyr Barvinok
        Aliiev-Lomach Maksym Olexandrovich
        Aliiev-Lomach Maksym Olexandrovich
        Dmytro Mazokha
        Dmytro Mazokha
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma
        Oleksii Serdiukov
        Oleksii Serdiukov

        Intended learning outcomes

        Knowledge
        • Critically evaluate diverse scholarly views on relational databases
        • Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
        • Develop a specialised knowledge of key strategies related to Relational Databases
        • Critically assess the relevance of theories for business applications in the domain of technology
        • Develop a critical knowledge of relational databases
        Skills
        • Apply an in-depth domain-specific knowledge and understanding to Relational Databases
        • Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
        • Autonomously gather material and organise it into a coherent presentation or essay
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        Competencies
        • Apply a professional and scholarly approach to research problems pertaining to Relational Databases
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
        • Create synthetic contextualised discussions of key issues related to Relational Databases
        • Act autonomously in identifying research problems and solutions related to Relational Databases
        • Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
        • Demonstrate self-direction in research and originality in solutions developed for Relational Databases
        Back End Development
        125 hours | 5 ECTS

        About

        This is a foundational course on building server-side (or backend) applications using popular JavaScript runtime environments like Node.js. Students will learn event driven programming for building scalable backend for web applications. The module teaches various aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST APIs. Most of these concepts would be covered in a hands-on manner with real world examples and applications built from scratch using Node.js on Linux servers. This course also provides an introduction to Linux server administration and scripting with special focus on web-development and networking. Students learn to use Linux monitoring tools (like Monit) to track the health of the servers. The module also provides an introduction to Express.js which is a popular light-weight framework for Node.js applications. Given the practical nature of this course, this would involve building actual website backends via assignments/projects for ecommerce, online learning and/or photo-sharing.

        Key Intended Learning Outcomes:

        • Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development

        • Propose appropriate solutions to complex and changing problems pertaining to Back End Development

        Teachers

        Yevhen Khimenko
        Yevhen Khimenko
        Bohdan Liamzin
        Bohdan Liamzin
        Andrii Kyryrlenko
        Andrii Kyryrlenko
        Ivan Melnychuk
        Ivan Melnychuk
        Yurii Volodymyrovych Kuchma
        Yurii Volodymyrovych Kuchma

        Intended learning outcomes

        Knowledge
        • Develop a specialised knowledge of key strategies related to Back End Development
        • Critically evaluate diverse scholarly views on Back End Development
        • Critically assess the relevance of theories for business applications in the domain of technology
        • Develop a critical knowledge of Back End Development
        • Acquire knowledge of key aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST
        Skills
        • Creatively apply Back End Development tools to develop critical and original solutions for computational problems
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Apply an in-depth domain-specific knowledge and understanding to Back End Development applications
        • Autonomously gather material and organise it into coherent problem sets or presentations
        Competencies
        • Apply a professional and scholarly approach to research problems pertaining to Back End Development
        • Create synthetic contextualised discussions of key issues related to Back End Development
        • Demonstrate self-direction in research and originality in solutions developed for Back End Development
        • Efficiently manage interdisciplinary issues that arise in connection to Back End Development
        • Act autonomously in identifying research problems and solutions related to Back End Development
        • Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
        Product Management for Software Engineers
        125 hours | 5 ECTS

        About

        Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, who make sure that evolving customer needs, and market trends are observed and converted into delightful solutions which help businesses get its outcomes.

        In this course, students will get a fundamental understanding of product management practices.

        This will give them a comprehensive view of the complete product management life cycle.

        Key Intended Learning Outcomes:

        • Assess, analyze, and criticize the various strategies for improving a product after launch

        • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement

        • Propose appropriate solutions to complex and changing problems of product success or failure  in real-world engineering and science contexts

        Teachers

        Nastya Yermolaieva
        Nastya Yermolaieva
        Artem Savchenko
        Artem Savchenko
        Anton Chornyi
        Anton Chornyi
        Yuliia Oliinyk
        Yuliia Oliinyk

        Intended learning outcomes

        Knowledge
        • Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
        • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
        • Critically assess the relevance of theories of user behaviour for product development
        • Develop a critical understanding of product design and development
        • Critically evaluate diverse scholarly views on assessing user behaviours
        Skills
        • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
        • Autonomously gather material and organise it into a coherent presentation or essay
        • Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
        • Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business
        Competencies
        • Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
        • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
        • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
        • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
        • Solve problems and be prepared to take leadership decisions related to developing data-informed business cases about bringing products to market and iterating upon them.
        • Act autonomously in identifying research problems and solutions related to product analytics
        Career Strategies and Soft Skills for IT Professionals
        125 hours | 5 ECTS

        About

        This course is designed to equip IT professionals with the soft skills and career strategies required for success in the technology industry. The course is project-based and covers a range of topics such as communication skills, teamwork, time management, leadership, networking, and career development.

        The course covers the entire lifecycle of a technology project, from requirement gathering to delivery and maintenance. Students will learn how to communicate effectively with stakeholders, manage their time efficiently, lead a team, and collaborate effectively in a team environment.

        The course also covers aspects of career development, such as networking and building professional relationships, creating a personal brand, and developing a career plan. Students will learn how to identify their strengths and weaknesses, and how to leverage their skills and experience to advance their careers in the technology industry.

        Key Intended Learning Outcomes:

        • Develop and demonstrate effective communication skills.

        • Collaborate effectively in a team environment.

        • Develop and demonstrate leadership skills.

        • Build and maintain professional relationships.

        • Develop and execute a career plan.

        Teachers

        Roman Cheliadinov
        Roman Cheliadinov
        Anastasiia Izotova
        Anastasiia Izotova
        Rustam Aslanov Heraevich
        Rustam Aslanov Heraevich
        Anton Chornyi
        Anton Chornyi
        Iryna Liashenko
        Iryna Liashenko

        Intended learning outcomes

        Knowledge
          Skills
            Competencies
              Advanced Javascript
              125 hours | 5 ECTS

              About

              This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.

              The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.

              The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.

              Key Intended Learning Outcomes:

              • Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization

              • Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code

              • Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques

              • Develop asynchronous functions and handle errors effectively for CRUD operations

              Teachers

              Hryhorii Chernysh
              Hryhorii Chernysh
              Mykola Myroshnychenko
              Mykola Myroshnychenko
              Repin Oleksii Viktorovich
              Repin Oleksii Viktorovich
              Oleksii Simak
              Oleksii Simak
              Olexander Repeta
              Olexander Repeta

              Intended learning outcomes

              Knowledge
              • Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
              • Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
              • Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
              • Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
              • Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
              Skills
              • Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
              • Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
              • Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
              • Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
              • Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
              Competencies
              • Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
              • Apply strategies to optimise the performance of JavaScript code and web applications.
              • Develop asynchronous functions and handle errors effectively for CRUD operations.
              • Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
              • Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
              Front End Development
              125 hours | 5 ECTS

              About

              This course builds upon the introductory JavaScript course to acquaint students of popular and modern frameworks to build the front end. We focus on one of the most popular and advanced frameworks/libraries in use – React.js. Students learn various components and data flow to learn to architect real world front end using React.js. This would be achieved via multiple code examples and code-walkthroughs from scratch. We would also dive into React Native which is a cross platform Framework to build native mobile and smart-TV apps using JavaScript. This helps students to build applications for various platforms using only JavaScript.

              Key Intended Learning Outcomes:

              • Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development

              • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications

              • Propose appropriate solutions to complex and changing problems pertaining to front end development

              Teachers

              Serhii Dykyi
              Serhii Dykyi
              Yevhen Khimenko
              Yevhen Khimenko
              Aliiev-Lomach Maksym Olexandrovich
              Aliiev-Lomach Maksym Olexandrovich
              Hryhorii Chernysh
              Hryhorii Chernysh
              Ivan Melnychuk
              Ivan Melnychuk

              Intended learning outcomes

              Knowledge
              • Develop a specialised knowledge of key strategies related to front end development
              • Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
              • Critically evaluate diverse scholarly views on front end development
              • Develop a critical knowledge of front end developmen
              • Critically assess the relevance of theories for business applications in the domain of technology
              Skills
              • Autonomously gather material and organise it into coherent problem sets or presentations
              • Apply an in-depth domain-specific knowledge and understanding to front end development solutions
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              • Creatively apply front end development applications to develop critical and original solutions for computational problems
              Competencies
              • Efficiently manage interdisciplinary issues that arise in connection to front end development
              • Create synthetic contextualised discussions of key issues related to front end development
              • Demonstrate self-direction in research and originality in solutions developed for front end development
              • Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
              • Apply a professional and scholarly approach to research problems pertaining to front end development
              • Act autonomously in identifying research problems and solutions related to front end development
              Foundations of Cloud Computing
              125 hours | 5 ECTS

              About

              This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

              Teachers

              Serhii Reshetniak
              Serhii Reshetniak
              Rodion Prokopenko
              Rodion Prokopenko
              Maksym Lyzohub
              Maksym Lyzohub
              Yurii Volodymyrovych Kuchma
              Yurii Volodymyrovych Kuchma
              Yurii Fedeiko
              Yurii Fedeiko

              Intended learning outcomes

              Knowledge
              • Acquire knowledge of virtualization and how virtualized compute instances are created and configured
              • Develop a specialised knowledge of key strategies related to cloud computing
              • Develop a critical knowledge of cloud computing
              • Critically assess the relevance of theories for business applications in the domain of technology
              • Critically evaluate diverse scholarly views on cloud computing
              Skills
              • Creatively apply cloud computing applications to develop critical and original solutions for computational problems
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              • Apply an in-depth domain-specific knowledge and understanding to cloud computing services
              • Autonomously gather material and organise it into coherent problems sets or presentations
              Competencies
              • Act autonomously in identifying research problems and solutions related to cloud computing
              • Create synthetic contextualised discussions of key issues related to cloud computing
              • Demonstrate self-direction in research and originality in solutions developed for cloud computing
              • Solve problems and be prepared to take leadership decisions related to the methods and principles of cloud computing
              • Apply a professional and scholarly approach to research problems pertaining to cloud computing
              • Efficiently manage interdisciplinary issues that arise in connection to cloud computing
              Mobile App Design and Development
              125 hours | 5 ECTS

              About

              Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.

              Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.

              Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.

              In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.

              Teachers

              KRISTINA MALITOVSKA
              KRISTINA MALITOVSKA
              Maksym Harmash
              Maksym Harmash
              Rafael Mamedov
              Rafael Mamedov
              Mykhailo Velychkevych
              Mykhailo Velychkevych
              Yevheniia Ilieva
              Yevheniia Ilieva

              Intended learning outcomes

              Knowledge
              • Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
              • Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
              • Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
              • Gain knowledge of security and performance considerations specific to mobile app development
              • Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
              Skills
              • Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
              • Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
              • Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
              • Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
              • Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
              Competencies
              • Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
              • Gain proficiency in integrating mobile apps with backend services and API
              • Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
              • Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
              • Apply the principles of cross-platform mobile app design and development with frameworks like React Native
              Software Development & Quality Assurance
              125 hours | 5 ECTS

              About

              This course is designed to provide a comprehensive understanding of Quality Assurance (QA) in software development. The course will cover the fundamental principles of testing and the different types of testing that are conducted at various levels of the software development life cycle. Students will also learn about the different testing techniques used in QA, such as black box, white box, and experience-based testing.

              The course will also introduce students to various testing tools and methodologies that are commonly used in industry, including test management tools, SQL databases, Postman, and mobile testing. Students will learn about web technologies and the client-server architecture, as well as front-end and back-end development. The course will cover the basics of HTML/CSS, modern application architecture, and working with command-line tools like CI/CD and Git.

              Throughout the course, students will develop a solid understanding of QA and its role in software development. They will learn how to develop test documentation and will gain practical experience in implementing various testing strategies. They will also learn how to analyze and critique different QA methodologies and propose appropriate solutions to complex and changing problems in the context of data structures. Students will be able to apply their understanding of web technologies and modern application architecture to design and test web applications, and will be well-equipped to pursue careers in software development or QA.

              Teachers

              Yevheniia Havadziuk
              Yevheniia Havadziuk
              Hryhorii Chernysh
              Hryhorii Chernysh
              Yuliia Syvonenko
              Yuliia Syvonenko
              Oleh Lomazhuk
              Oleh Lomazhuk
              Denys Neplokhov
              Denys Neplokhov

              Intended learning outcomes

              Knowledge
              • Develop knowledge of test design and execution techniques, including test case design, test script development, and test execution planning.
              • Develop a comprehensive knowledge and understanding of software testing concepts, techniques, and methodologies, including for example functional testing, performance testing, security testing, and usability testing
              • Learn how to interpret and present quality data effectively through reports, dashboards, and visualizations
              • Acquire in-depth knowledge of software quality assurance principles, best practices, and industry standards
              • Assess how to measure and evaluate software quality using relevant metrics, such as defect density, test coverage, and code complexity
              • Acquire knowledge of test management tools, test automation frameworks, bug tracking systems, and performance testing tools
              Skills
              • Apply various testing techniques, such as black-box testing, white-box testing, and regression testing, to verify software functionality, performance, and security.
              • Apply knowledge of troubleshooting and debugging techniques to identify the root causes of software defects.
              • Develop the ability to select and configure appropriate test automation frameworks and tools, design and implement automated test scripts, and execute automated test suites to increase testing efficiency and coverage.
              • Analyze and interpret test results and reports to identify software defects, inconsistencies, and areas for improvement
              • Demonstrate the ability to adapt QA processes to iterative development cycles, collaborate with cross-functional teams, participate in sprint planning, and ensure quality throughout continuous integration and continuous delivery (CI/CD) pipelines
              • Apply understanding of web technologies and modern application architecture to design and test web applications
              Competencies
              • Develop and implement effective test documentation for software development project
              • Acquire proficiency in using defect tracking tools, categorizing defects, and collaborating with development teams for timely resolution.
              • Comprehend the role of QA in iterative development cycles, continuous integration, and continuous delivery
              • Gain proficiency in applying industry best practices and standards to ensure the quality, reliability, and effectiveness of software applications
              • Acquire proficiency in collaborating with cross-functional teams, participating in sprint planning, and ensuring quality throughout rapid release cycles
              • Develop skills in selecting, implementing, and maintaining appropriate test automation frameworks and tools
              • Utilize various testing tools and technologies to design, implement, and manage QA processes
              JavaScript
              125 hours | 5 ECTS

              About

              This course is a hands-on course covering JavaScript from basics to advanced concepts in detail using multiple examples. We start with basic programming concepts like variables, control statements, loops, classes and objects. Students also learn basic data-structures like Strings, Arrays and dates. Students also learn to debug our code and handle errors gracefully in code. We learn popular style guides and good coding practices to build readable and reusable code which is also highly performant. We then learn how web browsers execute JavaScript code using V8 engine as an example. We also cover concepts like JIT-compiling which helps JS code to run faster. This is followed by slightly advanced concepts like DOM, Async-functions, Web APIs and Fetch which are very popularly used in modern front end development. We learn how to optimize JavaScript code to run on both mobile apps and mobile browsers along with Desktop browsers and as desktop apps via ElectronJS. Most of this course would be covered via real world examples and by learning from JS code of popular open-source websites and libraries.

              Key Intended Learning Outcomes:

              • Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript

              • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript

              • Propose appropriate solutions to complex and changing problems pertaining to JavaScript

              Teachers

              Yevhen Khimenko
              Yevhen Khimenko
              Hryhorii Chernysh
              Hryhorii Chernysh
              Ivan Melnychuk
              Ivan Melnychuk
              Yurii Volodymyrovych Kuchma
              Yurii Volodymyrovych Kuchma
              Repin Oleksii Viktorovich
              Repin Oleksii Viktorovich

              Intended learning outcomes

              Knowledge
              • Develop a critical knowledge of JavaScript
              • Critically assess the relevance of theories for business applications in the domain of technology
              • Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant
              • Critically evaluate diverse scholarly views on JavaScript
              • Develop a specialised knowledge of key strategies related to JavaScript
              Skills
              • Autonomously gather material and organise into a coherent problem sets or presentations
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              • Apply an in-depth domain-specific knowledge and understanding to JavaScript tools
              • Creatively apply JavaScript concepts to develop critical and original solutions for computational problems
              Competencies
              • Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript
              • Create synthetic contextualised discussions of key issues related to JavaScript
              • Apply a professional and scholarly approach to research problems pertaining to JavaScript
              • Efficiently manage interdisciplinary issues that arise in connection to JavaScript
              • Demonstrate self-direction in research and originality in solutions developed for JavaScript
              • Act autonomously in identifying research problems and solutions related to JavaScript
              Design and Analysis of Algorithms
              125 hours | 5 ECTS

              About

              This is a foundational and mandatory course which aims to build student's ability to apply various algorithmic design methods to provide an optimal solution to computational problems. This course starts with time and space complexity analysis of divide and conquer algorithms using recursion-tree based methods and Master’s theorem. Students would also learn about amortized time and space complexity analysis for randomized/probabilistic algorithms. Various algorithmic design strategies would be introduced via real world examples and problems. Students would learn when, where and how to optimally use Divide and Conquer, Dynamic programming (top-down and button-up), Greedy, Backtracking and Randomization strategies with examples. The module uses various practical examples from Array manipulations, Sorting, Searching, String manipulations, Tree & Graphs traversals, Graph path-finding, Spanning Trees etc., to introduce the above algorithmic strategies in action. Students would implement many of the above algorithmic design methods from scratch as part of the assignments. The module also introduces how some of these popular algorithms are readily available via popular libraries in various programming languages.

              Teachers

              Sergii Tovstonog
              Sergii Tovstonog
              Yevhenii Horbatiuk
              Yevhenii Horbatiuk
              Oleksandr Prydolob
              Oleksandr Prydolob

              Intended learning outcomes

              Knowledge
              • Acquire knowledge of various algorithmic design methods
              • Develop a critical knowledge of design and analysis of algorithms
              • Critically assess the relevance of theories for business applications in the domain of technology
              • Critically evaluate diverse scholarly views on design and analysis of algorithms
              • Develop a specialised knowledge of key strategies related to design and analysis of algorithms
              Skills
              • Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
              • Autonomously gather material and organise it into a coherent presentation or essay
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              • Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
              Competencies
              • Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
              • Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms
              • Act autonomously in identifying research problems and solutions related to design and analysis of algorithms
              • Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
              • Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
              • Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
              Applied Computer Science Project
              250 hours | 10 ECTS

              About

              This is a project-based course, with the aim of building the required skills for creating web-based software systems. The course covers the entire lifecycle of building software projects, from requirement gathering and scope definition from a product document, to designing the architecture of the system, and all the way to delivery and maintenance of the software system.

              The course covers both frontend, which is, building browser-based interfaces for users, using frontend web frameworks, and also building the backend, which is the server running an API to serve the information to the frontend, and running on an SQL or similar database management system for storage.

              All aspects of delivering a software project, including security, user authentication and authorisation, monitoring and analytics, and maintaining the project are covered. The course also covers the aspects of project maintenance, like using a version control system, setting up continuous integration and deployment pipelines and bug trackers.

              Teachers

              Tetiana Tarasovych
              Tetiana Tarasovych
              Yurii Volodymyrovych Kuchma
              Yurii Volodymyrovych Kuchma

              Intended learning outcomes

              Knowledge
              • Develop a critical understanding of modern computational applications
              • Critically evaluate diverse scholarly views on database management
              • Acquire knowledge of various methods for version control
              • Develop a specialised knowledge of key strategies for designing well-architected information management systems
              • Critically assess the relevance of theories of web security for cloud deployment
              Skills
              • Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
              • Autonomously gather material and organise it into a coherent presentation or essay
              • Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              Competencies
              • Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
              • Efficiently manage interdisciplinary issues that arise in connection to deploying a modern, web-based system.
              • Apply a professional and scholarly approach to research problems pertaining to real-world computational complexities
              • Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments
              • Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
              • Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software solutions.
              Front End UI/UX Development
              125 hours | 5 ECTS

              About

              This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn how web browsers, mobile apps and web servers work. We then dive into each of the nitty gritty details of HTML5 to build webpages. We would start with simple web pages and then graduate to more complex layouts and features in HTML. We then go on to learn stylesheets based on CSS and how browsers interpret CSS files to render web pages. Once again, we use multiple real world example web pages to learn the internals of CSS. We learn popular good practices on writing responsive HTML and CSS code which is also interoperable on mobile browsers, apps and desktop apps. We would introduce students to building desktop apps using HTML and CSS using appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.

              Key Intended Learning Outcomes:

              • Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development

              • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development

              • Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development

              Teachers

              Yevhen Khimenko
              Yevhen Khimenko
              Yuliia Syvonenko
              Yuliia Syvonenko
              Ivan Melnychuk
              Ivan Melnychuk
              Yaroslav Olegovich Kosytsia
              Yaroslav Olegovich Kosytsia
              Yurii Volodymyrovych Kuchma
              Yurii Volodymyrovych Kuchma

              Intended learning outcomes

              Knowledge
              • Develop a critical knowledge of Front end UI/UX development
              • Critically evaluate diverse scholarly views on Front end UI/UX development
              • Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
              • Develop a specialised knowledge of key strategies related to Front end UI/UX development
              • Critically assess the relevance of theories for business applications in the domain of technology
              Skills
              • Apply an in-depth domain-specific knowledge and understanding to technology
              • Creatively apply Front end UI/UX development applications to develop critical and original solutions for computational problems
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              • Autonomously gather material and organise into a coherent problem sets or presentation
              Competencies
              • Act autonomously in identifying research problems and solutions related to Front end UI/UX development
              • Solve problems and be prepared to take leadership decisions related to the methods and principles of Front end UI/UX development
              • Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development
              • Efficiently manage interdisciplinary issues that arise in connection to Front end UI/UX development
              • Create synthetic contextualised discussions of key issues related to Front end UI/UX development
              • Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
              Advanced Python Programming
              125 hours | 5 ECTS

              About

              Advanced Python Programming builds on introductory programming courses to illustrate object-oriented programming concepts, database design in Python, and the basics of Machine Learning with Python libraries. Students will learn how to solve problems in Python, develop design patterns in Python code, develop internet applications with Python, and collaborate with other students to implement projects. The course introduces advanced features such as decorators and generators, as well as a thorough exploration of the Python development environment.

              This course is designed to prepare students for an entry-level developer position.

              Teachers

              Vladyslav Babenko
              Vladyslav Babenko
              Okal Yurii
              Okal Yurii
              Valerii Dyshlevyi
              Valerii Dyshlevyi
              Yurii Volodymyrovych Kuchma
              Yurii Volodymyrovych Kuchma
              Boldysheva Oleksandra
              Boldysheva Oleksandra

              Intended learning outcomes

              Knowledge
              • Critically evaluate diverse scholarly views on developing design patterns in Python
              • Develop a specialized knowledge of mathematically-oriented Python libraries such as NumPy, SciPy, and Pandas beyond an introductory level
              • Acquire knowledge of various methods for using Python libraries for machine learning
              • Develop a critical understanding of programming in Python for object-oriented design
              • Critically assess the relevance of theories of statistical analysis in the realm of software engineering
              Skills
              • Creatively apply various visual and written methods for developing meaningful visualisations of mathematical data sets
              • Autonomously gather material and organise it into a coherent presentation or essay
              • Apply an in-depth domain-specific knowledge and understanding of the importance of data analysis in business
              • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
              Competencies
              • Demonstrate self-direction in research and originality in solutions developed for real-world problems using Python libraries and algorithms
              • Solve problems and be prepared to take leadership decisions related to the implementation of web applications in Python
              • Create synthetic contextualised discussions of key issues related to problem-solving in Python
              • Act autonomously in identifying research problems and solutions related to the developing in Python
              • Apply a professional and scholarly approach to research problems pertaining to object-oriented programming in Python
              • Efficiently manage interdisciplinary issues that arise in connection to translating mathematical ideas and solutions into code

              Entry Requirements

              Tuition Cost
              8,000 EUR
              Student education requirement
              Undergraduate (Bachelor’s)

              Application Process

              1

              Submit initial Application

              Complete the online application form with your personal information

              2

              Documentation Review

              Submit required transcripts, certificates, and supporting documents

              3

              Assessment

              Your application will be evaluated against program requirements

              4

              Interview

              Selected candidates may be invited for an interview

              5

              Decision

              Receive an admission decision

              6

              Enrollment

              Complete registration and prepare to begin your studies

              Ready to advance your education with a globally recognised degree?

              Previous
              Overview
              Next
              What you’ll learn