About
The course 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. Students can choose from a spectrum of courses to specialize in a specific sub-area of Computer Science like Artificial Intelligence and Machine Learning, Cloud Computing, Software Engineering, or Data Science, etc.
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. Under the guidance of the Academic Staff at Woolf, students may either select exclusively from one specialization track (in which case they will earn that specialization), or they may mix tracks (in which case they will finish without a specialization). 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
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/
How students have found success through Woolf
Course Structure
About
Teachers

Intended learning outcomes
- 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
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Data Structures and their implementation
- Critically evaluate diverse scholarly views on data structures
- Develop a specialised knowledge of key strategies related to Data Structures and their usage in computer science
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation
- Act autonomously in identifying research problems and solutions related to Data Structures and their implementation
- Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation
- Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation
- Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation
About
Teachers

Intended learning outcomes
- Critically evaluate diverse scholarly views on the appropriateness of various problem-solving strategies
- Develop a critical understanding of problem-solving strategies in computing
- Acquire knowledge of various methods for structuring data in arrays
- Critically assess the relevance of theories of problem-solving for business applications in the domain of software development
- Develop a specialised knowledge of key strategies related to structuring data
- 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 programming methods to develop critical and original solutions to computational problems
- Apply an in-depth domain-specific knowledge and understanding to problem solving
- Apply a professional and scholarly approach to research problems pertaining to data structures
- Create synthetic contextualised discussions of key issues related to problem- solving, and moving from algorithmic to heuristic problem-solving strategies.
- Solve problems and be prepared to take leadership decisions related to applying problem-solving heuristics
- Efficiently manage interdisciplinary issues that arise in connection to problem solving
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to data structures
- Act autonomously in identifying research problems and solutions related to arrays and their real-world applications
About
Teachers

Intended learning outcomes
- Critically evaluate diverse scholarly views on computational complexity
- Develop a critical understanding of a modern programming language such as Java or Python
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a specialised knowledge of key strategies related to Object-Oriented Programming
- Acquire knowledge of various methods for structuring data
- 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
- Apply an in-depth domain-specific knowledge and understanding to computer programming
- Creatively apply various programming methods to develop critical and original solutions to computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming
- Act autonomously in identifying research problems and solutions related to Object-Oriented programming
- Demonstrate self-direction in research and originality in solutions developed for modern programming languages
- Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays
- Apply a professional and scholarly approach to research problems pertaining to computational complexity
- Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented methods
About
Teachers

Intended learning outcomes
- 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
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- 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
- 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
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms
About
Teachers

Intended learning outcomes
- Develop a specialised knowledge of describing, analysing, and evaluating algorithmic performance in time and space
- Critically evaluate diverse scholarly views on the appropriateness of various algorithmic concepts to software development problems
- Develop a critical understanding of important algorithmic concepts and principles, such as greedy algorithms, dynamic programming, minimum spanning trees, and graph algorithms
- Critically assess the relevance of theories of algorithmic performance for business applications in the domain of software engineering
- Acquire knowledge of various methods for optimizing algorithm design
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of efficiency to algorithmic designs
- Creatively apply various programming methods to most efficiently design algorithms for specified time and space constraints
- Autonomously gather material and organise it into a coherent presentation or essay
- Act autonomously in identifying research problems and solutions related to the real-world application of common controls and data structures in high-level programming languages
- Create synthetic contextualised discussions of key issues related to the efficient construction of algorithms
- Apply a professional and scholarly approach to research problems pertaining to the comparative performance of algorithms
- Efficiently manage interdisciplinary issues that arise in connection to the performance of algorithms and data structures in time and space
- Solve problems and be prepared to take leadership decisions related to selecting the most appropriate algorithm for a software engineering problem
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to algorithmic design
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 three very popular frameworks/libraries in use: React.js, jQuery and AngularJS. We start with React.js, one of the most popular and advanced ones amongst the three. 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. jQuery is one of the oldest and most widely used JavaScript libraries, which students cover in detail. Students specifically focus on how jQuery can simplify event handling, AJAX, HTML DOM tree manipulation and create CSS animations. We also provide a hands-on introduction to AngularJS to architect model-view- controller (MVC) based dynamic web pages.
Teachers

