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.
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, 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 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.
This course is designed to bridge the gap between data theory and real-world applications. This course focuses on the endto- end process of data analytics, including data collection, cleaning, exploratory data analysis, and visualisation. Students will learn how to apply statistical methods and machine learning techniques to analyse and interpret complex datasets, uncovering actionable insights that drive strategic decision-making across various domains such as business, healthcare, and technology.
The course combines theoretical instruction with hands-on projects, allowing students to work with real datasets and employ state-of-the- art tools and software. By engaging in case studies and practical exercises, students will develop the skills necessary to tackle data-driven problems and present their findings effectively. Upon completion, students will be well-equipped to leverage data analytics to solve real-world challenges and contribute to data-informed decisionmaking processes in their professional careers.
This is a comprehensive course focused on the practical implementation of machine learning techniques across various industries. This course delves into the application of supervised and unsupervised learning algorithms, including regression, classification, clustering, and dimensionality reduction. Students will learn how to leverage these techniques to solve real-world problems in areas such as healthcare, finance, marketing, and beyond. Emphasis is placed on understanding the entire machine learning pipeline, from data preprocessing and model selection to evaluation and deployment. Throughout the course, students will engage in hands-on projects and case studies that demonstrate the practical use of machine learning in real-world scenarios. By applying machine learning algorithms to datasets, students will gain invaluable experience in extracting insights and making data-driven decisions. Additionally, the course covers best practices for model optimization and performance tuning, ensuring students are equipped to create robust and scalable machine learning solutions. By the end of the course, students will have a solid foundation in machine learning applications, empowering them to innovate and drive progress in their respective fields.
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 criticalthinking 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.
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, 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 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.
This course is designed to bridge the gap between data theory and real-world applications. This course focuses on the endto- end process of data analytics, including data collection, cleaning, exploratory data analysis, and visualisation. Students will learn how to apply statistical methods and machine learning techniques to analyse and interpret complex datasets, uncovering actionable insights that drive strategic decision-making across various domains such as business, healthcare, and technology.
The course combines theoretical instruction with hands-on projects, allowing students to work with real datasets and employ state-of-the- art tools and software. By engaging in case studies and practical exercises, students will develop the skills necessary to tackle data-driven problems and present their findings effectively. Upon completion, students will be well-equipped to leverage data analytics to solve real-world challenges and contribute to data-informed decisionmaking processes in their professional careers.
This course is designed to immerse students in the latest advancements and trends in AI. This course covers cutting-edge technologies such as deep learning, neural networks, natural language processing, computer vision, and reinforcement learning. Students will explore the innovative applications of these technologies in various domains, including healthcare, finance, robotics, and autonomous systems. The course emphasises not only understanding these technologies but also critically evaluating their potential and limitations.
Through a combination of theoretical insights and hands-on projects, students will gain practical experience with state-of-the-art AI tools and platforms. They will engage in experiments, case studies, and research activities that foster a deep appreciation of the current landscape and future directions of AI technology. By the end of the course, students will be well-equipped to contribute to the development and implementation of emerging AI solutions, positioning themselves at the forefront of technological innovation and advancement in the field of artificial intelligence.
This is a comprehensive course focused on the practical implementation of machine learning techniques across various industries. This course delves into the application of supervised and unsupervised learning algorithms, including regression, classification, clustering, and dimensionality reduction. Students will learn how to leverage these techniques to solve real-world problems in areas such as healthcare, finance, marketing, and beyond. Emphasis is placed on understanding the entire machine learning pipeline, from data preprocessing and model selection to evaluation and deployment. Throughout the course, students will engage in hands-on projects and case studies that demonstrate the practical use of machine learning in real-world scenarios. By applying machine learning algorithms to datasets, students will gain invaluable experience in extracting insights and making data-driven decisions. Additionally, the course covers best practices for model optimization and performance tuning, ensuring students are equipped to create robust and scalable machine learning solutions. By the end of the course, students will have a solid foundation in machine learning applications, empowering them to innovate and drive progress in their respective fields.
In this module we will discuss general approaches to the construction of efficient solutions to problems.
Such methods are of interest because:
They provide templates suited to solving a broad range of diverse problems.
They can be translated into common control and data structures provided by most high-level languages.
The temporal and spatial requirements of the algorithms which result can be precisely analyzed.
This course will provide a solid foundation and background to design and analysis of algorithms. In particular, upon successful completion of this course, students will be able to understand, explain and apply key algorithmic concepts and principles, which might include:
Greedy algorithms (Activity Selection, 0-1 Knapsack Problem, Fractional Knapsack Problem)
Dynamic programming (Longest Common Subsequence, 0-1 Knapsack Problem)
Minimum Spanning Trees (Prim’s Algorithm, Kruskal’s Algorithm)
Graph Algorithms (Dijkstra’s Shortest Path Algorithm, Bipartite Graphs, Minimum Vertex Cover)
Although more than one technique may be applicable to a specific problem, it is often the case that an algorithm constructed by one approach is clearly superior to equivalent solutions built using alternative techniques. This module will help students assess these choices.
Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.
This course covers elementary 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.
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.
This course is designed to introduce students to the core concepts and methodologies of data science. This course covers a broad range of topics, including data collection, cleaning, and preprocessing, as well as statistical analysis, data visualisation, and exploratory data analysis. Students will learn how to apply various data science techniques to extract valuable insights from large datasets, empowering them to make data-driven decisions in diverse fields such as business, healthcare, and technology. Throughout the course, students will engage in practical exercises and projects that emphasise the application of data science principles to real-world problems. By working with actual datasets and using state-of-the-art tools and software, students will develop the skills necessary to analyse, interpret, and present data effectively. Upon completion of the course, students will have a strong foundation in data science, enabling them to leverage data to solve complex problems and drive innovation in their professional careers within the realm of artificial intelligence.
This is a foundational and mandatory course which aims to build student's ability to apply various algorithmic design methods to provide an optimal solution to computational problems. This course starts with time and space complexity analysis of divide and conquer algorithms using recursion-tree based methods and Master’s theorem. Students would also learn about amortized time and space complexity analysis for randomized/probabilistic algorithms. Various algorithmic design strategies would be introduced via real world examples and problems. Students would learn when, where and how to optimally use Divide and Conquer, Dynamic programming (top-down and button-up), Greedy, Backtracking and Randomization strategies with examples. The module uses various practical examples from Array manipulations, Sorting, Searching, String manipulations, Tree & Graphs traversals, Graph path-finding, Spanning Trees etc., to introduce the above algorithmic strategies in action. Students would implement many of the above algorithmic design methods from scratch as part of the assignments. The module also introduces how some of these popular algorithms are readily available via popular libraries in various programming languages.
This course is aimed to build a strong foundational knowledge of data structures (DS) used extensively in computing. The module starts with introducing time and space complexity notations and estimation for code snippets. This helps students be able to make trade-offs between various Data Structures while solving real world computational problems. The module introduces most widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs. The module discusses multiple implementation variations for each of the above data-structures along with trade-offs in space and time for each implementation. In this course, students implement these data-structures from scratch to gain a solid understanding of their inner workings. Students are also introduced to how to use the built-in data-structures available in various programming languages/libraries like Python/NumPy/C++ STL/Java/JavaScript. Students solve real-world problems where they must use an optimal DS to solve a computational problem at hand.
This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.
This course is aimed at deepening students' understanding of cutting-edge topics in artificial intelligence. This course delves into advanced methodologies such as generative adversarial networks (GANs), meta-learning, and advanced reinforcement learning techniques. Students will explore the theoretical underpinnings and practical implementations of these sophisticated AI concepts, focusing on their applications in complex problem-solving and innovation across various domains.
Through a blend of advanced theoretical discussions and hands-on projects, students will engage with state-of-the-art tools and techniques, working on real-world problems and research projects. The course encourages critical thinking and problem-solving, preparing students to tackle the challenges of implementing and advancing AI technologies. By the end of the course, students will have a robust understanding of advanced AI concepts and be well-equipped to contribute to cutting-edge research and development in the field of artificial intelligence.
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 criticalthinking 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.
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.
This course is focused on the advanced techniques and architectures used to build sophisticated AI systems. This course provides an in-depth exploration of neural networks, including feedforward networks, convolutional neural networks (CNNs), recurrent neural networks (RNNs), and deep learning models. Students will gain a thorough understanding of how these models are designed, trained, and optimised to tackle complex tasks such as image recognition, natural language processing, and predictive analytics.
Through a combination of theoretical concepts and practical implementations, students will engage with cutting-edge tools and frameworks, such as TensorFlow and PyTorch, to develop and experiment with deep learning models. The course includes hands-on projects and case studies that highlight the application of neural networks in real-world scenarios, enabling students to build and fine-tune models for diverse applications. By the end of the course, students will be proficient in designing and deploying advanced neural network architectures, positioning themselves at the forefront of AI technology and innovation.
Upon completion of this course, you will gain a deep understanding of how business analytics supports data-driven decision-making in an evolving business landscape. You will explore key analytics frameworks, learning how organisations leverage data to navigate uncertainty and drive strategic growth. Through practical applications, you will differentiate between various data-driven techniques and examine their real-world implementation across industries such as banking and healthcare. Additionally, you will critically assess the challenges and ethical considerations of integrating analytics tools into business processes, equipping you to apply these insights effectively in your organisation.
Upon completion of this programme, you will develop a customer-centric and future-oriented marketing mindset to promote sustainable growth in your organisation, or organisations you might work with in the future. Additionally, you will delve into the foundational topic of finance and economics-valuation. You will gain a comprehensive understanding of how key concepts are applied in financial decision-making and investment strategies.
In this course, you will develop the strategic awareness and practical skills needed to lead digital transformation effectively within your organisation. You will explore the drivers of digital disruption, learn how to critically assess emerging technologies, and understand how to deliver transformation projects that align with organisational goals. You will also gain essential insights into cyber risk: how
to anticipate, mitigate, and respond to threats, and learn how to embed cyber resilience into your leadership approach. Through case studies, frameworks, and reflection exercises, you will build the confidence to lead digital initiatives in an informed, strategic, and future-ready way.
Upon completion of this programme, you will develop fluency in the fundamental frameworks and analytical tools needed to effectively assess an organisation's strategic landscape. Through a blend of theoretical exploration and practical application, you'll gain the ability to develop insightful strategic recommendations for organisational success. Additionally, you will develop the knowledge and skills to analyse and improve how work is performed in your organisation.
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, 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 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.
This course is designed to bridge the gap between data theory and real-world applications. This course focuses on the endto- end process of data analytics, including data collection, cleaning, exploratory data analysis, and visualisation. Students will learn how to apply statistical methods and machine learning techniques to analyse and interpret complex datasets, uncovering actionable insights that drive strategic decision-making across various domains such as business, healthcare, and technology.
The course combines theoretical instruction with hands-on projects, allowing students to work with real datasets and employ state-of-the- art tools and software. By engaging in case studies and practical exercises, students will develop the skills necessary to tackle data-driven problems and present their findings effectively. Upon completion, students will be well-equipped to leverage data analytics to solve real-world challenges and contribute to data-informed decisionmaking processes in their professional careers.
This course is designed to immerse students in the latest advancements and trends in AI. This course covers cutting-edge technologies such as deep learning, neural networks, natural language processing, computer vision, and reinforcement learning. Students will explore the innovative applications of these technologies in various domains, including healthcare, finance, robotics, and autonomous systems. The course emphasises not only understanding these technologies but also critically evaluating their potential and limitations.
Through a combination of theoretical insights and hands-on projects, students will gain practical experience with state-of-the-art AI tools and platforms. They will engage in experiments, case studies, and research activities that foster a deep appreciation of the current landscape and future directions of AI technology. By the end of the course, students will be well-equipped to contribute to the development and implementation of emerging AI solutions, positioning themselves at the forefront of technological innovation and advancement in the field of artificial intelligence.
This is a comprehensive course focused on the practical implementation of machine learning techniques across various industries. This course delves into the application of supervised and unsupervised learning algorithms, including regression, classification, clustering, and dimensionality reduction. Students will learn how to leverage these techniques to solve real-world problems in areas such as healthcare, finance, marketing, and beyond. Emphasis is placed on understanding the entire machine learning pipeline, from data preprocessing and model selection to evaluation and deployment. Throughout the course, students will engage in hands-on projects and case studies that demonstrate the practical use of machine learning in real-world scenarios. By applying machine learning algorithms to datasets, students will gain invaluable experience in extracting insights and making data-driven decisions. Additionally, the course covers best practices for model optimization and performance tuning, ensuring students are equipped to create robust and scalable machine learning solutions. By the end of the course, students will have a solid foundation in machine learning applications, empowering them to innovate and drive progress in their respective fields.
In this module we will discuss general approaches to the construction of efficient solutions to problems.
Such methods are of interest because:
They provide templates suited to solving a broad range of diverse problems.
They can be translated into common control and data structures provided by most high-level languages.
The temporal and spatial requirements of the algorithms which result can be precisely analyzed.
This course will provide a solid foundation and background to design and analysis of algorithms. In particular, upon successful completion of this course, students will be able to understand, explain and apply key algorithmic concepts and principles, which might include:
Greedy algorithms (Activity Selection, 0-1 Knapsack Problem, Fractional Knapsack Problem)
Dynamic programming (Longest Common Subsequence, 0-1 Knapsack Problem)
Minimum Spanning Trees (Prim’s Algorithm, Kruskal’s Algorithm)
Graph Algorithms (Dijkstra’s Shortest Path Algorithm, Bipartite Graphs, Minimum Vertex Cover)
Although more than one technique may be applicable to a specific problem, it is often the case that an algorithm constructed by one approach is clearly superior to equivalent solutions built using alternative techniques. This module will help students assess these choices.
Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.
This course covers elementary 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.
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.
This course is designed to introduce students to the core concepts and methodologies of data science. This course covers a broad range of topics, including data collection, cleaning, and preprocessing, as well as statistical analysis, data visualisation, and exploratory data analysis. Students will learn how to apply various data science techniques to extract valuable insights from large datasets, empowering them to make data-driven decisions in diverse fields such as business, healthcare, and technology. Throughout the course, students will engage in practical exercises and projects that emphasise the application of data science principles to real-world problems. By working with actual datasets and using state-of-the-art tools and software, students will develop the skills necessary to analyse, interpret, and present data effectively. Upon completion of the course, students will have a strong foundation in data science, enabling them to leverage data to solve complex problems and drive innovation in their professional careers within the realm of artificial intelligence.
This is a foundational and mandatory course which aims to build student's ability to apply various algorithmic design methods to provide an optimal solution to computational problems. This course starts with time and space complexity analysis of divide and conquer algorithms using recursion-tree based methods and Master’s theorem. Students would also learn about amortized time and space complexity analysis for randomized/probabilistic algorithms. Various algorithmic design strategies would be introduced via real world examples and problems. Students would learn when, where and how to optimally use Divide and Conquer, Dynamic programming (top-down and button-up), Greedy, Backtracking and Randomization strategies with examples. The module uses various practical examples from Array manipulations, Sorting, Searching, String manipulations, Tree & Graphs traversals, Graph path-finding, Spanning Trees etc., to introduce the above algorithmic strategies in action. Students would implement many of the above algorithmic design methods from scratch as part of the assignments. The module also introduces how some of these popular algorithms are readily available via popular libraries in various programming languages.
This course is aimed to build a strong foundational knowledge of data structures (DS) used extensively in computing. The module starts with introducing time and space complexity notations and estimation for code snippets. This helps students be able to make trade-offs between various Data Structures while solving real world computational problems. The module introduces most widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs. The module discusses multiple implementation variations for each of the above data-structures along with trade-offs in space and time for each implementation. In this course, students implement these data-structures from scratch to gain a solid understanding of their inner workings. Students are also introduced to how to use the built-in data-structures available in various programming languages/libraries like Python/NumPy/C++ STL/Java/JavaScript. Students solve real-world problems where they must use an optimal DS to solve a computational problem at hand.
This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.
This course is aimed at deepening students' understanding of cutting-edge topics in artificial intelligence. This course delves into advanced methodologies such as generative adversarial networks (GANs), meta-learning, and advanced reinforcement learning techniques. Students will explore the theoretical underpinnings and practical implementations of these sophisticated AI concepts, focusing on their applications in complex problem-solving and innovation across various domains.
Through a blend of advanced theoretical discussions and hands-on projects, students will engage with state-of-the-art tools and techniques, working on real-world problems and research projects. The course encourages critical thinking and problem-solving, preparing students to tackle the challenges of implementing and advancing AI technologies. By the end of the course, students will have a robust understanding of advanced AI concepts and be well-equipped to contribute to cutting-edge research and development in the field of artificial intelligence.
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.
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 criticalthinking 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.
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.
This course is focused on the advanced techniques and architectures used to build sophisticated AI systems. This course provides an in-depth exploration of neural networks, including feedforward networks, convolutional neural networks (CNNs), recurrent neural networks (RNNs), and deep learning models. Students will gain a thorough understanding of how these models are designed, trained, and optimised to tackle complex tasks such as image recognition, natural language processing, and predictive analytics.
Through a combination of theoretical concepts and practical implementations, students will engage with cutting-edge tools and frameworks, such as TensorFlow and PyTorch, to develop and experiment with deep learning models. The course includes hands-on projects and case studies that highlight the application of neural networks in real-world scenarios, enabling students to build and fine-tune models for diverse applications. By the end of the course, students will be proficient in designing and deploying advanced neural network architectures, positioning themselves at the forefront of AI technology and innovation.