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. Most of this program is the 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 problem 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 and Full Stack Development, 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. 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
This course introduces basic probability theory , statistical methods and computational algorithms to perform mathematically rigorous data analysis. The course starts with basic foundational concepts of random variables, histograms, and various plots (PMF, PDF and CDF). Students learn various popular discrete and continuous distributions like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, log-normal etc., both mathematically and from an applicative perspective. Students learn various measures like mean, median, percentiles, quantiles, variance and interquartile-range. Students learn the pros and cons of each metric and understand when and how to use them in practice. Students will learn conditional probability and Bayes theorem in the applied context of real-world problems in medicine and healthcare. The module teaches the foundations of non-parametric statistics and applies them to solve problems using computational tools. Students learn various methods to determine correlations rigorously in data. This is followed by applied and mathematical understanding of the statistics underlying control- treatment (A/B) experiments and hypothesis testing. The module engages computation tools in modern statics like Bootstrapping, Monte-Carlo methods, RANSAC etc.
Teachers





Intended learning outcomes
- Develop a critical knowledge of Applied Statistics
- Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal)
- Critically evaluate diverse scholarly views on Applied Statistics
- Develop a specialised knowledge of key strategies related to Applied Statistics
- Critically assess the relevance of theories for business applications in the domain of technology
- Creatively apply basic probability theory to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent problem set or presentation
- Apply an in-depth domain-specific knowledge and understanding of applied statistics
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Efficiently manage interdisciplinary issues that arise in connection to Applied Statistics
- Act autonomously in identifying research problems and solutions related to Applied Statistics
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics
- Create synthetic contextualised discussions of key issues related to Applied Statistics
- Demonstrate self-direction in research and originality in solutions developed for Applied Statistics
- Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous data analysis
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.
Teachers
Intended learning outcomes
- 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
- 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
- Creatively apply various programming methods to most efficiently implement state machines in algorithmic design
- Apply an in-depth domain-specific knowledge and understanding of discrete mathematics to algorithmic designs
- 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
- Solve problems and be prepared to take leadership decisions related to applying discrete mathematics to optimizing algorithms
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to discrete probability
- Apply a professional and scholarly approach to research problems pertaining to the growth of functions
- Act autonomously in identifying research problems and solutions related to the real-world application of discrete mathematics
- Create synthetic contextualised discussions of key issues related to applications of discrete mathematics in computer science
- Efficiently manage interdisciplinary issues that arise in connection to permutations and combinations in algorithm design
About
This course helps students translate advanced mathematical/statistical/scientific concepts into code. This is a module for writing code to solve real-world problems. It introduces programming concepts (such as control structures, recursion, classes and objects) assuming no prior programming knowledge, to make this course accessible to advanced professionals from scientific fields like Biology, Physics, Medicine, Chemistry, Civil & Mechanical Engineering etc. After building a strong foundation for converting scientific knowledge into programming concepts, the course advances to dive deeply into Object-Oriented Programming and its methodologies. It also covers when and how to use inbuilt-data structures like 1-Dimensional and 2-Dimensional Arrays before introducing the concepts of computational complexity to help students write optimized code using appropriate data structures and algorithmic design methods. The module can be taught to allow students to learn these concepts using a modern programming language such as Java or Python. The course offers students the ability to identify and solve computer programming problems in scientific fields
at a graduate level.
Teachers