Intended learning outcomes
- 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 development
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply front end development applications to develop critical and original solutions for computational problems
- 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
- Create synthetic contextualised discussions of key issues related to front end development
- Efficiently manage interdisciplinary issues that arise in connection to front end development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Act autonomously in identifying research problems and solutions related to front end development
- Demonstrate self-direction in research and originality in solutions developed for front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories of software design processes for business applications in the realm of software engineering
- Develop a specialised knowledge of Process Design Languages and flowchart methods for describing desired functions and behaviours
- Critically evaluate diverse scholarly views on the appropriateness of various approaches to converting high-level or architectural software design to low-level, component-oriented design
- Acquire knowledge of various methods for specifying the logical and functional design of a system
- Develop a critical understanding of software design and refinement processes
- Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level design
- 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
- Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes
- Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models
- Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents
- Create synthetic contextualised discussions of key issues related to specifying the internal logic of software
- Apply a professional and scholarly approach to research problems pertaining to logical and functional design of software components
- Demonstrate self-direction in research and originality in solutions developed for using Program Design Languages
- Act autonomously in identifying research problems and solutions related to refining software designs
About
Teachers

Intended learning outcomes
- 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 specialised knowledge of key strategies related to Back End Development
- 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
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
About
Teachers

Intended learning outcomes
- Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem
- Critically assess the relevance of theories of data modelling for efficient pipeline creation
- Develop a critical understanding of data engineering.
- Critically evaluate diverse scholarly views on best practices in developing data- intensive applications
- Acquire knowledge of various methods for warehousing data
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
- Create synthetic contextualised discussions of key issues related to the data engineering lifecycle.
- Act autonomously in identifying research problems and solutions related to developing for data at scale
- Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
- Solve problems and be prepared to take leadership decisions related to developing pipelines to handle massive datasets for engineering purposes.
- Demonstrate self-direction in research and originality in creating advanced SQL queries.
About
Teachers

Intended learning outcomes
- 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
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Critically assess the relevance of theories of user behaviour for product development
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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 solutio
- Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business
- Autonomously gather material and organise it into a coherent presentation or essay
- 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
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
- Act autonomously in identifying research problems and solutions related to product analytics.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
About
Teachers

Intended learning outcomes
- Develop a critical understanding of object-oriented analysis and design
- Critically assess the relevance of theories of reusable design for business applications in the domain of software engineering
- Critically evaluate diverse scholarly views on the appropriateness of various approaches to design patterns for object-oriented design
- Develop a specialised knowledge of modelling data, behaviour, and function in software
- Acquire knowledge of various methods for specifying modular elements in a software subsystem
- Apply an in-depth domain-specific knowledge and understanding of the importance of object-oriented design in software engineering
- 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 design patterns to most efficiently design software that meets specified criteria
- Create synthetic contextualised discussions of key issues related to Object- Oriented Analysis and Design
- Demonstrate self-direction in research and originality in solutions developed for designing reusable software elements
- Solve problems and be prepared to take leadership decisions related to developing design patterns to solve problems in software design
- Apply a professional and scholarly approach to research problems pertaining to building software with reusable elements
- Act autonomously in identifying research problems and solutions related to the modular, procedural software design
- Efficiently manage interdisciplinary issues that arise in connection to modelling data, behaviour, and function
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories of distributed system design for business applications in the realm of software engineering
- Acquire knowledge of various methods for optimising the tradeoffs between consistency and availability in the presence of partitions
- Develop a specialised knowledge of hashing and caching strategies in distributed systems
- Critically evaluate diverse scholarly views on containerisation as a system architecture strategy
- Develop a critical understanding of software architecture design
- 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 developing high-level system architecture designs
- Apply an in-depth domain-specific knowledge and understanding of the importance of scalability in software engineering
- Demonstrate self-direction in research and originality in solutions developed for search across distributed environments
- Efficiently manage interdisciplinary issues that arise in connection to micro services and containerisation
- Solve problems and be prepared to take leadership decisions related to designing distributed systems that can scale
- Apply a professional and scholarly approach to research problems pertaining to tradeoffs between consistency and availability when distributed systems are partitioned
- Create synthetic contextualised discussions of key issues related to designing system architecture that is capable of scaling
- Act autonomously in identifying research problems and solutions related to implementing SQL and NoSQL designs
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- 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
- 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
- Apply an in-depth domain-specific knowledge and understanding to technology
- Act autonomously in identifying research problems and solutions related to Front end UI/UX development
- Efficiently manage interdisciplinary issues that arise in connection 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 developmen
- Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
- Create synthetic contextualised discussions of key issues related to Front end UI/UX development
About
Teachers

