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
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, enrolment 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 complete all courses in module two, earning a total of 45 ECTS. Tier Three will be completed by a) completing 20 ECTS of compulsory modules and b)completing a 10 ECTS Applied Computer Science capstone project.
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
Cohort 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/
This course is aimed to build a strong foundational knowledge of data structures (DS) used extensively in computing. The module starts with introducing time and space complexity notations and estimation for code snippets. This helps students be able to make trade-offs between various Data Structures while solving real world computational problems. The module introduces most widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, HashTables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs. The module discusses multiple implementation variations for each of the above data-structures along with trade-offs in space and time for each implementation. In this course, students implement these data-structures from scratch to gain a solid understanding of their inner workings. Students are also introduced to how to use the built-in data-structures available in various programming languages/libraries like Python/NumPy/C++ STL/ Java/ JavaScript. Students solve real-world problems where they must use an optimal DS to solve a computational problem at hand.
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.
Mathematics and computer science are closely related fields. Problems in computer science are often formalised 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.
Structured Query Language (SQL) is key to working with data in relational databases, a task at the core of data science and analytics. In this course, students will learn all the major keywords and clauses used to extract data, best practices for formatting SQL queries, and how to generate meaningful insights from the results.The focus is at all times on real-world uses of SQL queries, syntax, and expression,to allow students to begin professional-level work as quickly as possible.
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping. At the end of this course, students will be prepared, if they desire, to earn such industry desktop certifications as a Tableau Desktop Specialist, a Tableau Certified Associate, or a Tableau Certified Professional.
Advanced Python Programming builds on introductory programming courses to illustrate object-oriented programming concepts, database design in Python, and the basics of Machine Learning with Python libraries. Students will learn how to solve problems in Python, develop design patterns in Python code, develop internet applications with Python, and collaborate with other students to implement projects. The course introduces advanced features such as decorators and generators, as well as a thorough exploration of the Python development environment. This course is designed to prepare students for an entry-level developer position.
This course helps students translate mathematical/statistical/scientific concepts into code. This is a foundational course for writing code to solve Data Science ML &AI problems. It introduces basic programming concepts (like control structures, recursion, classes and objects) from scratch, assuming no prerequisites, to make this course accessible to students from non-computational scientific fields likeBiology, Physics, Medicine, Chemistry, Civil & Mechanical Engineering etc. After building a strong foundation, the course advances to dive deep into coreMathematical libraries like NumPy, Scipy and Pandas. Students also learn when and how to use inbuilt-data structures like Lists, Dicts, Sets and Tuples. The module introduces the concepts of computational complexity to help students write optimized code using appropriate data structures and algorithmic design methods.The module does not dive deep into the data structures and algorithm design methods in this course - that is available in the ‘Data Structures and Algorithms module. This course is valuable for all students specializing in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.
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 hyper spheres. 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, Naive 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 under fitting. 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
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.
Spreadsheets for Data Understanding introduces students to the principles and techniques of data cleaning, handling data sets of varying sizes, and visualizing data/data storytelling. Students will also learn the basics of predictive modelling from data sets. These are all introduced through the means of Microsoft Excel, the industry-standard spreadsheet program. Students will learn how to use inbuilt functions, as well as techniques such as creating and modifying pivot tables.
Power BI is a Microsoft tool that works on turning unrelated sources of data into coherent, visually immersive, and interactive insights. Input data can be of various formats ranging from spreadsheets to JSON. Learning this tool will help in working on real time data creating solutions for business with interactive solutions from very unstructured data and reporting with business insights. Students will learn how to handle data sources in Power BI, connecting to various data sources using Power BI, query editors, managing data relationships, and cross filter direction. In Power BI students will learn how to visualise data like map visualisations, funnel charts, waterfall charts. For Data Analysis students will learn different data types in DAX, Syntax used, DAX functions, operators, tables and filters used. Parameter Naming. Power BI is used extensively for report making so students will learn how to report basic servers, web portal, paginated reports, schedule refresh and how to configure schedule refresh, publish to web embedded code. Students will also learn how to use R language and Python on Power BI. Hands-on training with a project will also be dealt with where students will work on real-time industry data and provide reports.
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.
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 likePrincipal 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 shows 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.
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. Students learn to implement many of these complex models from scratch (using Tensor Flow 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.
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 deepMLPs 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 2and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.
This is a project-based course, with the aim of building the required skills for creating web-based software systems. The course covers the entire lifecycle of building software projects, from requirement gathering and scope definition from a product document, to designing the architecture of the system, and all the way to delivery and maintenance of the software system. The course covers both frontend, which is, building browser-based interfaces for users, using frontend web frameworks, and also building the backend, which is the server running an API to serve the information to the frontend, and running on anSQL or similar database management system for storage. All aspects of delivering a software project, including security, user authentication and authorisation, monitoring and analytics, and maintaining the project are covered. The course also covers the aspects of project maintenance, like using aversion control system, setting up continuous integration and deployment pipelines and bug trackers.
Dive into the exciting world of Generative AI with our comprehensive course, designed to provide you with a deep understanding of cutting-edge techniques and real-world applications. In this course, you'll start with an overview of Generative AI, exploring its potential and ethical considerations in today's digital landscape. You'll then delve into the heart of Generative AI with a focus onTransformers and Self-Attention mechanisms, gaining insights into the workings of Large Language Models (LLMs) and different types of Transformer models. Through hands-on sessions, you'll learn how to setup your environment using Hugging Face and implement techniques for text generation, summarization, and translation, fine-tuning LLMs for optimal performance. As you progress, you'll discover advanced model evaluation techniques and explore real-world applications of LLMs across various industries.From designing and developing chatbots to integrating Text-to-Speech(TTS) and Speech-to-Text (STT) functionalities, you'll learn how to create innovative solutions using Generative AI. Throughout the course, emphasis is placed on qualitative analysis and human evaluation, ensuring that your creations not only perform well but also meet the needs and expectations of end-users. By the end of the course, you'll emerge with the skills and knowledge to harness the power of Generative AI and drive innovation in AI-driven applications.