Intended learning outcomes
- Develop a critical understanding of a modern programming language such as Java or Python
- Develop a specialised knowledge of key strategies related to Object-Oriented Programming
- Critically evaluate diverse scholarly views on computational complexity
- Acquire knowledge of various methods for structuring data
- Critically assess the relevance of theories for business applications in the domain of technology
- 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 programming methods to develop critical and original solutions to computational problems
- Apply an in-depth domain-specific knowledge and understanding to computer programming
- Demonstrate self-direction in research and originality in solutions developed for modern programming languages
- Apply a professional and scholarly approach to research problems pertaining to computational complexity
- Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays
- Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented methods
- Act autonomously in identifying research problems and solutions related to Object-Oriented programming
- Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming
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
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on cloud computing
- 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
- Autonomously gather material and organise it into coherent problems sets or presentations
- Apply an in-depth domain-specific knowledge and understanding to cloud computing services
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply cloud computing applications to develop critical and original solutions for computational problems
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Act autonomously in identifying research problems and solutions related to cloud computing
- Efficiently manage interdisciplinary issues that arise in connection 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
- Demonstrate self-direction in research and originality in solutions developed for cloud computing
About
This course provides students with hands-on experience on deploying high velocity applications and services reliably on complex and distributed infrastructure. DevOps as a philosophy is a key driver of the modern software life cycle which prefers rapid and reliable delivery of functionality and features via code. We start with a solid introduction to Linux scripting and networking. Then, we learn popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes). All of this would be introduced with real world examples from the industry. We also focus on Continuous Integration and Continuous Delivery (CI/CD) methodology and how it can be achieved using popular toolchains like Jenkins. We dive into how automated testing of software can be achieved using libraries like Selenium. This shall be followed by more advanced techniques like serverless-compute, Platform as a service model and Cloud-DevOps. Students would learn to monitor and log key data points to ensure they maintain a healthy system and adapt it as needed. Infrastructure-as-code is a key component of modern DevOps especially on cloud and containerized applications which would also be covered with real-world examples.
Teachers
Intended learning outcomes
- Develop a critical knowledge of DevOps
- Critically evaluate diverse scholarly views on DevOps
- Acquire knowledge of popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes)
- Develop a specialised knowledge of key strategies related to DevOps
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to DevOps solutions.
- Creatively apply DevOps tools to develop critical and original solutions for computational problems.
- Act autonomously in identifying research problems and solutions related to DevOps
- Create synthetic contextualised discussions of key issues related to DevOps
- Apply a professional and scholarly approach to research problems pertaining to DevOps
- Efficiently manage interdisciplinary issues that arise in connection to DevOps
- Solve problems and be prepared to take leadership decisions related to the methods and principles of DevOps
- Demonstrate self-direction in research and originality in solutions developed for DevOps
About
This course focuses on modelling sequences (text, music, time-series, genes) using deep-learning models. We start with a simple Recurrent Neural Network and its limitations with long-sequences. Students learn LSTMs and GRUs which can handle significantly longer sequences to model sequence data like text, music, gene-sequences and time-series data. We study variations of LSTM like bi-directional LSTMs and encoder-decoder architectures. This is followed by a detailed study of attention mechanism and Transformer based models which are currently the state-of-the-art for NLP and sequence modelling. The module teaches encoder-decoder Transformers, BERT, BERT-variations, GPT-1,2 &3 models from both the architectural and mathematical viewpoints and also a practical viewpoint. Studnets learn to implement many of these complex models from scratch (using TensorFlow 2 and Keras) to gain a deeper understanding of how they work internally. Students will study popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), Semantic search with low-latency etc. For each of these problems, Students will study cutting edge deep-learning models along with code implementations.
Teachers
Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Deep Learning for NLP
- Develop a critical knowledge of Deep Learning for NLP
- Acquire knowledge of popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), etc.
- Critically evaluate diverse scholarly views on Deep Learning for NLP
- Critically assess the relevance of theories for business applications in the domain of technology
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Deep Learning for NLP
- Autonomously gather material and organise it into coherent problem sets or presentation
- Propose appropriate solutions to complex and changing problems pertaining to Deep Learning for NLP
- Assess, analyse, and criticise the various strategies for handling matters arising in the context of Deep Learning for NLP
- Apply an in-depth domain-specific knowledge and understanding to NLP solutions
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Deep Learning for NLP techniques to develop critical and original solutions for computational problems
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for NLP
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for NLP
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for NLP
- Create synthetic contextualised discussions of key issues related to Deep Learning for NLP
- Act autonomously in identifying research problems and solutions related to Deep Learning for NLP
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for NLP
About
This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve
multiple real world cases and discuss solutions built by various companies and
organizations to provide the students a comprehensive understanding of varied
systems and design choices.
Teachers
Intended learning outcomes
- Develop a critical knowledge of Productionization of Machine Learning Systems
- Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
- Critically evaluate diverse scholarly views on Productionization of Machine Learning
- Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
- Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
- Apply an in-depth domain-specific knowledge and understanding to technolog
- Autonomously gather material and organise it into coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply ML systems to develop critical and original solutions for computational problems
- Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
- Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
- Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
- Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
- Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
About
This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for Computer Vision
- Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision
- Critically evaluate diverse scholarly views on Deep Learning for Computer Vision
- Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques
- Autonomously gather material and organise it into coherent problem sets or presentation
- Creatively apply computer vision techniques to develop critical and original solutions for computational problems
- Act autonomously in identifying research problems and solutions related to Deep Learning for Computer Vision
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for Computer Vision
- Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision
About
This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing
Teachers
Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Deep Learning
- Critically evaluate diverse scholarly views on Deep Learning
- Develop a critical knowledge of Deep Learning
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning
- Creatively apply Deep Learning techniques 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 presentation
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning
- Create synthetic contextualized discussions of key issues related to Deep Learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning
- Act autonomously in identifying research problems and solutions related to Deep Learning
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning
About
This course introduces more advanced ML techniques like ensembles: bagging, boosting, cascading and stacking classifiers and regressors. It covers both the theoretical foundations and applicative details of these techniques along with popular implementations of boosting like LightGBM, CatBoost and XGBoost. Students also delve into kernel methods with specific focus on SVMs for classification and regression. Students will study state of the art model agnostic feature importance and model-interpretability techniques like LIME and SHAP. Students also study classical NLP based text encoding methods like Bag-of-words, TF-IDF etc. The module teaches various classical methods in time series analysis and forecasting like ARMA, ARIMA etc. Students also learn how to pose time series forecasting problems as regression and classification problems to leverage well studied ML techniques. This is followed by various domain and problem specific Feature engineering techniques that are often helpful in real world problem solving. Students will study methods like error analysis, ablative analysis etc., to debug and understand why and where a model is performing well and where it is not performing well. This will further help us in designing appropriate features. Students study model calibration techniques like Platt Scaling, Isotonic Regression etc. Later in this course, we cover how to build recommender systems using content-based and collaborative filtering methods. The module also teaches the detailed solution of the Netflix prize (2009) and various recent advances in RecSys
Teachers
Intended learning outcomes
- Acquire knowledge of model calibration techniques like Platt Scaling, Isotonic Regression
- Critically evaluate diverse scholarly views on Advanced Machine Learning
- Develop a critical knowledge of Advanced Machine Learning
- Develop a specialised knowledge of key strategies related to Advanced Machine Learning
- Critically assess the relevance of theories for business applications in the domain of technology
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Advanced Machine Learning
- Creatively apply Advanced Machine Learning techniques to develop critical and original solutions for computation problems
- Autonomously gather material and organise it into coherent problem sets or presentations
- Demonstrate self-direction in research and originality in solutions developed for Advanced Machine Learning
- Create synthetic contextualised discussions of key issues related to Advanced Machine Learning
- Efficiently manage interdisciplinary issues that arise in connection to Advanced Machine Learning
- Act autonomously in identifying research problems and solutions related to Advanced Machine Learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Machine Learning
- Apply a professional and scholarly approach to research problems pertaining to Advanced Machine Learning
About
This course is aimed to help learners understand various techniques and algorithms to visualize, analyse and understand high dimensional data which is very common in Data Science and ML. The module starts with linear algebraic methods like Principal Component Analysis (PCA) and SVD (Singular Value Decomposition) for obtaining linear projection of high dimensional data. This is followed by more advanced nonlinear and state of the art techniques like t-SNE and UMAP for visualizing high dimensional data. Each of these techniques would be covered in full mathematical detail from first principles along with applying them to real world datasets in NLP, Genomics and internet-datasets. Students will also study how PCA and SVD are related to general Matrix Factorization techniques. To analyse and understand high dimensional un-labelled data, students learn clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN. The modules show how some of the techniques are mathematically related to Matrix Factorization. Students study various outlier detection techniques based on density, proximity, factorization and cluster analysis.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Data Analysis
- Acquire knowledge of clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN
- Critically evaluate diverse scholarly views on Data Analysis
- Develop a specialised knowledge of key strategies related to Data Analysis
- Autonomously gather material and organise it into coherent problems sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Data Analysis techniques
- Creatively apply various techniques to develop critical and original solutions for computational problems
- Demonstrate self-direction in research and originality in solutions developed for data analysis
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Analysis
- Apply a professional and scholarly approach to research problems pertaining to Data Analysis
- Efficiently manage interdisciplinary issues that arise in connection to Data Analysis
- Create synthetic contextualised discussions of key issues related to Data Analysis
- Act autonomously in identifying research problems and solutions related to Data Analysis
About
This course focuses on building basic classification and regression models and understanding these models rigorously both with a mathematical and an applicative focus. The module starts with a basic introduction to high dimensional geometry of points, distance-metrics, hyperplanes and hyperspheres. We build on top this to introduce the mathematical formulation of logistic regression to find a separating hyperplane. Students learn to solve the optimization problem using vector calculus and gradient descent (GD) based algorithms. The module introduces computational variations of GD like mini-batch and stochastic gradient descent. Students also learn other popular classification and regression methods like k-Nearest Neighbours, NaiveI Bayes, Decision Trees, Linear Regression etc. Students also learn how each of these techniques under various real world situations like the presence of outliers, imbalanced data, multi class classification etc. Students learn bias and variance trade-off and various techniques to avoid overfitting and underfitting. Students also study these algorithms from a Bayesian viewpoint along with geometric intuition. This module is hands-on and students apply all these classical techniques to real world problems.
Teachers





Intended learning outcomes
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a specialised knowledge of key strategies related to machine learning
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of machine learning
- Critically evaluate diverse scholarly views on machine learning
- Autonomously gather material and organise it into coherent problem sets and presentation
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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 machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Create synthetic contextualised discussions of key issues related to machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
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/organization/institution. They can be mentored by an expert supervisor from their organization 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
- Develop a critical knowledge of modern computational applications
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on modern computational applications
- Develop a specialised knowledge of key strategies related to modern computational applications
- Acquire knowledge of an end-to-end deployable solution to a real-world computational problem
- Creatively apply computational 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 of modern day computational applications
- Autonomously gather material and organise it into coherent problem sets or presentations
- Solve problems and be prepared to take leadership decisions related to the methods and principles of modern computational applications
- Efficiently manage interdisciplinary issues that arise in connection to modern day computational methods and principles
- Demonstrate self-direction in research and originality in solutions developed for robust and reliable systems using interacting modules
- Apply a professional and scholarly approach to research problems pertaining to real-world modern computational complexities
- Act autonomously in identifying research problems and solutions related to modern computational tools and methods
- Create synthetic contextualised discussions of key issues related to real-world computational problems
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)