Intended learning outcomes
- Critically evaluate diverse scholarly views on System Design
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of System Design
- Develop a specialised knowledge of key strategies related to System Design
- Acquire knowledge of popular data encoding schemes like XML and JSON
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply system design components to develop critical and original solutions for computational problems
- Apply an in-depth domain-specific knowledge and understanding to System Design solutions
- Apply a professional and scholarly approach to research problems pertaining to System Design
- Act autonomously in identifying research problems and solutions related to System Design
- Solve problems and be prepared to take leadership decisions related to the methods and principles of System Design
- Demonstrate self-direction in research and originality in solutions developed for System Design
- Create synthetic contextualised discussions of key issues related to System Design
- Efficiently manage interdisciplinary issues that arise in connection to System Design
About
Teachers

Intended learning outcomes
- Acquire knowledge of the pros and cons of popular UML design patterns
- Critically evaluate diverse scholarly views on design patterns
- Develop a specialised knowledge of key strategies related to design patterns
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of design patterns
- Apply an in-depth domain-specific knowledge and understanding to object- oriented design patterns
- Creatively utilize design patterns tools 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 it into coherent problem sets or presentations
- Demonstrate self-direction in research and originality in solutions developed for design patterns
- Create synthetic contextualised discussions of key issues related to design pattern
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design patterns
- Efficiently manage interdisciplinary issues that arise in connection to design patterns
- Act autonomously in identifying research problems and solutions related to design patterns
- Apply a professional and scholarly approach to research problems pertaining to design patterns
About
Teachers

Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- 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
- Develop a specialised knowledge of key strategies related to cloud computing
- 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
- Creatively apply cloud computing applications to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problems sets or presentations
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Demonstrate self-direction in research and originality in solutions developed for cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues related to cloud computing
- Solve problems and be prepared to take leadership decisions related to the methods and principles of cloud computing
About
Teachers

Intended learning outcomes
- resource management strategies in a cloud setup to ensure low costs and high availability
- critical evaluations of the architecture and design of load balancers and their role in most horizontally scalable web-applications
- specialised knowledge of key strategies related to advanced cloud computing
- use content delivery networks (CDNs) to deliver live streaming and website content fast using globally distributed servers and caching
- ability to autonomously gather material and organise it into coherent plan for solving problems related to advanced cloud computing
- develop critical and original solutions to solve real world engineering problems to emerging issues in cloud computing
- efficiently manage horizontally scalable web-applications
- understand the serverless computing model and how it is achieved by most cloud providers in order to configure complex cloud systems
- deploy advanced cloud computing systems, and track various key metrics, trigger alarms, detect anomalous behaviour and act upon them in near real-time
- Demonstrate self-direction, autonomy, and leadership in research and originality in solutions for complex cloud systems with many components and services
About
Advanced Applied Computer Science is a capstone project, an end-to-end deployable solution to a real-world computational problem that students build in the last phase of the programme. Its objective is to help students rigorously solve a technically challenging problem where they would apply all of the concepts, techniques and tools learned in the programme. Students typically pick a problem from their specialisation after discussing it with the course instructor(s). Students also have the option of working on a real-world problem in their company/organisation/institution. They can be mentored by an expert supervisor from their organisation along with an academic supervisor from Woolf. All external expert-supervisors and projects need to be approved by the instructor(s) to ensure that the project is technically challenging and the solution being built is rigorous and of high quality. Students start with identifying a technically challenging problem. Once approved by the instructor(s), they start the literature survey to read research papers and technical reports of prior related work. Then, they build the system design and write a design document to solve the problem. This would be followed by designing and implementing individual modules and testing them. This would be followed by deploying the solution and making it available to end users while satisfying the problem’s real-world constraints and objectives. Students then document their work into a detailed technical report
Teachers

