About
The Master of Science in Artificial Intelligence is designed to provide students with advanced knowledge and practical skills in the rapidly evolving field of AI. This program offers a comprehensive curriculum that covers core AI concepts, including machine learning, neural networks, natural language processing, and robotics. Students will gain a deep understanding of both theoretical and applied aspects of AI, preparing them to solve complex problems and innovate in various industries. The program emphasises hands-on experience through projects, case studies, and real-world applications, enabling students to apply AI techniques to create intelligent systems and drive decision-making processes. The program is tailored for professionals and graduates who aspire to lead in the AI domain, whether in research, development, or management roles. With a focus on flexibility and accessibility, this degree allows students to balance their studies with professional and personal commitments. Graduates will be equipped to take on advanced roles in AI, such as data scientists, AI engineers, and AI project managers, and will be well-prepared to contribute to the development and deployment of AI technologies across a wide range of sectors, including healthcare, finance, and technology.
How students have found success through Woolf
- Design and develop AI models using state-of-the-art tools and techniques, applying machine learning principles to solve complex problems.
- Apply AI techniques to industry-specific applications, utilising data science and computational intelligence for real-world decision-making.
- Optimise AI models and algorithms through iterative testing and refinement, improving efficiency and effectiveness in various applications.
- Execute predictive modelling using advanced data analytics and machine learning approaches, with a focus on accurate predictions and insights.
- Lead AI-focused projects, managing resources, timelines, and stakeholders to deliver AI-driven solutions that align with business goals.
Course Structure
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 optimised code using appropriate data structures and algorithmic design methods.
Teachers


Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Object-Oriented Programming.
- 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.
- Critically evaluate diverse scholarly views on computational complexity.
- Acquire knowledge of various methods for 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 computer programming.
- 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.
- Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays.
- 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.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming.
About
This is a core and foundational course which aims to equip the student with the ability to model, design, implement and query relational database systems for real-world data storage & processing needs. Students would start with diagrammatic tools (ER-diagram) to map a real world data storage problem into entities, relationships and keys. Then, they learn to translate the ER-diagram into a relational model with tables. SQL is then introduced as a de facto tool to create, modify, append, delete, query and manipulate data in a relational database. Due to SQL’s popularity, the course spends considerable time building the ability to write optimised and complex queries for various data manipulation tasks. The module exposes students to various real world SQL examples to build solid practical knowledge. Students then move on to understanding various trade-offs in modern relational databases like the ones between storage space and latency. Designing a database would need a solid understanding of normal forms to minimise data duplication, indexing for speedup and flattening tables to avoid complex joins in low-latency environments. These real-world database design strategies are discussed with practical examples from various domains. Most of this course uses the open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Teachers


Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology.
- Acquire knowledge of SQL as a tool to create, modify, append, delete, query and manipulate data in a relational database.
- Develop a specialised knowledge of key strategies related to Relational Databases.
- Critically evaluate diverse scholarly views on relational databases.
- Develop a critical knowledge of relational databases.
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems.
- Autonomously gather material and organise it into a coherent presentation or essay.
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases.
- Act autonomously in identifying research problems and solutions related to Relational Databases.
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases .
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases.
- Create synthetic contextualised discussions of key issues related to Relational Databases.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases.
About
This course is designed to provide students with a comprehensive overview of the key concepts, techniques, and applications of AI. This course covers the history and evolution of AI, fundamental theories, and essential algorithms, including search methods, knowledge representation, machine learning, and neural networks. Students will explore the practical applications of AI in various domains such as robotics, natural language processing, computer vision, and expert systems, gaining an understanding of how AI technologies are transforming industries and society.
Through a mix of theoretical lectures and hands-on exercises, students will develop a solid grounding in AI principles and practices. They will engage in projects and case studies that illustrate real-world AI applications, enhancing their problem-solving and critical-thinking skills. By the end of the course, students will have a thorough understanding of AI fundamentals and be prepared to delve deeper into specialised AI topics, positioning themselves for success in advanced courses and professional roles within the field of artificial intelligence.
Teachers
Intended learning outcomes
- Explain the key milestones and advancements in the field of AI, from its inception to modern-day applications.
- Identify the foundational concepts of artificial intelligence including machine learning, neural networks, and natural language processing.
- Compare and contrast narrow AI, general AI, and superintelligent AI, and evaluate their use cases in various industries.
- Assess the accuracy, precision, recall and evaluate the performance of AI models using standard metrics.
- Implement and run AI algorithms, such as decision trees and k-nearest neighbours, on datasets to solve classification and regression tasks.
- Utilise AI tools and frameworks for practical AI development.
- Work effectively in groups to design, develop, and present AI solutions, showcasing strong teamwork and communication skills.
- Create simple AI systems or prototypes that address specific real-world challenges, demonstrating an understanding of AI principles.
- Evaluate the societal and ethical challenges posed by AI, such as bias, privacy concerns, and job displacement, and propose strategies to mitigate these issues.
About
This course gives the detailed overview on how to approach Low Level Design problems with real-world case studies discussed such as Designing a Pen (Mac/Windows), TicTacToe, BookMyShow (most used event booking app, manages millions of users), Email campaign Management System and detailed design of Splitwise.
Teachers
Intended learning outcomes
- Develop a critical understanding of software design and refinement processes.
- 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.
- Critically assess the relevance of theories of software design processes for business applications in the realm of software engineering.
- Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level designs.
- Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes.
- 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 a professional and scholarly approach to research problems pertaining to logical and functional design of software components.
- Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models.
- Act autonomously in identifying research problems and solutions related to refining software designs.
- Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents.
- Demonstrate self-direction in research and originality in solutions developed for using Program Design Languages.
- Create synthetic contextualised discussions of key issues related to specifying the internal logic of software.
About
This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.
While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.
The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories of data storage for programming.
- Develop a critical understanding of product design and development.
- Develop a specialised knowledge of the various uses and forms of lists in programming, including 2D lists.
- Acquire knowledge of various methods for storing data in modern programming languages.
- Critically evaluate diverse scholarly views on functions and algorithms.
- Apply an in-depth domain-specific knowledge and understanding of computer programming and data management.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Creatively apply various visual, written, and code-based methods for manipulating tuples, strings, lists, and similar structures.
- Autonomously gather material and organise it into a coherent presentation or essay.
- Apply a professional and scholarly approach to research problems pertaining to functions and data types.
- Solve problems and be prepared to take leadership decisions related to programming concepts such as lists, sets, tuples, dictionaries, and strings.
- Act autonomously in identifying research problems and solutions related to data storage.
- Efficiently manage interdisciplinary issues that arise in connection to choosing the best data type for a particular programming need.
- Demonstrate self-direction in research and originality in handling data in lists.
- Create synthetic contextualised discussions of key issues related to data storage and how popular programming languages handle this.
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
- Critically evaluate diverse scholarly views on Applied Statistics.
- Develop a specialised knowledge of key strategies related to Applied Statistics.
- Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal).
- Develop a critical knowledge of Applied Statistics.
- Critically assess the relevance of theories for business applications in the domain of technology.
- Apply an in-depth domain-specific knowledge and understanding of applied statistics.
- Autonomously gather material and organise it into a coherent problem set or presentation.
- Creatively apply basic probability theory to develop critical and original solutions for computational problems.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics.
- Efficiently manage interdisciplinary issues that arise in connection to 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.
- Act autonomously in identifying research problems and solutions related to Applied Statistics.
- Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous data analysis.
About
The course equips students with the essential skills and knowledge to effectively lead and manage AI-focused projects. This course delves into the core principles of project management, including planning, execution, monitoring, and closing projects, with a special emphasis on methodologies that are critical in the fast-paced AI industry. Students will explore both traditional and agile project management approaches, learning to navigate the complexities of AI projects that involve interdisciplinary teams, emerging technologies, and innovative solutions. Throughout the course, students will engage in real-world case studies and hands-on projects to develop practical skills in resource allocation, risk management, communication, and stakeholder engagement. By the end of the course, students will be adept at managing AI projects from conception to completion, ensuring that they deliver value while meeting time, cost, and quality objectives. This course prepares students to take on leadership roles in AI-driven initiatives, positioning them for success in a rapidly evolving field.
Teachers
Intended learning outcomes
- Identify the fundamental principles of project management, including scope, time, cost, and quality management, as applied to AI projects.
- Explain the methodologies and frameworks such as Agile, Scrum, and Waterfall, and how they can be applied to manage AI-based projects effectively.
- Analyse the risk factors in AI project management, including ethical considerations, data privacy, and algorithmic bias, and their potential impacts on project outcomes.
- Implement agile project management practices in real-time scenarios, adapting to changes in project scope, resources, and technological advancements.
- Evaluate project performance using key performance indicators (KPIs) and project management tools, ensuring alignment with AI project objectives.
- Develop comprehensive project plans for AI initiatives, including timelines, budgets, resource allocation, and risk management strategies.
- Optimise project processes and workflows by integrating advanced project management tools and AI-driven insights to enhance productivity and project outcomes.
- Lead cross-functional teams in the execution of AI projects, ensuring effective communication, collaboration, and decision-making throughout the project lifecycle.
- Adapt project management strategies in response to emerging AI trends and challenges, demonstrating flexibility and strategic thinking to achieve project goals.
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
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 evaluate diverse scholarly views on best practices in developing data-intensive applications.
- Critically assess the relevance of theories of data modelling for efficient pipeline creation.
- Acquire knowledge of various methods for warehousing data.
- Develop a critical understanding of data engineering.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
- Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Act autonomously in identifying research problems and solutions related to developing for data at scale.
- Create synthetic contextualised discussions of key issues related to the data engineering lifecycle.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modelling.
- Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
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.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
- 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.
- Act autonomously in identifying research problems and solutions related to machine learning.
- Demonstrate self-direction in research and originality in solutions developed for machine learning.
- 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.
- Efficiently manage interdisciplinary issues that arise in connection to machine learning.
- Create synthetic contextualised discussions of key issues related to machine learning.
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers
Intended learning outcomes
- Develop a critical understanding of product design and development.
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
- Critically assess the relevance of theories of user behaviour for product development.
- Critically evaluate diverse scholarly views on assessing user behaviours.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Act autonomously in identifying research problems and solutions related to product analytics.
About
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 like Biology, Physics, Medicine, Chemistry, Civil & Mechanical Engineering etc. After building a strong foundation, the course advances to dive deep into core Mathematical 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 optimised 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 specialising in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.
Teachers
Intended learning outcomes
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas.
- Critically evaluate diverse scholarly views on Numerical programming in Python.
- Critically assess the relevance of theories for business applications in the domain of technology.
- Develop a critical knowledge of Numerical programming in Python.
- Develop a specialised knowledge of key strategies related to Numerical programming in Python.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Create new solutions that are critical to solving computational problems through creatively applying code writing.
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python.
- Autonomously gather material and organise it into a coherent problem set or presentation.
- Apply a professional and scholarly approach to research problems pertaining to Numerical programming in Python.
- Create synthetic contextualised discussions of key issues related to Numerical programming in Python.
- Efficiently manage interdisciplinary issues that arise in connection to Numerical programming in Python.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Numerical programming in Python.
- Act autonomously in identifying research problems and solutions related to Numerical programming in Python.
- Demonstrate self-direction in research and originality in solutions developed for Numerical programming in Python.
About
This is a foundational course on building server-side (or backend) applications using popular JavaScript runtime environments like Node.js. Students will learn event driven programming for building scalable backend for web applications. The module teaches various aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST APIs. Most of these concepts would be covered in a hands-on manner with real world examples and applications built from scratch using Node.js on Linux servers. This course also provides an introduction to Linux server administration and scripting with special focus on web-development and networking. Students learn to use Linux monitoring tools (like Monit) to track the health of the servers. The module also provides an introduction to Express.js which is a popular light-weight framework for Node.js applications. Given the practical nature of this course, this would involve building actual website backends via assignments/projects for ecommerce, online learning and/or photo-sharing.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology.
- Critically evaluate diverse scholarly views on 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.
- Develop a critical knowledge of Back End Development.
- Develop a specialised knowledge of key strategies related to Back End Development.
- 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.
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Act autonomously in identifying research problems and solutions related to Back End Development.
- Apply a professional and scholarly approach to research problems pertaining to Back End Development.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development.
- Demonstrate self-direction in research and originality in solutions developed for Back End Development.
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development.
- Create synthetic contextualised discussions of key issues related to Back End Development.
About
DevOps Tools Part 1 is a comprehensive course designed for students pursuing a Master of Science in Computer Science with a specialisation in DevOps. This course introduces the essential tools and methodologies that form the backbone of modern DevOps practices. Students will gain a solid foundation in version control with Git, continuous integration/continuous deployment (CI/CD) pipelines using Jenkins, and configuration management with Ansible.
The course emphasises hands-on learning, enabling students to set up, configure, and utilise these tools in real-world scenarios, ensuring they can effectively collaborate, automate workflows, and streamline the development process.In addition to core tools, the course covers containerization with Docker and orchestration with Kubernetes, providing students with the skills to deploy and manage applications in a microservices architecture. Students will also explore monitoring and logging solutions such as Prometheus and ELK Stack to maintain system reliability and performance. By the end of the course, students will be proficient in employing a wide range of DevOps tools, laying a strong foundation for advanced DevOps practices and tools covered in subsequent courses.
Teachers
Intended learning outcomes
- Differentiate between popular DevOps tools in different categories based on their features and use cases.
- Identify and describe the core principles of DevOps and its benefits for software development and delivery.
- Explain the functionalities of various DevOps tools across different stages of the software development lifecycle (SDLC).
- Design and implement basic CI/CD pipelines using tools to automate build, test, and deployment processes.
- Set up and use a version control system (VCS) for code versioning, branching, and collaborative development.
- Automate infrastructure provisioning and configuration management using tools like Ansible or Chef.
- Design and implement a basic DevOps workflow for a given application scenario, considering factors like version control, infrastructure management, and automated deployment.
- Select and integrate appropriate DevOps tools within a workflow based on project requirements and team preferences.
- Troubleshoot and debug issues within a DevOps pipeline, optimising it for efficiency and reliability.
About
This course is dedicated to exploring the ethical, legal, and social implications of artificial intelligence technologies. This course examines key issues such as bias in AI algorithms, data privacy, transparency, accountability, and the impact of AI on employment and society. Students will engage with case studies and frameworks designed to address these challenges, learning how to develop and implement AI systems that align with ethical standards and promote fairness and inclusivity.
Through a combination of theoretical discussions and practical applications, the course equips students with the knowledge and tools necessary to navigate the complex landscape of AI ethics. Students will participate in discussions on policy, regulations, and best practices, and will work on projects that involve designing ethical AI solutions and conducting impact assessments. By the end of the course, students will be prepared to advocate for and implement ethical AI practices in their professional roles, ensuring that AI technologies are developed and used responsibly and equitably.
Teachers