Intended learning outcomes
- Critically evaluate diverse scholarly views on modern computational applications
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of an end-to-end deployable solution to a real-world computational problem
- Develop a specialised knowledge of key strategies related to modern computational applications
- Develop a critical knowledge of modern computational applications
- Autonomously gather material and organise it into 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 of modern day computational applications
- Creatively apply computational applications to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of modern computational applications
- Demonstrate self-direction in research and originality in solutions developed for robust and reliable systems using interacting modules
- Efficiently manage interdisciplinary issues that arise in connection to modern day computational methods and principles
- Apply a professional and scholarly approach to research problems pertaining to real-world modern computational complexities
- Create synthetic contextualised discussions of key issues related to real-world computational problems
- Act autonomously in identifying research problems and solutions related to modern computational tools and methods
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 three very popular frameworks/libraries in use: React.js, jQuery and AngularJS. We start with React.js, one of the most popular and advanced ones amongst the three. 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. jQuery is one of the oldest and most widely used JavaScript libraries, which students cover in detail. Students specifically focus on how jQuery can simplify event handling, AJAX, HTML DOM tree manipulation and create CSS animations. We also provide a hands-on introduction to AngularJS to architect model-view- controller (MVC) based dynamic web pages.
Teachers

Intended learning outcomes
- 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 development
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply front end development applications to develop critical and original solutions for computational problems
- 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
- Create synthetic contextualised discussions of key issues related to front end development
- Efficiently manage interdisciplinary issues that arise in connection to front end development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Act autonomously in identifying research problems and solutions related to front end development
- Demonstrate self-direction in research and originality in solutions developed for front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories of software design processes for business applications in the realm of software engineering
- Develop a specialised knowledge of Process Design Languages and flowchart methods for describing desired functions and behaviours
- Critically evaluate diverse scholarly views on the appropriateness of various approaches to converting high-level or architectural software design to low-level, component-oriented design
- Acquire knowledge of various methods for specifying the logical and functional design of a system
- Develop a critical understanding of software design and refinement processes
- Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level design
- 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
- Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes
- Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models
- Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents
- Create synthetic contextualised discussions of key issues related to specifying the internal logic of software
- Apply a professional and scholarly approach to research problems pertaining to logical and functional design of software components
- Demonstrate self-direction in research and originality in solutions developed for using Program Design Languages
- Act autonomously in identifying research problems and solutions related to refining software designs
About
Teachers

Intended learning outcomes
- 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 specialised knowledge of key strategies related to Back End Development
- 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
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
About
Teachers

Intended learning outcomes
- Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem
- Critically assess the relevance of theories of data modelling for efficient pipeline creation
- Develop a critical understanding of data engineering.
- Critically evaluate diverse scholarly views on best practices in developing data- intensive applications
- Acquire knowledge of various methods for warehousing data
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
- Create synthetic contextualised discussions of key issues related to the data engineering lifecycle.
- Act autonomously in identifying research problems and solutions related to developing for data at scale
- Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
- Solve problems and be prepared to take leadership decisions related to developing pipelines to handle massive datasets for engineering purposes.
- Demonstrate self-direction in research and originality in creating advanced SQL queries.
About
Teachers

Intended learning outcomes
- 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
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Critically assess the relevance of theories of user behaviour for product development
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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 solutio
- Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business
- Autonomously gather material and organise it into a coherent presentation or essay
- 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
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
- Act autonomously in identifying research problems and solutions related to product analytics.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
About
Teachers

Intended learning outcomes
- Develop a critical understanding of object-oriented analysis and design
- Critically assess the relevance of theories of reusable design for business applications in the domain of software engineering
- Critically evaluate diverse scholarly views on the appropriateness of various approaches to design patterns for object-oriented design
- Develop a specialised knowledge of modelling data, behaviour, and function in software
- Acquire knowledge of various methods for specifying modular elements in a software subsystem
- Apply an in-depth domain-specific knowledge and understanding of the importance of object-oriented design in software engineering
- 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 design patterns to most efficiently design software that meets specified criteria
- Create synthetic contextualised discussions of key issues related to Object- Oriented Analysis and Design
- Demonstrate self-direction in research and originality in solutions developed for designing reusable software elements
- Solve problems and be prepared to take leadership decisions related to developing design patterns to solve problems in software design
- Apply a professional and scholarly approach to research problems pertaining to building software with reusable elements
- Act autonomously in identifying research problems and solutions related to the modular, procedural software design
- Efficiently manage interdisciplinary issues that arise in connection to modelling data, behaviour, and function
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories of distributed system design for business applications in the realm of software engineering
- Acquire knowledge of various methods for optimising the tradeoffs between consistency and availability in the presence of partitions
- Develop a specialised knowledge of hashing and caching strategies in distributed systems
- Critically evaluate diverse scholarly views on containerisation as a system architecture strategy
- Develop a critical understanding of software architecture design
- 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 developing high-level system architecture designs
- Apply an in-depth domain-specific knowledge and understanding of the importance of scalability in software engineering
- Demonstrate self-direction in research and originality in solutions developed for search across distributed environments
- Efficiently manage interdisciplinary issues that arise in connection to micro services and containerisation
- Solve problems and be prepared to take leadership decisions related to designing distributed systems that can scale
- Apply a professional and scholarly approach to research problems pertaining to tradeoffs between consistency and availability when distributed systems are partitioned
- Create synthetic contextualised discussions of key issues related to designing system architecture that is capable of scaling
- Act autonomously in identifying research problems and solutions related to implementing SQL and NoSQL designs
About
Teachers

Intended learning outcomes
- 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
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- 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
- 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
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms
About
Teachers

Intended learning outcomes
- Develop a specialised knowledge of describing, analysing, and evaluating algorithmic performance in time and space
- Critically evaluate diverse scholarly views on the appropriateness of various algorithmic concepts to software development problems
- Develop a critical understanding of important algorithmic concepts and principles, such as greedy algorithms, dynamic programming, minimum spanning trees, and graph algorithms
- Critically assess the relevance of theories of algorithmic performance for business applications in the domain of software engineering
- Acquire knowledge of various methods for optimizing algorithm design
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of efficiency to algorithmic designs
- Creatively apply various programming methods to most efficiently design algorithms for specified time and space constraints
- Autonomously gather material and organise it into a coherent presentation or essay
- Act autonomously in identifying research problems and solutions related to the real-world application of common controls and data structures in high-level programming languages
- Create synthetic contextualised discussions of key issues related to the efficient construction of algorithms
- Apply a professional and scholarly approach to research problems pertaining to the comparative performance of algorithms
- Efficiently manage interdisciplinary issues that arise in connection to the performance of algorithms and data structures in time and space
- Solve problems and be prepared to take leadership decisions related to selecting the most appropriate algorithm for a software engineering problem
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to algorithmic design
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 three very popular frameworks/libraries in use: React.js, jQuery and AngularJS. We start with React.js, one of the most popular and advanced ones amongst the three. 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. jQuery is one of the oldest and most widely used JavaScript libraries, which students cover in detail. Students specifically focus on how jQuery can simplify event handling, AJAX, HTML DOM tree manipulation and create CSS animations. We also provide a hands-on introduction to AngularJS to architect model-view- controller (MVC) based dynamic web pages.
Teachers

Intended learning outcomes
- 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 development
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply front end development applications to develop critical and original solutions for computational problems
- 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
- Create synthetic contextualised discussions of key issues related to front end development
- Efficiently manage interdisciplinary issues that arise in connection to front end development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Act autonomously in identifying research problems and solutions related to front end development
- Demonstrate self-direction in research and originality in solutions developed for front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
About
Teachers

Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- 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
- 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
- Apply an in-depth domain-specific knowledge and understanding to technology
- Act autonomously in identifying research problems and solutions related to Front end UI/UX development
- Efficiently manage interdisciplinary issues that arise in connection 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 developmen
- Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
- Create synthetic contextualised discussions of key issues related to Front end UI/UX development
About
Teachers

Intended learning outcomes
- 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 specialised knowledge of key strategies related to Back End Development
- 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
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
About
Teachers