Intended learning outcomes
- Define and explain key ethical principles in AI, such as fairness, transparency, accountability, and privacy.
- Critically analyse real-world case studies of ethical failures and successes in AI, drawing lessons for future practice.
- Recognize and describe common ethical challenges and dilemmas encountered in AI development, including bias, discrimination, and data privacy issues.
- Design and implement strategies to mitigate bias in AI models, using techniques such as re-sampling, fairness-aware algorithms, and interpretability tools.
- Assess AI systems for ethical compliance using established frameworks and guidelines, ensuring they align with societal values and legal requirements.
- Perform ethical risk assessments for AI projects, identifying potential harms and proposing measures to minimise them.
- Demonstrate the competency to advocate for ethical AI practices in industry and policy discussions, effectively communicating the importance of ethics in AI to diverse stakeholders.
- Demonstrate the ability to design AI solutions that prioritise ethical considerations, balancing innovation with responsibility to ensure positive societal impact.
- Lead and guide multidisciplinary teams in developing and implementing AI systems that adhere to ethical standards, fostering a culture of ethical AI within their organisations.
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
- Critically assess the relevance of theories for business applications in the domain of technology.
- Develop a specialised knowledge of key strategies related to front end development.
- Develop a critical knowledge of front end development.
- Critically evaluate diverse scholarly views on front end development.
- Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS.
- Apply an in-depth domain-specific knowledge and understanding to front end development solutions.
- 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 front end development applications.to develop critical and original solutions for computational problems.
- Apply a professional and scholarly approach to research problems pertaining to front end development.
- Demonstrate self-direction in research and originality in solutions developed for front end development.
- Create synthetic contextualised discussions of key issues related to front end development.
- Efficiently manage interdisciplinary issues that arise in connection to front end development.
- Act autonomously in identifying research problems and solutions related to front end development.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development.
About
This is a project-based course, with the aim of building the required skills for creating web-based software systems. The course covers the entire lifecycle of building software projects, from requirement gathering and scope definition from a product document, to designing the architecture of the system, and all the way to delivery and maintenance of the software system.
The course covers both frontend, which is, building browser-based interfaces for users, using frontend web frameworks, and also building the backend, which is the server running an API to serve the information to the frontend, and running on an SQL or similar database management system for storage.
All aspects of delivering a software project, including security, user authentication and authorisation, monitoring and analytics, and maintaining the project are covered. The course also covers the aspects of project maintenance, like using a version control system, setting up continuous integration and deployment pipelines and bug trackers.
The Applied Computer Science Project will focus on the outcome of how computer science and its associated tools as a field of study can be beneficial to other fields of study or how such tools can be applied to modify existing processes for better outcomes. Students will apply AI techniques—such as machine learning models, neural networks, computer vision, or NLP—to solve a real-world computational problem. The project should demonstrate an understanding of AI theory and its application to practical scenarios.
Teachers
Intended learning outcomes
- Acquire knowledge of various methods for version control.
- Critically assess the relevance of theories of web security for cloud deployment.
- Develop a specialised knowledge of key strategies for designing well-architected information management systems.
- Critically evaluate diverse scholarly views on database management.
- Develop a critical understanding of modern computational applications.
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business.
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Autonomously gather material and organise it into a coherent presentation or essay.
- Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments.
- Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software
- Apply a professional and scholarly approach to research problems pertaining to real-world computational complexities.
- Efficiently manage interdisciplinary issues that arise in connection to deploying a modern, web-based system.
- Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
- Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
About
This course provides a strong mathematical and applicative introduction to Deep Learning. The course 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, regularisation by dropouts, batch normalisation etc., to ensure that deep MLPs can be successfully trained.
The course 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
- 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.
- Develop a specialised knowledge of key strategies related to Deep Learning.
- 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 Deep Learning techniques to develop critical and original solutions for computational problems.
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning.
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning.
- Act autonomously in identifying research problems and solutions related to Deep Learning.
- Create synthetic contextualised 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.
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning.
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning.
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.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
- 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.
- Act autonomously in identifying research problems and solutions related to machine learning.
- Demonstrate self-direction in research and originality in solutions developed for machine learning.
- 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.
- Efficiently manage interdisciplinary issues that arise in connection to machine learning.
- Create synthetic contextualised discussions of key issues related to machine learning.
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
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 evaluate diverse scholarly views on best practices in developing data-intensive applications.
- Critically assess the relevance of theories of data modelling for efficient pipeline creation.
- Acquire knowledge of various methods for warehousing data.
- Develop a critical understanding of data engineering.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
- Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Act autonomously in identifying research problems and solutions related to developing for data at scale.
- Create synthetic contextualised discussions of key issues related to the data engineering lifecycle.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modelling.
- Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers
Intended learning outcomes
- Develop a critical understanding of product design and development.
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
- Critically assess the relevance of theories of user behaviour for product development.
- Critically evaluate diverse scholarly views on assessing user behaviours.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Act autonomously in identifying research problems and solutions related to product analytics.
About
The course equips students with the essential skills and knowledge to effectively lead and manage AI-focused projects. This course delves into the core principles of project management, including planning, execution, monitoring, and closing projects, with a special emphasis on methodologies that are critical in the fast-paced AI industry. Students will explore both traditional and agile project management approaches, learning to navigate the complexities of AI projects that involve interdisciplinary teams, emerging technologies, and innovative solutions. Throughout the course, students will engage in real-world case studies and hands-on projects to develop practical skills in resource allocation, risk management, communication, and stakeholder engagement. By the end of the course, students will be adept at managing AI projects from conception to completion, ensuring that they deliver value while meeting time, cost, and quality objectives. This course prepares students to take on leadership roles in AI-driven initiatives, positioning them for success in a rapidly evolving field.
Teachers
Intended learning outcomes
- Identify the fundamental principles of project management, including scope, time, cost, and quality management, as applied to AI projects.
- Explain the methodologies and frameworks such as Agile, Scrum, and Waterfall, and how they can be applied to manage AI-based projects effectively.
- Analyse the risk factors in AI project management, including ethical considerations, data privacy, and algorithmic bias, and their potential impacts on project outcomes.
- Implement agile project management practices in real-time scenarios, adapting to changes in project scope, resources, and technological advancements.
- Evaluate project performance using key performance indicators (KPIs) and project management tools, ensuring alignment with AI project objectives.
- Develop comprehensive project plans for AI initiatives, including timelines, budgets, resource allocation, and risk management strategies.
- Optimise project processes and workflows by integrating advanced project management tools and AI-driven insights to enhance productivity and project outcomes.
- Lead cross-functional teams in the execution of AI projects, ensuring effective communication, collaboration, and decision-making throughout the project lifecycle.
- Adapt project management strategies in response to emerging AI trends and challenges, demonstrating flexibility and strategic thinking to achieve project goals.
About
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 like Biology, Physics, Medicine, Chemistry, Civil & Mechanical Engineering etc. After building a strong foundation, the course advances to dive deep into core Mathematical 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 optimised 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 specialising in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.
Teachers
Intended learning outcomes
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas.
- Critically evaluate diverse scholarly views on Numerical programming in Python.
- Critically assess the relevance of theories for business applications in the domain of technology.
- Develop a critical knowledge of Numerical programming in Python.
- Develop a specialised knowledge of key strategies related to Numerical programming in Python.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Create new solutions that are critical to solving computational problems through creatively applying code writing.
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python.
- Autonomously gather material and organise it into a coherent problem set or presentation.
- Apply a professional and scholarly approach to research problems pertaining to Numerical programming in Python.
- Create synthetic contextualised discussions of key issues related to Numerical programming in Python.
- Efficiently manage interdisciplinary issues that arise in connection to Numerical programming in Python.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Numerical programming in Python.
- Act autonomously in identifying research problems and solutions related to Numerical programming in Python.
- Demonstrate self-direction in research and originality in solutions developed for Numerical programming in Python.
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
- Critically evaluate diverse scholarly views on Applied Statistics.
- Develop a specialised knowledge of key strategies related to Applied Statistics.
- Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal).
- Develop a critical knowledge of Applied Statistics.
- Critically assess the relevance of theories for business applications in the domain of technology.
- Apply an in-depth domain-specific knowledge and understanding of applied statistics.
- Autonomously gather material and organise it into a coherent problem set or presentation.
- Creatively apply basic probability theory to develop critical and original solutions for computational problems.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics.
- Efficiently manage interdisciplinary issues that arise in connection to 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.
- Act autonomously in identifying research problems and solutions related to Applied Statistics.
- Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous 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.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
- 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.
- Act autonomously in identifying research problems and solutions related to machine learning.
- Demonstrate self-direction in research and originality in solutions developed for machine learning.
- 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.
- Efficiently manage interdisciplinary issues that arise in connection to machine learning.
- Create synthetic contextualised discussions of key issues related to machine learning.
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
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 evaluate diverse scholarly views on best practices in developing data-intensive applications.
- Critically assess the relevance of theories of data modelling for efficient pipeline creation.
- Acquire knowledge of various methods for warehousing data.
- Develop a critical understanding of data engineering.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
- Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Act autonomously in identifying research problems and solutions related to developing for data at scale.
- Create synthetic contextualised discussions of key issues related to the data engineering lifecycle.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modelling.
- Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers
Intended learning outcomes
- Develop a critical understanding of product design and development.
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
- Critically assess the relevance of theories of user behaviour for product development.
- Critically evaluate diverse scholarly views on assessing user behaviours.
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Act autonomously in identifying research problems and solutions related to product analytics.
About
The course equips students with the essential skills and knowledge to effectively lead and manage AI-focused projects. This course delves into the core principles of project management, including planning, execution, monitoring, and closing projects, with a special emphasis on methodologies that are critical in the fast-paced AI industry. Students will explore both traditional and agile project management approaches, learning to navigate the complexities of AI projects that involve interdisciplinary teams, emerging technologies, and innovative solutions. Throughout the course, students will engage in real-world case studies and hands-on projects to develop practical skills in resource allocation, risk management, communication, and stakeholder engagement. By the end of the course, students will be adept at managing AI projects from conception to completion, ensuring that they deliver value while meeting time, cost, and quality objectives. This course prepares students to take on leadership roles in AI-driven initiatives, positioning them for success in a rapidly evolving field.
Teachers
Intended learning outcomes
- Identify the fundamental principles of project management, including scope, time, cost, and quality management, as applied to AI projects.
- Explain the methodologies and frameworks such as Agile, Scrum, and Waterfall, and how they can be applied to manage AI-based projects effectively.
- Analyse the risk factors in AI project management, including ethical considerations, data privacy, and algorithmic bias, and their potential impacts on project outcomes.
- Implement agile project management practices in real-time scenarios, adapting to changes in project scope, resources, and technological advancements.
- Evaluate project performance using key performance indicators (KPIs) and project management tools, ensuring alignment with AI project objectives.
- Develop comprehensive project plans for AI initiatives, including timelines, budgets, resource allocation, and risk management strategies.
- Optimise project processes and workflows by integrating advanced project management tools and AI-driven insights to enhance productivity and project outcomes.
- Lead cross-functional teams in the execution of AI projects, ensuring effective communication, collaboration, and decision-making throughout the project lifecycle.
- Adapt project management strategies in response to emerging AI trends and challenges, demonstrating flexibility and strategic thinking to achieve project goals.
About
This course gives the detailed overview on how to approach Low Level Design problems with real-world case studies discussed such as Designing a Pen (Mac/Windows), TicTacToe, BookMyShow (most used event booking app, manages millions of users), Email campaign Management System and detailed design of Splitwise.
Teachers
Intended learning outcomes
- Develop a critical understanding of software design and refinement processes.
- 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.
- Critically assess the relevance of theories of software design processes for business applications in the realm of software engineering.
- Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level designs.
- Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes.
- 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 a professional and scholarly approach to research problems pertaining to logical and functional design of software components.
- Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models.
- Act autonomously in identifying research problems and solutions related to refining software designs.
- Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents.
- Demonstrate self-direction in research and originality in solutions developed for using Program Design Languages.
- Create synthetic contextualised discussions of key issues related to specifying the internal logic of software.
About
This is a foundational course on building server-side (or backend) applications using popular JavaScript runtime environments like Node.js. Students will learn event driven programming for building scalable backend for web applications. The module teaches various aspects of Node.js like setup, package manager, client-server programming and connecting to various databases and REST APIs. Most of these concepts would be covered in a hands-on manner with real world examples and applications built from scratch using Node.js on Linux servers. This course also provides an introduction to Linux server administration and scripting with special focus on web-development and networking. Students learn to use Linux monitoring tools (like Monit) to track the health of the servers. The module also provides an introduction to Express.js which is a popular light-weight framework for Node.js applications. Given the practical nature of this course, this would involve building actual website backends via assignments/projects for ecommerce, online learning and/or photo-sharing.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology.
- Critically evaluate diverse scholarly views on 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.
- Develop a critical knowledge of Back End Development.
- Develop a specialised knowledge of key strategies related to Back End Development.
- 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.
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
- Act autonomously in identifying research problems and solutions related to Back End Development.
- Apply a professional and scholarly approach to research problems pertaining to Back End Development.
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development.
- Demonstrate self-direction in research and originality in solutions developed for Back End Development.
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development.
- Create synthetic contextualised discussions of key issues related to Back End Development.
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
Note: Not required by all colleges.
For colleges that include this step, your application will be evaluated against specific program requirements.
Interview
Note: Not all colleges require an interview.
Some colleges may invite selected candidates for an interview as part of their admissions process.
Decision
Receive an admission decision
Enrollment
Complete registration and prepare to begin your studies
.avif)