Intended learning outcomes
- Critically evaluate diverse scholarly views on System Design
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of System Design
- Develop a specialised knowledge of key strategies related to System Design
- Acquire knowledge of popular data encoding schemes like XML and JSON
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply system design components to develop critical and original solutions for computational problems
- Apply an in-depth domain-specific knowledge and understanding to System Design solutions
- Apply a professional and scholarly approach to research problems pertaining to System Design
- Act autonomously in identifying research problems and solutions related to System Design
- Solve problems and be prepared to take leadership decisions related to the methods and principles of System Design
- Demonstrate self-direction in research and originality in solutions developed for System Design
- Create synthetic contextualised discussions of key issues related to System Design
- Efficiently manage interdisciplinary issues that arise in connection to System Design
About
Teachers

Intended learning outcomes
- Acquire knowledge of the pros and cons of popular UML design patterns
- Critically evaluate diverse scholarly views on design patterns
- Develop a specialised knowledge of key strategies related to design patterns
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of design patterns
- Apply an in-depth domain-specific knowledge and understanding to object- oriented design patterns
- Creatively utilize design patterns tools 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 it into coherent problem sets or presentations
- Demonstrate self-direction in research and originality in solutions developed for design patterns
- Create synthetic contextualised discussions of key issues related to design pattern
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design patterns
- Efficiently manage interdisciplinary issues that arise in connection to design patterns
- Act autonomously in identifying research problems and solutions related to design patterns
- Apply a professional and scholarly approach to research problems pertaining to design patterns
About
Teachers

Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- 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
- Develop a specialised knowledge of key strategies related to cloud computing
- 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
- Creatively apply cloud computing applications to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problems sets or presentations
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Demonstrate self-direction in research and originality in solutions developed for cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues related to cloud computing
- Solve problems and be prepared to take leadership decisions related to the methods and principles of cloud computing
About
Teachers

Intended learning outcomes
- resource management strategies in a cloud setup to ensure low costs and high availability
- critical evaluations of the architecture and design of load balancers and their role in most horizontally scalable web-applications
- specialised knowledge of key strategies related to advanced cloud computing
- use content delivery networks (CDNs) to deliver live streaming and website content fast using globally distributed servers and caching
- ability to autonomously gather material and organise it into coherent plan for solving problems related to advanced cloud computing
- develop critical and original solutions to solve real world engineering problems to emerging issues in cloud computing
- efficiently manage horizontally scalable web-applications
- understand the serverless computing model and how it is achieved by most cloud providers in order to configure complex cloud systems
- deploy advanced cloud computing systems, and track various key metrics, trigger alarms, detect anomalous behaviour and act upon them in near real-time
- Demonstrate self-direction, autonomy, and leadership in research and originality in solutions for complex cloud systems with many components and services
About
Teachers

Intended learning outcomes
- 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
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- 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
- 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
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms
About
Teachers

Intended learning outcomes
- Develop a specialised knowledge of describing, analysing, and evaluating algorithmic performance in time and space
- Critically evaluate diverse scholarly views on the appropriateness of various algorithmic concepts to software development problems
- Develop a critical understanding of important algorithmic concepts and principles, such as greedy algorithms, dynamic programming, minimum spanning trees, and graph algorithms
- Critically assess the relevance of theories of algorithmic performance for business applications in the domain of software engineering
- Acquire knowledge of various methods for optimizing algorithm design
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of efficiency to algorithmic designs
- Creatively apply various programming methods to most efficiently design algorithms for specified time and space constraints
- Autonomously gather material and organise it into a coherent presentation or essay
- Act autonomously in identifying research problems and solutions related to the real-world application of common controls and data structures in high-level programming languages
- Create synthetic contextualised discussions of key issues related to the efficient construction of algorithms
- Apply a professional and scholarly approach to research problems pertaining to the comparative performance of algorithms
- Efficiently manage interdisciplinary issues that arise in connection to the performance of algorithms and data structures in time and space
- Solve problems and be prepared to take leadership decisions related to selecting the most appropriate algorithm for a software engineering problem
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to algorithmic design
Entry Requirements
Application Process
Submit initial Application
Complete the online application form with your personal information
Documentation Review
Submit required transcripts, certificates, and supporting documents
Assessment
Your application will be evaluated against program requirements
Interview
Selected candidates may be invited for an interview
Decision
Receive an admission decision
Enrollment
Complete registration and prepare to begin your studies
.avif)