Master of Science in Computer Science: Artificial Intelligence and Machine Learning

Fully Online
18 months
2250 hours | 90 ECTS
Degree
Scaler Neovarsity
Accreditation:
EQF7

About

The course teaches students comprehensive and specialised subjects in computer science; it teaches students cutting-edge engineering skills to solve real-world problems using computational thinking and tools. Most of this program is the case (or) project-based where students learn by solving real-world problems end to end. This program has core courses that focus on computational thinking and problem solving from first principles. The core courses are followed by specialization courses that teach various aspects of building real-world systems. This is followed by more advanced courses that focus on research-level topics, which cover state-of-the-art methods. The program also has a capstone project at the end, wherein students can either work on building end-to-end solutions to real-world problems (or) work on a research topic. The program also focuses on teaching the students the “ability to learn” so that they can be lifelong learners constantly upgrading their skills. Students can choose from a spectrum of courses to specialize in a specific sub-area of Computer Science like Artificial Intelligence and Machine Learning, Cloud and Full Stack Development, etc.

Target Audience

-  Ages 19-30, 31-65, 65+
  • Target Group

    • This course is designed for individuals who wish to enhance their knowledge of computer science and its various applications used in different fields of employment. It is designed for those that will have responsibility for planning, organizing, and directing technological operations. In all cases, the target group should be prepared to pursue substantial academic studies. Students must qualify for the course of study by entrance application. A prior computer science degree is not required; however the course does assume technical aptitude; and it targets students with finance, engineering, or STEM training or professional experience.

  • Mode of attendance

    • Online/Blended Learning

  • Structure of the programme - Please note that this structure may be subject to change based on faculty expertise and evolving academic best practices. This flexibility ensures we can provide the most up-to-date and effective learning experience for our students.The Master of Science in Computer Science combines asynchronous components (lecture videos, readings, and assignments) and synchronous meetings attended by students and a teacher during a video call. Asynchronous components support the schedule of students from diverse work-life situations, and synchronous meetings provide accountability and motivation for students. Students have direct access to their teacher and their peers at all times through the use of direct message and group chat; teachers are also able to initiate voice and video calls with students outside the regularly scheduled synchronous sessions. Modules are offered continuously on a publicly advertised schedule consisting of cohort sequences designed to accommodate adult students at different paces. Although there are few formal prerequisites identified throughout the programme, enrollment in courses depends on advisement from Woolf faculty and staff.The degree has 3 tiers: The first tier is required for all students, who must take 15 ECTS. In the second tier, students must select 45 ECTS from elective tiers. Tier Three may be completed in two different ways: a) by completing a 30ECTS Advanced Applied Computer Science capstone project, or b) by completing a 10 ECTS Applied Computer Science project and 20 ECTS of electives from the program.

  • Grading System

    • Scale: 0-100 points

    • Components: 60% of the mark derives from the average of the assignments, and 40% of the mark derives from the cumulative examination

    • Passing requirement: minimum of 60% overall

  • Dates of Next Intake

    • Rolling admission

  • Pass rates

    • 2023 pass rates will be publicised in the next cycle, contingent upon ensuring sufficient student data for anonymization.

  • Identity Malta’s VISA requirement for third country nationals: https://www.identitymalta.com/unit/central-visa-unit/

    • Passing requirement: minimum of 60% overall

  • Dates of Next Intake

    • Rolling admission

  • Pass rates

Supporting your global mobility
Supporting your global mobility

Global Recognition

Woolf degrees align with major international qualification frameworks, ensuring global recognition and comparability. Earn your degree in the most widely recognized accreditation system in the world.

Learn More About Degree Mobility

Our accreditation through the Malta Further and Higher Education Authority (MFHEA) provides a solid foundation for credential recognition worldwide.

Success stories
Success stories

How students have found success through Woolf

"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
“Woolf and Scaler’s hands-on Master’s program gave me the practical skills and confidence I was missing after my undergraduate degree. Real projects, professional tools, and mentorship transformed how I think, build, and solve problems — leading me to a career as a Software Engineer.”
Bhavya Dhiman
Master’s in Computer Science
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
“Woolf’s flexible, accredited program gave me structure, community, and the confidence to grow. From landing my dream internship to winning a hackathon, Woolf opened doors and shaped both my career and mindset.”
Dominion Yusuf
Higher Diploma in Computer Science
"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
“Woolf and Scaler’s hands-on Master’s program gave me the practical skills and confidence I was missing after my undergraduate degree. Real projects, professional tools, and mentorship transformed how I think, build, and solve problems — leading me to a career as a Software Engineer.”
Bhavya Dhiman
Master’s in Computer Science
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
“Woolf’s flexible, accredited program gave me structure, community, and the confidence to grow. From landing my dream internship to winning a hackathon, Woolf opened doors and shaped both my career and mindset.”
Dominion Yusuf
Higher Diploma in Computer Science
- Implement and apply machine learning algorithms in Python to solve real- world problems - Design and develop a simple neural network architecture for image recognition - Troubleshoot and debug errors encountered while working with machine learning models

Course Structure

Productionization of Machine Learning Systems
125 hours | 5 ECTS

About

This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve multiple real world cases and discuss solutions built by various companies and organizations to provide the students a comprehensive understanding of varied systems and design choices.

Teachers

Archit Sharma
Archit Sharma
Shivank Agrawal
Shivank Agrawal
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
  • Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
  • Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
  • Develop a critical knowledge of Productionization of Machine Learning Systems
  • Critically evaluate diverse scholarly views on Productionization of Machine Learning
Skills
  • Creatively apply ML systems to develop critical and original solutions for computational problems
  • Apply an in-depth domain-specific knowledge and understanding to technology
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Autonomously gather material and organise it into coherent problem sets or presentation
Competencies
  • Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
  • Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
  • Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
  • Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
  • Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
High Dimensional Data Analysis
125 hours | 5 ECTS

About

This course is aimed to help learners understand various techniques and algorithms to visualize, analyse and understand high dimensional data which is very common in Data Science and ML. The module starts with linear algebraic methods like Principal Component Analysis (PCA) and SVD (Singular Value Decomposition) for obtaining linear projection of high dimensional data. This is followed by more advanced nonlinear and state of the art techniques like t-SNE and UMAP for visualizing high dimensional data. Each of these techniques would be covered in full mathematical detail from first principles along with applying them to real world datasets in NLP, Genomics and internet-datasets. Students will also study how PCA and SVD are related to general Matrix Factorization techniques. To analyse and understand high dimensional un-labelled data, students learn clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN. The modules shows how some of the techniques are mathematically related to Matrix Factorization. Students study various outlier detection techniques based on density, proximity, factorization and cluster analysis.

Teachers

Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Acquire knowledge of clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN.
  • Develop a critical knowledge of Data Analysis.
  • Develop a specialised knowledge of key strategies related to Data Analysis.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on Data Analysis.
Skills
  • Autonomously gather material and organise it into coherent problems sets or presentation.
  • Apply an in-depth domain-specific knowledge and understanding to Data Analysis techniques.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various techniques to develop critical and original solutions for computational problems.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Analysis.
  • Act autonomously in identifying research problems and solutions related to Data Analysis.
  • Efficiently manage interdisciplinary issues that arise in connection to Data Analysis.
  • Create synthetic contextualised discussions of key issues related to Data Analysis.
  • Apply a professional and scholarly approach to research problems pertaining to Data Analysis.
  • Demonstrate self-direction in research and originality in solutions developed for data analysis.
Mathematics for Computer Science
125 hours | 5 ECTS

About

Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.

This course covers 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.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Anshuman Singh
Anshuman Singh
Varun Garg
Varun Garg
Shivank Agrawal
Shivank Agrawal
Omansh Mathur
Omansh Mathur

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on the appropriateness of various mathematical approaches to software development problems.
  • Acquire knowledge of various methods for optimizing algorithm design.
  • Develop a specialised knowledge of evaluating and describing algorithmic performance using tools from discrete mathematics.
  • Develop a critical knowledge of discrete mathematics as a tool in software development.
  • Critically assess the relevance of theories of recursivity and induction for business applications in the domain of computational problem-solving.
Skills
  • Creatively apply various programming methods to most efficiently implement state machines in algorithmic design.
  • Apply an in-depth domain-specific knowledge and understanding of discrete mathematics to algorithmic designs.
  • 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.
Competencies
  • Solve problems and be prepared to take leadership decisions related to applying discrete mathematics to optimizing algorithms.
  • Efficiently manage interdisciplinary issues that arise in connection to permutations and combinations in algorithm design.
  • Create synthetic contextualised discussions of key issues related to applications of discrete mathematics in computer science.
  • Demonstrate self-direction in research and originality in solutions developed for solving problems related to discrete probability.
  • Act autonomously in identifying research problems and solutions related to the real-world application of discrete mathematics.
  • Apply a professional and scholarly approach to research problems pertaining to the growth of functions.
Relational Databases
125 hours | 5 ECTS

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 optimized 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 minimize 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 opensource MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.

Teachers

Alok Singh
Alok Singh
Bipin Kalra
Bipin Kalra
Amit Singh Chowdhery
Amit Singh Chowdhery
Thanish Batcha S
Thanish Batcha S
Keerthikumar Sg
Keerthikumar Sg

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of relational databases.
  • Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database.
  • Critically evaluate diverse scholarly views on relational databases.
  • Develop a specialised knowledge of key strategies related to Relational Databases.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Creatively apply Relational Databases methods to develop critical and original solutions for computational problems.
  • Apply an in-depth domain-specific knowledge and understanding to Relational Databases.
  • 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.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to Relational Databases.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases.
  • Act autonomously in identifying research problems and solutions related to Relational Databases.
  • Create synthetic contextualised discussions of key issues 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.
Introduction to Problem-Solving Techniques: Part 1
125 hours | 5 ECTS

About

The ability to solve problems is a skill, and just like any other skill, the more one practices, the better one gets. So how exactly does one practice problem solving? Learning about different problem-solving strategies and when to use them will give a good start. Problem solving is a process. Most strategies provide steps that help you identify the problem and choose the best solution.

Building a toolbox of problem-solving strategies will improve problem solving skills. With practice, students will be able to recognize and choose among multiple strategies to find the most appropriate one to solve complex problems.

In this course we will introduce arrays and some of their real-world applications, such as prefix sum, carry forward, subarrays, and 2-dimensional matrices. We will also include industry relevant problems and dive deeply into building their solutions with various approaches, recognizing each’s limitations (i.e when to use a data structure and when not to use a data structure).

By the end of this course a student can come up with the best strategy which can optimize both time and space complexities by choosing the best data structure suitable for a given problem.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Nitin Choudhary
Nitin Choudhary
Navdeep Sandhu
Navdeep Sandhu
Anshuman Singh
Anshuman Singh
Alok Singh
Alok Singh

Intended learning outcomes

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

About

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.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Navdeep Sandhu
Navdeep Sandhu
Shivank Agrawal
Shivank Agrawal
Omansh Mathur
Omansh Mathur

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to design and analysis of algorithms.
  • Develop a critical knowledge of design and analysis of algorithms.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on design and analysis of algorithms.
  • Acquire knowledge of various algorithmic design methods.
Skills
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms.
  • Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms.
  • Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms.
  • Act autonomously in identifying research problems and solutions related to design and analysis of algorithms.
  • Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms.
  • Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems.
Data Structures
125 hours | 5 ECTS

About

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.

Teachers

Prithviraj Pillai
Prithviraj Pillai
Yahnit Sirineni
Yahnit Sirineni
Nitin Choudhary
Nitin Choudhary
Navdeep Sandhu
Navdeep Sandhu
Shivank Agrawal
Shivank Agrawal

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to Data Structures and their usage in computer science.
  • Critically evaluate diverse scholarly views on data structures.
  • Develop a critical knowledge of Data Structures and their implementation.
  • Acquire knowledge widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs.
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding of Data Structures.
  • Apply data structures in a creative way to develop original, critical solutions to real world problems.
  • Autonomously gather material and organise it into coherent data structures.
Competencies
  • Act autonomously in identifying research problems and solutions related to Data Structures and their implementation.
  • Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation.
  • Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation.
  • Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation.
  • Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation.
Introduction to Computer Programming: Part 1
125 hours | 5 ECTS

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. We also learn when and how to use inbuilt-data structures like 1-Dimensional and 2-Dimensional Arrays. We introduce the concepts of computational complexity to help students write optimized code using appropriate data structures and algorithmic design methods.

The module can be taught to allow students to learn these concepts using a modern programming language such as Java or Python.

The course prepares students to handle advanced data structures and algorithm design methods in the separate module, ‘Data Structures’.

Teachers

Prithviraj Pillai
Prithviraj Pillai
Nitin Choudhary
Nitin Choudhary
Navdeep Sandhu
Navdeep Sandhu

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of a modern programming language such as Java or Python.
  • Acquire knowledge of various methods for structuring data.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to Object-Oriented Programming.
  • Critically evaluate diverse scholarly views on computational complexity.
Skills
  • Creatively apply various programming methods to develop critical and original solutions to computational problems.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Apply an in-depth domain-specific knowledge and understanding to computer programming.
Competencies
  • Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented
  • Act autonomously in identifying research problems and solutions related to Object-Oriented programming.
  • Apply a professional and scholarly approach to research problems pertaining to computational complexity.
  • Demonstrate self-direction in research and originality in solutions developed for modern programming languages.
  • Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming.
Foundations of Machine Learning
125 hours | 5 ECTS

About

This course focuses on building basic classification and regression models and understanding these models rigorously both with a mathematical and an applicative focus. It opens with a basic introduction to high dimensional geometry of points, distance-metrics, hyperplanes and hyperspheres. Then, it introduces the mathematical formulation of logistic regression to find a separating hyperplane. Vector calculus and gradient descent (GD)-based algorithms are explored to learn to solve the optimization problem, including computational variations of GD like mini-batch and stochastic gradient descent. The course also covers other popular classification and regression methods like k-Nearest Neighbours, Naive Bayes, Decision Trees, Linear Regression etc, to show how each of these techniques performs under various real-world situations like the presence of outliers, imbalanced data, multi class classification etc. Lectures on bias and variance tradeoff and various techniques to avoid overfitting and underfitting are incorporated. Algorithms are taught from a Bayesian viewpoint along with geometric intuition. This course would be heavily hands-on where students apply all these classical techniques to real world problems.

Teachers

Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • Develop a critical understanding of classification and regression machine learning problems.
  • Critically evaluate diverse scholarly views on Bayesian and geometric methods for evaluating algorithms.
  • Develop a specialised knowledge of the use of gradient descent and related algorithms for optimising solutions.
  • Acquire knowledge of various methods for solving both classification and regression problems, such as k-nearest neighbours, naïve Bayes, decision trees, and linear regression.
  • Critically assess the relevance of theories of machine learning in the realm of software engineering.
Skills
  • Apply an in-depth domain-specific knowledge and understanding of the use cases of machine learning algorithms in business.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various visual and written methods for explaining machine learning solutions to expert and, where possible, nontechnical audiences.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • Create synthetic contextualised discussions of key issues related to classification and regression problems.
  • Demonstrate self-direction in research and originality in solutions developed to account for imbalanced data.
  • Act autonomously in identifying research problems and solutions related to the classification problems in machine learning.
  • Efficiently manage interdisciplinary issues that arise in connection to over- and underfitting of data to models.
  • Apply a professional and scholarly approach to research problems pertaining to gradient descent-based algorithms.
  • Solve problems and be prepared to take leadership decisions related to selecting algorithms for machine learning problems
Introduction to Machine Learning
125 hours | 5 ECTS

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, 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.

Teachers

Rohit Jindal
Rohit Jindal
Shivank Agrawal
Shivank Agrawal
Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • 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.
  • Develop a critical knowledge of machine learning.
  • Critically evaluate diverse scholarly views on machine learning.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Creatively apply regression models to develop critical and original solutions for computational issues.
  • Autonomously gather material and organise it into coherent problem sets and presentation.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to machine learning.
  • Act autonomously in identifying research problems and solutions related to machine learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning.
  • Demonstrate self-direction in research and originality in solutions developed for machine learning.
  • Efficiently manage interdisciplinary issues that arise in connection to machine learning.
  • Create synthetic contextualised discussions of key issues related to machine learning.
Numerical Programming in Python
125 hours | 5 ECTS

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 optimized code using appropriate data structures and algorithmic design methods. The module does not dive deep into the data structures and algorithm design methods in this course - that is available in the ‘Data Structures and Algorithms’ module. This course is valuabe for all students specializing in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.

Teachers

Aniruddha Mukherjee
Aniruddha Mukherjee
Sachin Kaushik
Sachin Kaushik
Hina Sharma
Hina Sharma
Ritwik Malla
Ritwik Malla

Intended learning outcomes

Knowledge
  • Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas.
  • Develop a specialised knowledge of key strategies related to Numerical programming in Python.
  • Critically evaluate diverse scholarly views on Numerical programming in Python.
  • Develop a critical knowledge of Numerical programming in Python.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Autonomously gather material and organize it into a coherent problem sets or presentation.
  • Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python.
  • Create new solutions that are critical to solving computational problems through creatively applying code writing.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Demonstrate self-direction in research and originality in solutions developed for Numerical programming in Python.
  • Apply a professional and scholarly approach to research problems pertaining to Numerical programming in Python.
  • Act autonomously in identifying research problems and solutions related to Numerical programming in Python.
  • Efficiently manage interdisciplinary issues that arise in connection to Numerical programming in Python.
  • Create synthetic contextualised discussions of key issues related 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.
Productionization of Machine Learning Systems
125 hours | 5 ECTS

About

This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve multiple real world cases and discuss solutions built by various companies and organizations to provide the students a comprehensive understanding of varied systems and design choices.

Teachers

Archit Sharma
Archit Sharma
Shivank Agrawal
Shivank Agrawal
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
  • Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
  • Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
  • Develop a critical knowledge of Productionization of Machine Learning Systems
  • Critically evaluate diverse scholarly views on Productionization of Machine Learning
Skills
  • Creatively apply ML systems to develop critical and original solutions for computational problems
  • Apply an in-depth domain-specific knowledge and understanding to technology
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Autonomously gather material and organise it into coherent problem sets or presentation
Competencies
  • Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
  • Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
  • Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
  • Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
  • Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
System Design
125 hours | 5 ECTS

About

This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

Teachers

Tanmay Kacker
Tanmay Kacker
Pushkar Singh
Pushkar Singh

Intended learning outcomes

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

About

This course is aimed to help learners understand various techniques and algorithms to visualize, analyse and understand high dimensional data which is very common in Data Science and ML. The module starts with linear algebraic methods like Principal Component Analysis (PCA) and SVD (Singular Value Decomposition) for obtaining linear projection of high dimensional data. This is followed by more advanced nonlinear and state of the art techniques like t-SNE and UMAP for visualizing high dimensional data. Each of these techniques would be covered in full mathematical detail from first principles along with applying them to real world datasets in NLP, Genomics and internet-datasets. Students will also study how PCA and SVD are related to general Matrix Factorization techniques. To analyse and understand high dimensional un-labelled data, students learn clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN. The modules shows how some of the techniques are mathematically related to Matrix Factorization. Students study various outlier detection techniques based on density, proximity, factorization and cluster analysis.

Teachers

Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Acquire knowledge of clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN.
  • Develop a critical knowledge of Data Analysis.
  • Develop a specialised knowledge of key strategies related to Data Analysis.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on Data Analysis.
Skills
  • Autonomously gather material and organise it into coherent problems sets or presentation.
  • Apply an in-depth domain-specific knowledge and understanding to Data Analysis techniques.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various techniques to develop critical and original solutions for computational problems.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Analysis.
  • Act autonomously in identifying research problems and solutions related to Data Analysis.
  • Efficiently manage interdisciplinary issues that arise in connection to Data Analysis.
  • Create synthetic contextualised discussions of key issues related to Data Analysis.
  • Apply a professional and scholarly approach to research problems pertaining to Data Analysis.
  • Demonstrate self-direction in research and originality in solutions developed for data analysis.
Product Management for Software Engineers
125 hours | 5 ECTS

About

Every organisation is building products to solve the pain points of its customers. Product managers are a critical part of an organisation, who make sure that evolving customer needs, and market trends are observed and converted into delightful solutions which help businesses get its outcomes.

In this course, students will get a fundamental understanding of product management practices.

This will give them a comprehensive view of the complete product management life cycle.

Teachers

Nischal Shetty
Nischal Shetty
Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
  • Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
  • Critically evaluate diverse scholarly views on assessing user behaviours.
  • Critically assess the relevance of theories of user behaviour for product development.
  • Develop a critical knowledge of product design and development.
Skills
  • 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.
  • Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • 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.
  • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
  • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
  • 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.
  • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
Product Analytics
125 hours | 5 ECTS

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

Suraaj Hasija
Suraaj Hasija

Intended learning outcomes

Knowledge
  • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
  • Critically evaluate diverse scholarly views on assessing user behaviours.
  • Develop a critical knowledge 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.
  • Critically assess the relevance of theories of user behaviour for product development.
Skills
  • 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.
Competencies
  • Act autonomously in identifying research problems and solutions related to product analytics.
  • Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
  • 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.
  • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
  • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
  • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
Distributed Machine Learning
125 hours | 5 ECTS

About

This course provides an in-depth understanding of distributed systems for ML and Deep Learning using CPU,GPU and TPU clusters. It starts with foundations of Map-reduce framework and in-memory distributed and resilient data structures that form the backbone of Spark. Students will learn the architectural details of these distributed system platforms and how they can be leveraged to perform data analysis and model training on petabyte scale datasets. We cover how distributed training is achieved for popular ML algorithms on Spark by understanding the internal working of SparkMLLib. The module then focuses on understanding distributed graph processing using GraphX. Students move on to Deep-Learning algorithms and how distributed algorithms can be designed for them when we have GPU or TPU clusters at our disposal. We also dive deep into how TensorFlow archives distributed computing for popular Deep Learning algorithms. Students will study distributed data stores and how they can be used for ML using popular datastore systems like Hive and SparkSQL. The module concludes by discussing state of the art distributed, low-latency approximate nearest neighbour algorithms along with their implementations in ElasticSearch.

Teachers

Rohit Jindal
Rohit Jindal
Sachin Kaushik
Sachin Kaushik
Shivank Agrawal
Shivank Agrawal
Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • Acquire knowledge of TensorFlow and popular Deep Learning algorithms.
  • Develop a specialized knowledge of key strategies related to Distributed Machine Learning.
  • Critically evaluate diverse scholarly views on Distributed Machine Learning.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a critical knowledge of Distributed Machine Learning.
Skills
  • 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 Distributed Machine Learning techniques to develop critical and original solutions for computational problems
  • Apply an in-depth domain-specific knowledge and understanding to Distributed Machine Learning solutions.
Competencies
  • Efficiently manage interdisciplinary issues that arise in connection to Distributed Machine Learning.
  • Apply a professional and scholarly approach to research problems pertaining to Distributed Machine Learning.
  • Act autonomously in identifying research problems and solutions related to Distributed Machine Learning.
  • Demonstrate self-direction in research and originality in solutions developed for Distributed Machine Learning.
  • Create synthetic contextualised discussions of key issues related to Distributed Machine Learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles Distributed Machine Learning.
Advanced AI Concepts
125 hours | 5 ECTS

About

This course introduces learners to Generative AI as required by Software Engineers to upskill into requirements to be an Applied AI Engineer, starting from foundational concepts in Machine Learning and Deep Learning, and progressing toward building advanced generative applications using large language models (LLMs).

Students will gain hands-on experience with modern neural architectures like transformers, and develop practical applications such as support bots and AI agents.

The course also covers essential tooling and concepts like embeddings, retrieval augmented generation (RAG), OpenAI APIs, cost optimization strategies, evaluation frameworks, fine-tuning, and real-world AI system design, enabling learners to build end-to-end generative AI applications that are scalable, dynamic, and production-ready.

Teachers

Shivank Agrawal
Shivank Agrawal
Dhruv Bharat Jawali
Dhruv Bharat Jawali

Intended learning outcomes

Knowledge
  • Explain the underlying theories and principles behind advanced AI techniques, such as reinforcement learning, generative adversarial networks (GANs), and deep reinforcement learning.
  • Identify and discuss emerging trends in advanced AI, including new algorithms, frameworks, and their potential impact on various industries.
  • Dissect and analyse complex AI architectures, including their components, interactions, and applications in solving real- world problems.
Skills
  • Design and develop custom AI solutions tailored to solve complex problems in fields like healthcare, finance, or autonomous systems.
  • Assess the performance of advanced AI systems by using metrics such as accuracy, precision, recall, and computational efficiency to fine-tune and optimise models.
  • Implement advanced AI algorithms, such as GANs, reinforcement learning models, and deep neural networks, using programming languages like Python and frameworks like TensorFlow or PyTorch.
Competencies
  • Demonstrate the competency to adapt advanced AI technologies to address new and unforeseen challenges in various domains, ensuring that AI solutions remain relevant and effective.
  • Demonstrate the ability to integrate advanced AI techniques into existing software systems, ensuring compatibility, scalability, and performance optimization
  • Lead and manage innovative AI research projects that explore cutting-edge AI concepts, contributing to the academic and industry knowledge base.
Introduction to Deep Learning
125 hours | 5 ECTS

About

This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.

Teachers

Satya Prakash Pattnaik
Satya Prakash Pattnaik
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • 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.
  • Develop a specialised knowledge of key strategies related to Deep Learning.
  • Acquire knowledge of deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec.
Skills
  • 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.
  • Apply an in-depth domain-specific knowledge and understanding to Deep Learning.
  • Creatively apply Deep Learning techniques to develop critical and original solutions for computational problems.
Competencies
  • Create synthetic contextualized discussions of key issues related to Deep Learning.
  • Act autonomously in identifying research problems and solutions related to Deep Learning.
  • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning.
  • Demonstrate self-direction in research and originality in solutions developed for Deep Learning.
  • Apply a professional and scholarly approach to research problems pertaining to Deep Learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning.
Statistical Programming
125 hours | 5 ECTS

About

This module focuses on representing statistical techniques in code, and may be conducted in Python, R, or another relevant language. Such languages provide libraries that can handle a wide variety of statistical techniques like linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering and graphical techniques, and is highly extensible.

Learning to work in statistically-oriented programming language environments can equip you with the following skills among many others:

  1. An effective way of data handling (using arrays for example) and storing data in a structured manner.

  2. Expertise in diverse tools and libraries for Data Analysis

  3. Ability to present complex data in a graphical and visual format for easy understanding of the data and further solutions.

Teachers

Aniruddha Mukherjee
Aniruddha Mukherjee
Sachin Kaushik
Sachin Kaushik
Hina Sharma
Hina Sharma
Ritwik Malla
Ritwik Malla

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of a statistical programming language and its use in cleaning and analysing data.
  • Develop a specialised knowledge of statistical techniques such as linear and nonlinear modelling, time-series analysis, and clustering.
  • Critically assess the relevance of theories of statistical analysis for business applications in the realm of software engineering.
  • Acquire knowledge of various methods for structuring data in arrays.
  • Critically evaluate diverse scholarly views on the graphical presentation of complex data.
Skills
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Creatively apply various visual and written methods for developing meaningful visualisations of complex data sets.
  • Apply an in-depth domain-specific knowledge and understanding of the importance of data analysis in business.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Solve problems and be prepared to take leadership decisions related to selecting tools and libraries for data analysis.
  • Apply a professional and scholarly approach to research problems pertaining to statistical tests, modelling, and visualisations.
  • Create synthetic contextualised discussions of key issues related to handling and storing data.
  • Act autonomously in identifying research problems and solutions related to statistical methods in programming.
  • Efficiently manage interdisciplinary issues that arise in connection to structuring data.
  • Demonstrate self-direction in research and originality in solutions developed for presenting complex data in graphical or visual formats.
Foundations of Machine Learning
125 hours | 5 ECTS

About

This course focuses on building basic classification and regression models and understanding these models rigorously both with a mathematical and an applicative focus. It opens with a basic introduction to high dimensional geometry of points, distance-metrics, hyperplanes and hyperspheres. Then, it introduces the mathematical formulation of logistic regression to find a separating hyperplane. Vector calculus and gradient descent (GD)-based algorithms are explored to learn to solve the optimization problem, including computational variations of GD like mini-batch and stochastic gradient descent. The course also covers other popular classification and regression methods like k-Nearest Neighbours, Naive Bayes, Decision Trees, Linear Regression etc, to show how each of these techniques performs under various real-world situations like the presence of outliers, imbalanced data, multi class classification etc. Lectures on bias and variance tradeoff and various techniques to avoid overfitting and underfitting are incorporated. Algorithms are taught from a Bayesian viewpoint along with geometric intuition. This course would be heavily hands-on where students apply all these classical techniques to real world problems.

Teachers

Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • Develop a critical understanding of classification and regression machine learning problems.
  • Critically evaluate diverse scholarly views on Bayesian and geometric methods for evaluating algorithms.
  • Develop a specialised knowledge of the use of gradient descent and related algorithms for optimising solutions.
  • Acquire knowledge of various methods for solving both classification and regression problems, such as k-nearest neighbours, naïve Bayes, decision trees, and linear regression.
  • Critically assess the relevance of theories of machine learning in the realm of software engineering.
Skills
  • Apply an in-depth domain-specific knowledge and understanding of the use cases of machine learning algorithms in business.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various visual and written methods for explaining machine learning solutions to expert and, where possible, nontechnical audiences.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • Create synthetic contextualised discussions of key issues related to classification and regression problems.
  • Demonstrate self-direction in research and originality in solutions developed to account for imbalanced data.
  • Act autonomously in identifying research problems and solutions related to the classification problems in machine learning.
  • Efficiently manage interdisciplinary issues that arise in connection to over- and underfitting of data to models.
  • Apply a professional and scholarly approach to research problems pertaining to gradient descent-based algorithms.
  • Solve problems and be prepared to take leadership decisions related to selecting algorithms for machine learning problems
DevOps
125 hours | 5 ECTS

About

This course provides students with hands-on experience on deploying high velocity applications and services reliably on complex and distributed infrastructure. DevOps as a philosophy is a key driver of the modern software life cycle which prefers rapid and reliable delivery of functionality and features via code. We start with a solid introduction to Linux scripting and networking. Then, we learn popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes). All of this would be introduced with real world examples from the industry. We also focus on Continuous Integration and Continuous Delivery (CI/CD) methodology and how it can be achieved using popular toolchains like Jenkins. We dive into how automated testing of software can be achieved using libraries like Selenium. This shall be followed by more advanced techniques like serverless-compute, Platform as a service model and Cloud-DevOps. Students would learn to monitor and log key data points to ensure they maintain a healthy system and adapt it as needed. Infrastructure-as-code is a key component of modern DevOps especially on cloud and containerized applications which would also be covered with real-world examples.

Teachers

Shivank Agrawal
Shivank Agrawal
Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on DevOps.
  • Acquire knowledge of popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes).
  • Develop a critical knowledge of DevOps.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to DevOps.
Skills
  • Creatively apply DevOps tools to develop critical and original solutions for computational problems.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Autonomously gather material and organise it into coherent problem sets or presentations.
  • Apply an in-depth domain-specific knowledge and understanding to DevOps solutions.
Competencies
  • Efficiently manage interdisciplinary issues that arise in connection to DevOps.
  • Demonstrate self-direction in research and originality in solutions developed for DevOps.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of DevOps.
  • Act autonomously in identifying research problems and solutions related to DevOps.
  • Apply a professional and scholarly approach to research problems pertaining to DevOps.
  • Create synthetic contextualised discussions of key issues related to DevOps.
Advanced Machine Learning
125 hours | 5 ECTS

About

This course introduces more advanced ML techniques like ensembles: bagging, boosting, cascading and stacking classifiers and regressors. It covers both the theoretical foundations and applicative details of these techniques along with popular implementations of boosting like LightGBM, CatBoost and XGBoost. Students also delve into kernel methods with specific focus on SVMs for classification and regression. Students will study state of the art model agnostic feature importance and model-interpretability techniques like LIME and SHAP. Students also study classical NLP based text encoding methods like Bag-of-words, TF-IDF etc. The module teaches various classical methods in time series analysis and forecasting like ARMA, ARIMA etc. Students also learn how to pose time series forecasting problems as regression and classification problems to leverage well studied ML techniques. This is followed by various domain and problem specific Feature engineering techniques that are often helpful in real world problem solving. Students will study methods like error analysis, ablative analysis etc., to debug and understand why and where a model is performing well and where it is not performing well. This will further help us in designing appropriate features. Students study model calibration techniques like Platt Scaling, Isotonic Regression etc. Later in this course, we cover how to build recommender systems using content-based and collaborative filtering methods. The module also teaches the detailed solution of the Netflix prize (2009) and various recent advances in RecSys.

Teachers

Rohit Jindal
Rohit Jindal
Sachin Kaushik
Sachin Kaushik
Shivank Agrawal
Shivank Agrawal
Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • Acquire knowledge of model calibration techniques like Platt Scaling, Isotonic Regression.
  • Develop a critical knowledge of Advanced Machine Learning.
  • Critically evaluate diverse scholarly views on Advanced Machine Learning.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to Advanced Machine Learning.
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply Advanced Machine Learning techniques to develop critical and original solutions for computation problems.
  • Autonomously gather material and organise it into coherent problem sets or presentations.
  • Apply an in-depth domain-specific knowledge and understanding to Advanced Machine Learning.
Competencies
  • Demonstrate self-direction in research and originality in solutions developed for Advanced Machine Learning.
  • Act autonomously in identifying research problems and solutions related to Advanced Machine Learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Machine Learning.
  • Efficiently manage interdisciplinary issues that arise in connection to Advanced Machine Learning.
  • Create synthetic contextualised discussions of key issues related to Advanced Machine Learning.
  • Apply a professional and scholarly approach to research problems pertaining to Advanced Machine Learning.
Deep Learning for Natural Language Processing
125 hours | 5 ECTS

About

This course focuses on modelling sequences (text, music, time-series, genes) using deep-learning models. We start with a simple Recurrent Neural Network and its limitations with long-sequences. Students learn LSTMs and GRUs which can handle significantly longer sequences to model sequence data like text, music, gene-sequences and time-series data. We study variations of LSTM like bi-directional LSTMs and encoder-decoder architectures. This is followed by a detailed study of attention mechanism and Transformer based models which are currently the state-of-the-art for NLP and sequence modelling. The module teaches encoder-decoder Transformers, BERT, BERT-variations, GPT-1,2 &3 models from both the architectural and mathematical viewpoints and also a practical viewpoint. Studnets learn to implement many of these complex models from scratch (using TensorFlow 2 and Keras) to gain a deeper understanding of how they work internally. Students will study popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), Semantic search with low-latency etc. For each of these problems, Students will study cutting edge deep-learning models along with code implementations.

Teachers

Satya Prakash Pattnaik
Satya Prakash Pattnaik
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to Deep Learning for NLP.
  • Critically evaluate diverse scholarly views on Deep Learning for NLP.
  • Acquire knowledge of popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), etc.
  • Develop a critical knowledge of Deep Learning for NLP.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Deep Learning for NLP.
  • Autonomously gather material and organise it into coherent problem sets or presentation.
  • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Deep Learning for NLP.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply Deep Learning for NLP techniques to develop critical and original solutions for computational problems.
  • Propose appropriate solutions to complex and changing problems pertaining to Deep Learning for NLP.
  • Apply an in-depth domain-specific knowledge and understanding to NLP solutions.
Competencies
  • Act autonomously in identifying research problems and solutions related to Deep Learning for NLP.
  • Demonstrate self-direction in research and originality in solutions developed for Deep Learning for NLP.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for NLP.
  • Create synthetic contextualised discussions of key issues related to Deep Learning for NLP.
  • Apply a professional and scholarly approach to research problems pertaining to Deep Learning for NLP.
  • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for NLP.
Applied Statistics
125 hours | 5 ECTS

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. Studnets 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

Aniruddha Mukherjee
Aniruddha Mukherjee
Sachin Kaushik
Sachin Kaushik
Hina Sharma
Hina Sharma
Ritwik Malla
Ritwik Malla

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on Applied Statistics.
  • Develop a specialised knowledge of key strategies related to Applied Statistics.
  • Develop a critical knowledge of Applied Statistics.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal).
Skills
  • 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.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics.
  • Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous data analysis.
  • Demonstrate self-direction in research and originality in solutions developed for Applied Statistics.
  • Efficiently manage interdisciplinary issues that arise in connection to Applied Statistics.
  • Act autonomously in identifying research problems and solutions related to Applied Statistics.
  • Create synthetic contextualised discussions of key issues related to Applied Statistics.
Deep Learning for Computer Vision
125 hours | 5 ECTS

About

This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.

Teachers

Satya Prakash Pattnaik
Satya Prakash Pattnaik
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision.
  • Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet.
  • Develop a critical knowledge of Deep Learning for Computer Vision.
  • Critically evaluate diverse scholarly views on Deep Learning for Computer Vision.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Creatively apply computer vision techniques to develop critical and original solutions for computational problems.
  • Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Autonomously gather material and organise it into coherent problem sets or presentation.
Competencies
  • Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision.
  • Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision.
  • Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision.
  • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision.
  • Act autonomously in identifying research problems and solutions related to Deep Learning for Computer Vision.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for Computer Vision.
Basics of Marketing
25 hours | 1 ECTS

About

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.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Develop a customer-centric marketing mindset to drive sustainable business growth.
Skills
  • Apply segmentation, targeting, positioning (STP), and the marketing mix (4Ps) to optimise brand strategies.
  • Analyse company valuation using comparables analysis and financial modelling techniques, including LBO.
Competencies
  • Evaluate key financial valuation methods, including NPV and DCF, to inform investment decisions.
Introduction to Advanced Business Analytics with AI
25 hours | 1 ECTS

About

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.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Assess the evolution of business analytics and its role in data-driven decision- making.
Skills
  • Analyse business analytics and AI concepts to real-world case study, focussing on enhancing strategic and operational outcomes.
Competencies
  • Evaluate emerging trends, ethical considerations, and risk mitigation strategies in AI and business analytics.
Mastering Digital Transformation: Building the Foundation for AI Adoption
25 hours | 1 ECTS

About

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.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Analyse the opportunities and risks associated with digital transformation.
  • Evaluate and assess the strategic benefits and challenges of emerging technologies.
Skills
  • Develop key strategies to successfully implement digital transformation projects.
  • Identify and mitigate cyber risks to ensure secure digital environments.
Competencies
  • Plan and enhance cyber risk management strategies to safeguard digital initiatives.
Fundamentals of Business Strategy
25 hours | 1 ECTS

About

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.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Understand and assess an organisation’s environment using key frameworks.
Skills
  • Develop strategic recommendations through analysis and research.
  • Apply frameworks to enhance operational efficiency.
Competencies
  • Optimise processes using operations management principles.
Foundations of Cloud Computing
125 hours | 5 ECTS

About

This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

Teachers

Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of cloud computing.
  • Develop a specialised knowledge of key strategies related to cloud computing.
  • Critically evaluate diverse scholarly views on cloud computing.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Acquire knowledge of virtualization and how virtualized compute instances are created and configured.
Skills
  • Apply an in-depth domain-specific knowledge and understanding to cloud computing services.
  • Creatively apply cloud computing applications to develop critical and original solutions for computational problems.
  • Autonomously gather material and organise it into coherent problems sets or presentations.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to cloud computing.
  • Create synthetic contextualised discussions of key issues related to cloud computing.
  • Act autonomously in identifying research problems and solutions related to cloud computing.
  • Demonstrate self-direction in research and originality in solutions developed for cloud computing.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of cloud computing.
  • Efficiently manage interdisciplinary issues that arise in connection to cloud computing.
Computer Systems and Their Fundamentals
125 hours | 5 ECTS

About

This core course equips the student with knowledge of database management systems, operating systems and computer networks. At the end of the course, students will have a critical understanding of the architecture of computers and networks, as well has how programs interact with these. Students begin with mapping data storage problems (as they had done in Relational Databases) to understand how data is stored in a distributed network, and related issues such as concurrency. Subsequently, students cover operating systems with an overview of process scheduling, process synchronisation and memory management techniques with disk scheduling. The module concludes with computer networks, where we will be discussing all of the computer network layers and their protocols in detail.

Teachers

Alok Singh
Alok Singh
Keerthikumar Sg
Keerthikumar Sg

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories of database design for business applications in the domain of software engineering.
  • Develop a specialised knowledge of optimising relational database performance in low-latency environments.
  • Acquire knowledge of various methods for troubleshooting computer network layers.
  • Critically evaluate diverse scholarly views on the appropriateness of various approaches to memory management in operating systems.
  • Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems.
  • Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols.
Skills
  • Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks.
  • Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments.
  • Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems.
  • Act autonomously in identifying research problems and solutions related to the real-world application of relational databases.
  • Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks.
Introduction to Problem-Solving Techniques: Part 2
125 hours | 5 ECTS

About

This course is a follow-up to Introduction to Problem-Solving Techniques: Part 1, and as part of their academic planning process with Woolf staff, students will ordinarily take that course first.

Part 2 deepens the approach to data structures by including such topics as stacks, queues, linked lists, and trees, and we will discuss in detail real world applications of each approach and their comparative strengths and limitations (i.e when to use a data structure and when not to use a data structure). This course will also include hashing techniques along with recursion and subset problems. This course will have rigorous homework and assignments as we introduce more than 4 data structures.

By the end of this course a student can come up with the best strategy which can optimize both time and space complexities by choosing the best data structure suitable for a given problem.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Sachin Kaushik
Sachin Kaushik
Navdeep Sandhu
Navdeep Sandhu
Alok Singh
Alok Singh
Bipin Kalra
Bipin Kalra

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to structuring data.
  • Critically assess the relevance of theories of problem-solving for business applications in the domain of software development.
  • Acquire knowledge of various methods for structuring data in arrays.
  • Critically evaluate diverse scholarly views on the appropriateness of various problem-solving strategies.
  • Develop a critical knowledge of problem-solving strategies in computing.
Skills
  • Apply an in-depth domain-specific knowledge and understanding to problem solving.
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Creatively apply various programming methods to develop critical and original solutions to computational problems.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • AAct autonomously in identifying research problems and solutions related to arrays and their real-world applications.
  • Efficiently manage interdisciplinary issues that arise in connection to problem solving.
  • Solve problems and be prepared to take leadership decisions related to applying problem-solving heuristics.
  • Create synthetic contextualised discussions of key issues related to problem-solving, and related to the appropriateness of algorithmic or heuristic problem-solving strategies.
  • Apply a professional and scholarly approach to research problems pertaining to data structures.
  • Demonstrate self-direction in research and originality in solutions developed for solving problems related to data structures.
Front End UI/UX Development
125 hours | 5 ECTS

About

This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5, CSS and Frameworks like Bootstrap 4. This course starts with an introduction on how web browsers, mobile apps and web servers work. We then dive into each of the nitty gritty details of HTML5 to build webpages. We would start with simple web pages and then graduate to more complex layouts and features in HTML like forms, iFrames, multimedia-playback and using web-APIs. We then go on to learn stylesheets based on CSS 4 and how browsers interpret CSS files to render web pages. Once again, we use multiple real world example web pages to learn the internals of CSS4. We learn popular good practices on writing responsive HTML and CSS code which is also interoperable on mobile browsers, apps and desktop apps. We would introduce students to building desktop apps using HTML and CSS using toolkits like Electron. We would also study popular frameworks for front end development like Bootstrap 4 which can speed up UI development significantly.

Teachers

Mohd Aman
Mohd Aman
kachwal uttam sharma
kachwal uttam sharma
Shashwat Bagaria
Shashwat Bagaria
Ashwani Kumar Rajput
Ashwani Kumar Rajput

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on Front end UI/UX development.
  • Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4.
  • Develop a critical knowledge of Front end UI/UX development.
  • Develop a specialised knowledge of key strategies related to Front end UI/UX development.
Skills
  • Creatively apply Front end UI/UX development applications to develop critical and original solutions for computational problems.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to technology.
  • Autonomously gather material and organise into a coherent problem sets or presentation.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development.
  • Act autonomously in identifying research problems and solutions related to Front end UI/UX development.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Front end UI/UX development.
  • Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development.
  • Efficiently manage interdisciplinary issues that arise in connection to Front end UI/UX development.
  • Create synthetic contextualised discussions of key issues related to Front end UI/UX development.
Introduction to Machine Learning
125 hours | 5 ECTS

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, 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.

Teachers

Rohit Jindal
Rohit Jindal
Shivank Agrawal
Shivank Agrawal
Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • 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.
  • Develop a critical knowledge of machine learning.
  • Critically evaluate diverse scholarly views on machine learning.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Creatively apply regression models to develop critical and original solutions for computational issues.
  • Autonomously gather material and organise it into coherent problem sets and presentation.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to machine learning.
  • Act autonomously in identifying research problems and solutions related to machine learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning.
  • Demonstrate self-direction in research and originality in solutions developed for machine learning.
  • Efficiently manage interdisciplinary issues that arise in connection to machine learning.
  • Create synthetic contextualised discussions of key issues related to machine learning.
Numerical Programming in Python
125 hours | 5 ECTS

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 optimized code using appropriate data structures and algorithmic design methods. The module does not dive deep into the data structures and algorithm design methods in this course - that is available in the ‘Data Structures and Algorithms’ module. This course is valuabe for all students specializing in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.

Teachers

Aniruddha Mukherjee
Aniruddha Mukherjee
Sachin Kaushik
Sachin Kaushik
Hina Sharma
Hina Sharma
Ritwik Malla
Ritwik Malla

Intended learning outcomes

Knowledge
  • Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas.
  • Develop a specialised knowledge of key strategies related to Numerical programming in Python.
  • Critically evaluate diverse scholarly views on Numerical programming in Python.
  • Develop a critical knowledge of Numerical programming in Python.
  • Critically assess the relevance of theories for business applications in the domain of technology.
Skills
  • Autonomously gather material and organize it into a coherent problem sets or presentation.
  • Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python.
  • Create new solutions that are critical to solving computational problems through creatively applying code writing.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Demonstrate self-direction in research and originality in solutions developed for Numerical programming in Python.
  • Apply a professional and scholarly approach to research problems pertaining to Numerical programming in Python.
  • Act autonomously in identifying research problems and solutions related to Numerical programming in Python.
  • Efficiently manage interdisciplinary issues that arise in connection to Numerical programming in Python.
  • Create synthetic contextualised discussions of key issues related 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.
Productionization of Machine Learning Systems
125 hours | 5 ECTS

About

This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve multiple real world cases and discuss solutions built by various companies and organizations to provide the students a comprehensive understanding of varied systems and design choices.

Teachers

Archit Sharma
Archit Sharma
Shivank Agrawal
Shivank Agrawal
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
  • Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
  • Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
  • Develop a critical knowledge of Productionization of Machine Learning Systems
  • Critically evaluate diverse scholarly views on Productionization of Machine Learning
Skills
  • Creatively apply ML systems to develop critical and original solutions for computational problems
  • Apply an in-depth domain-specific knowledge and understanding to technology
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
  • Autonomously gather material and organise it into coherent problem sets or presentation
Competencies
  • Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
  • Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
  • Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
  • Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
  • Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
Distributed Cloud Computing
125 hours | 5 ECTS

About

This course provides an in-depth architectural overview and hands- on experience with building scalable data processing and distributed computing via various cloud systems. We focus a lot on Spark which is one of the most popular and powerful distributed systems to perform petabyte scale data processing. We learn various components of Spark like HDFS, Resilient Distributed Datasets (RDDs), Programming models like Map-reduce. Students also learn SparkSQL and Hive and how they can be used for querying large datastores. We focus on how various services in a cloud (like AWS) can be used together to build scalable data-pipelines for both batch and near real-time processing. We show various examples of real world systems and their architectures from various companies and organizations. We learn how graphX can be used to process large graphs using Spark. Students use AWS Elastic Map Reduce (EMR) for cloud based Spark clusters. We learn the design and architecture of distributed inverted indices and how they can be used for implementing search scalably. Students learn to use ElasticSearch, a very popular distributed inverted index for implementing search functionality on websites and on unstructured data.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to Distributed Cloud Computing.
  • Acquire knowledge of various components of Spark like HDFS, Resilient Distributed Datasets (RDDs), Programming models like Map-reduce.
  • Develop a critical knowledge of Distributed Cloud Computing.
  • Critically evaluate diverse scholarly views on Distributed Cloud Computing.
Skills
  • Creatively apply Distributed Cloud Computing application to develop critical and original solutions for computational problems.
  • Apply an in-depth domain-specific knowledge and understanding to Distributed Cloud Computing 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.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Distributed Cloud Computing.
  • Create synthetic contextualised discussions of key issues related to Distributed Cloud Computing.
  • Act autonomously in identifying research problems and solutions related to Distributed Cloud Computing.
  • Efficiently manage interdisciplinary issues that arise in connection to Distributed Cloud Computing.
  • Demonstrate self-direction in research and originality in solutions developed for Distributed Cloud Computing.
  • Apply a professional and scholarly approach to research problems pertaining to Distributed Cloud Computing.
Data Visualisation Tools
125 hours | 5 ECTS

About

This course is aimed to build a strong foundational knowledge of Data Analytics used extensively in the Data Science field. Tableau is a powerful data visualisation tool used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. Tableau is used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.

At the end of this course, students will be prepared, if they desire, to earn industry desktop certifications as a Tableau Desktop Specialist, a Tableau Certified Associate, or a Tableau Certified Professional.

Teachers

Archit Sharma
Archit Sharma
Mohit Uniyal
Mohit Uniyal
Nischal Shetty
Nischal Shetty

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
  • Develop a critical knowledge of key data science concepts as implemented in common software packages
  • Acquire knowledge of various methods for telling stories with data across different formats
  • Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
  • Critically evaluate diverse scholarly views on advanced visualisation strategies
Skills
  • Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
  • Autonomously gather material and organise it into a coherent presentation or essay
  • Creatively apply various visual and written methods for developing data visualisations
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
Competencies
  • Demonstrate self-direction in research and originality in solutions developed for data visualisation.
  • Create synthetic contextualised discussions of key issues related to time and space complexity in data science.
  • Efficiently manage interdisciplinary issues that arise in connection to advanced visual analytics.
  • Solve problems and be prepared to take leadership decisions related to data visualisation strategies.
  • Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch.
  • Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling.
System Design
125 hours | 5 ECTS

About

This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

Teachers

Tanmay Kacker
Tanmay Kacker
Pushkar Singh
Pushkar Singh

Intended learning outcomes

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

About

This course is aimed to help learners understand various techniques and algorithms to visualize, analyse and understand high dimensional data which is very common in Data Science and ML. The module starts with linear algebraic methods like Principal Component Analysis (PCA) and SVD (Singular Value Decomposition) for obtaining linear projection of high dimensional data. This is followed by more advanced nonlinear and state of the art techniques like t-SNE and UMAP for visualizing high dimensional data. Each of these techniques would be covered in full mathematical detail from first principles along with applying them to real world datasets in NLP, Genomics and internet-datasets. Students will also study how PCA and SVD are related to general Matrix Factorization techniques. To analyse and understand high dimensional un-labelled data, students learn clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN. The modules shows how some of the techniques are mathematically related to Matrix Factorization. Students study various outlier detection techniques based on density, proximity, factorization and cluster analysis.

Teachers

Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Acquire knowledge of clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN.
  • Develop a critical knowledge of Data Analysis.
  • Develop a specialised knowledge of key strategies related to Data Analysis.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on Data Analysis.
Skills
  • Autonomously gather material and organise it into coherent problems sets or presentation.
  • Apply an in-depth domain-specific knowledge and understanding to Data Analysis techniques.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various techniques to develop critical and original solutions for computational problems.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Analysis.
  • Act autonomously in identifying research problems and solutions related to Data Analysis.
  • Efficiently manage interdisciplinary issues that arise in connection to Data Analysis.
  • Create synthetic contextualised discussions of key issues related to Data Analysis.
  • Apply a professional and scholarly approach to research problems pertaining to Data Analysis.
  • Demonstrate self-direction in research and originality in solutions developed for data analysis.
Product Management for Software Engineers
125 hours | 5 ECTS

About

Every organisation is building products to solve the pain points of its customers. Product managers are a critical part of an organisation, who make sure that evolving customer needs, and market trends are observed and converted into delightful solutions which help businesses get its outcomes.

In this course, students will get a fundamental understanding of product management practices.

This will give them a comprehensive view of the complete product management life cycle.

Teachers

Nischal Shetty
Nischal Shetty
Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
  • Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
  • Critically evaluate diverse scholarly views on assessing user behaviours.
  • Critically assess the relevance of theories of user behaviour for product development.
  • Develop a critical knowledge of product design and development.
Skills
  • 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.
  • Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • 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.
  • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
  • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
  • 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.
  • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
Advanced Algorithms
125 hours | 5 ECTS

About

In this module we will discuss general approaches to the construction of efficient solutions to problems.

Such methods are of interest because:

  1. They provide templates suited to solving a broad range of diverse problems.

  2. They can be translated into common control and data structures provided by most high-level languages.

  3. 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:

  1. Greedy algorithms (Activity Selection, 0-1 Knapsack Problem, Fractional Knapsack Problem)

  2. Dynamic programming (Longest Common Subsequence, 0-1 Knapsack Problem)

  3. Minimum Spanning Trees (Prim’s Algorithm, Kruskal’s Algorithm)

  4. 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.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Navdeep Sandhu
Navdeep Sandhu

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of describing, analysing, and evaluating algorithmic performance in time and space.
  • Develop a critical knowledge of important algorithmic concepts and principles, such as greedy algorithms, dynamic programming, minimum spanning trees, and graph algorithms.
  • Critically assess the relevance of theories of algorithmic performance for business applications in the domain of software engineering.
  • Critically evaluate diverse scholarly views on the appropriateness of various algorithmic concepts to software development problems.
  • Acquire knowledge of various methods for optimizing algorithm design.
Skills
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Apply an in-depth domain-specific knowledge and understanding of efficiency to algorithmic designs.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various programming methods to most efficiently design algorithms for specified time and space constraints.
Competencies
  • Solve problems and be prepared to take leadership decisions related to selecting the most appropriate algorithm for a software engineering problem.
  • Demonstrate self-direction in research and originality in solutions developed for solving problems related to algorithmic design.
  • Apply a professional and scholarly approach to research problems pertaining to the comparative performance of algorithms.
  • Create synthetic contextualised discussions of key issues related to the efficient construction of algorithms.
  • Efficiently manage interdisciplinary issues that arise in connection to the performance of algorithms and data structures in time and space.
  • Act autonomously in identifying research problems and solutions related to the real-world application of common controls and data structures in high-level programming languages.
Design Patterns
125 hours | 5 ECTS

About

This course provides a practical understanding of popular object-oriented design patterns so that students can reuse design strategies developed for commonly occurring problems in software development. We begin the course with a revision of object-oriented programming and an overview of UML (unified modelling language) diagrams to represent software design diagrammatically. We then dive into 10-12 most popular design patterns motivating each of them from real world scenarios. We would also showcase multiple opensource code bases which use the specific design pattern to solve a real-world design problem. This would help students gain an appreciation of how each of the theoretical patterns they learn actually translate to code. We also take up real world cases and dive into various design patterns that can be used to solve the problem. Sometimes, there could be multiple valid designs. We would five into the pros and cons of each design decision and trade-offs involved. Our objective is to build the problem-solving ability amongst students to recognize the appropriate design pattern to tackle a real-world problem. The module briefly discusses domain specific design patterns in their respective contexts.

Teachers

Anurag Khanna
Anurag Khanna
Alok Singh
Alok Singh
Keerthikumar Sg
Keerthikumar Sg
Ankit Arora
Ankit Arora

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories of reusable design for business applications in the domain of software engineering.
  • Acquire knowledge of various methods for specifying modular elements in a software subsystem.
  • Develop a critical knowledge of object-oriented analysis and design.
  • Critically evaluate diverse scholarly views on the appropriateness of various approaches to design patterns for object-oriented design.
  • Develop a specialised knowledge of modelling data, behaviour, and function in software.
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various design patterns to most efficiently design software that meets specified criteria.
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Apply an in-depth domain-specific knowledge and understanding of the importance of object-oriented design in software engineering.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to building software with reusable elements.
  • Solve problems and be prepared to take leadership decisions related to developing design patterns to solve problems in software design.
  • Create synthetic contextualised discussions of key issues related to Object-Oriented Analysis and Design.
  • Efficiently manage interdisciplinary issues that arise in connection to modelling data, behaviour, and function.
  • Demonstrate self-direction in research and originality in solutions developed for designing reusable software elements.
  • Act autonomously in identifying research problems and solutions related to design patterns.
Data Engineering
250 hours | 10 ECTS

About

Data is the fuel driving all major organisations. In this course, we help 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.

We will give you a comprehensive view of the complete Data Engineering lifecycle.

Teachers

Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • Critically evaluate diverse scholarly views on best practices in developing data-intensive applications.
  • Develop a critical knowledge of data engineering.
  • Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem.
  • Acquire knowledge of various methods for warehousing data.
  • Critically assess the relevance of theories of data modeling for efficient pipeline creation.
Skills
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines.
  • Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
  • Demonstrate self-direction in research and originality in creating advanced SQL queries.
  • Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
  • 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.
  • Solve problems and be prepared to take leadership decisions related to developing pipelines to handle massive datasets for engineering purposes.
Product Analytics
125 hours | 5 ECTS

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

Suraaj Hasija
Suraaj Hasija

Intended learning outcomes

Knowledge
  • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
  • Critically evaluate diverse scholarly views on assessing user behaviours.
  • Develop a critical knowledge 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.
  • Critically assess the relevance of theories of user behaviour for product development.
Skills
  • 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.
Competencies
  • Act autonomously in identifying research problems and solutions related to product analytics.
  • Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
  • 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.
  • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
  • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
  • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
Front End Development
125 hours | 5 ECTS

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

Mohd Aman
Mohd Aman
kachwal uttam sharma
kachwal uttam sharma
Shashwat Bagaria
Shashwat Bagaria
Ashwani Kumar Rajput
Ashwani Kumar Rajput

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of front end development.
  • Develop a specialised knowledge of key strategies related to front end development.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS.
  • Critically evaluate diverse scholarly views on front end development.
Skills
  • 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 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.
Competencies
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development.
  • Act autonomously in identifying research problems and solutions related to front end development.
  • Apply a professional and scholarly approach to research problems pertaining to front end development.
  • Efficiently manage interdisciplinary issues that arise in connection to front end development.
  • Create synthetic contextualised discussions of key issues related to front end development.
  • Demonstrate self-direction in research and originality in solutions developed for front end development.
Practical Software Engineering
125 hours | 5 ECTS

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

Alok Singh
Alok Singh
Pushkar Singh
Pushkar Singh

Intended learning outcomes

Knowledge
  • 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.
  • Develop a specialised knowledge of Process Design Languages and flowchart methods for describing desired functions and behaviours.
  • Develop a critical knowledge of software design and refinement processes.
  • 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.
Skills
  • Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level designs.
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
Competencies
  • Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents.
  • Act autonomously in identifying research problems and solutions related to refining software designs.
  • 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.
  • Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models.
  • Apply a professional and scholarly approach to research problems pertaining to logical and functional design of software components.
Distributed Machine Learning
125 hours | 5 ECTS

About

This course provides an in-depth understanding of distributed systems for ML and Deep Learning using CPU,GPU and TPU clusters. It starts with foundations of Map-reduce framework and in-memory distributed and resilient data structures that form the backbone of Spark. Students will learn the architectural details of these distributed system platforms and how they can be leveraged to perform data analysis and model training on petabyte scale datasets. We cover how distributed training is achieved for popular ML algorithms on Spark by understanding the internal working of SparkMLLib. The module then focuses on understanding distributed graph processing using GraphX. Students move on to Deep-Learning algorithms and how distributed algorithms can be designed for them when we have GPU or TPU clusters at our disposal. We also dive deep into how TensorFlow archives distributed computing for popular Deep Learning algorithms. Students will study distributed data stores and how they can be used for ML using popular datastore systems like Hive and SparkSQL. The module concludes by discussing state of the art distributed, low-latency approximate nearest neighbour algorithms along with their implementations in ElasticSearch.

Teachers

Rohit Jindal
Rohit Jindal
Sachin Kaushik
Sachin Kaushik
Shivank Agrawal
Shivank Agrawal
Nikhil Sanghi
Nikhil Sanghi

Intended learning outcomes

Knowledge
  • Acquire knowledge of TensorFlow and popular Deep Learning algorithms.
  • Develop a specialized knowledge of key strategies related to Distributed Machine Learning.
  • Critically evaluate diverse scholarly views on Distributed Machine Learning.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a critical knowledge of Distributed Machine Learning.
Skills
  • 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 Distributed Machine Learning techniques to develop critical and original solutions for computational problems
  • Apply an in-depth domain-specific knowledge and understanding to Distributed Machine Learning solutions.
Competencies
  • Efficiently manage interdisciplinary issues that arise in connection to Distributed Machine Learning.
  • Apply a professional and scholarly approach to research problems pertaining to Distributed Machine Learning.
  • Act autonomously in identifying research problems and solutions related to Distributed Machine Learning.
  • Demonstrate self-direction in research and originality in solutions developed for Distributed Machine Learning.
  • Create synthetic contextualised discussions of key issues related to Distributed Machine Learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles Distributed Machine Learning.
Advanced AI Concepts
125 hours | 5 ECTS

About

This course introduces learners to Generative AI as required by Software Engineers to upskill into requirements to be an Applied AI Engineer, starting from foundational concepts in Machine Learning and Deep Learning, and progressing toward building advanced generative applications using large language models (LLMs).

Students will gain hands-on experience with modern neural architectures like transformers, and develop practical applications such as support bots and AI agents.

The course also covers essential tooling and concepts like embeddings, retrieval augmented generation (RAG), OpenAI APIs, cost optimization strategies, evaluation frameworks, fine-tuning, and real-world AI system design, enabling learners to build end-to-end generative AI applications that are scalable, dynamic, and production-ready.

Teachers

Shivank Agrawal
Shivank Agrawal
Dhruv Bharat Jawali
Dhruv Bharat Jawali

Intended learning outcomes

Knowledge
  • Explain the underlying theories and principles behind advanced AI techniques, such as reinforcement learning, generative adversarial networks (GANs), and deep reinforcement learning.
  • Identify and discuss emerging trends in advanced AI, including new algorithms, frameworks, and their potential impact on various industries.
  • Dissect and analyse complex AI architectures, including their components, interactions, and applications in solving real- world problems.
Skills
  • Design and develop custom AI solutions tailored to solve complex problems in fields like healthcare, finance, or autonomous systems.
  • Assess the performance of advanced AI systems by using metrics such as accuracy, precision, recall, and computational efficiency to fine-tune and optimise models.
  • Implement advanced AI algorithms, such as GANs, reinforcement learning models, and deep neural networks, using programming languages like Python and frameworks like TensorFlow or PyTorch.
Competencies
  • Demonstrate the competency to adapt advanced AI technologies to address new and unforeseen challenges in various domains, ensuring that AI solutions remain relevant and effective.
  • Demonstrate the ability to integrate advanced AI techniques into existing software systems, ensuring compatibility, scalability, and performance optimization
  • Lead and manage innovative AI research projects that explore cutting-edge AI concepts, contributing to the academic and industry knowledge base.
JavaScript
125 hours | 5 ECTS

About

This course is a hands-on course covering JavaScript from basics to advanced concepts in detail using multiple examples. We start with basic programming concepts like variables, control statements, loops, classes and objects. Students also learn basic data-structures like Strings, Arrays and dates. Students also learn to debug our code and handle errors gracefully in code. We learn popular style guides and good coding practices to build readable and reusable code which is also highly performant. We then learn how web browsers execute JavaScript code using V8 engine as an example. We also cover concepts like JIT-compiling which helps JS code to run faster. This is followed by slightly advanced concepts like DOM, Async-functions, Web APIs and AJAX which are very popularly used in modern front end development. We learn how to optimize JavaScript code to run on both mobile apps and mobile browsers along with Desktop browsers and as desktop apps via ElectronJS. Most of this course would be covered via real world examples and by learning from JS code of popular open-source websites and libraries.

Teachers

Mohd Aman
Mohd Aman
kachwal uttam sharma
kachwal uttam sharma
Shashwat Bagaria
Shashwat Bagaria
Ashwani Kumar Rajput
Ashwani Kumar Rajput

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on JavaScript.
  • Develop a specialised knowledge of key strategies related to JavaScript.
  • Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant.
  • Develop a critical knowledge of JavaScript.
Skills
  • Creatively apply JavaScript concepts to develop critical and original solutions for computational problems.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to JavaScript tools.
  • Autonomously gather material and organise into a coherent problem sets or presentations.
Competencies
  • Efficiently manage interdisciplinary issues that arise in connection to JavaScript.
  • Demonstrate self-direction in research and originality in solutions developed for JavaScript.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript.
  • Apply a professional and scholarly approach to research problems pertaining to JavaScript.
  • Act autonomously in identifying research problems and solutions related to JavaScript.
  • Create synthetic contextualised discussions of key issues related to JavaScript.
Design and Analysis of Algorithms
125 hours | 5 ECTS

About

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.

Teachers

Yahnit Sirineni
Yahnit Sirineni
Navdeep Sandhu
Navdeep Sandhu
Shivank Agrawal
Shivank Agrawal
Omansh Mathur
Omansh Mathur

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of key strategies related to design and analysis of algorithms.
  • Develop a critical knowledge of design and analysis of algorithms.
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Critically evaluate diverse scholarly views on design and analysis of algorithms.
  • Acquire knowledge of various algorithmic design methods.
Skills
  • Autonomously gather material and organise it into a coherent presentation or essay.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms.
  • Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems.
Competencies
  • Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms.
  • Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of design and analysis of algorithms.
  • Act autonomously in identifying research problems and solutions related to design and analysis of algorithms.
  • Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms.
  • Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems.
SQL for Data Analytics
125 hours | 5 ECTS

About

Structured Query Language (SQL) is key to working with data in relational databases, a task at the core of data science and analytics. In this course, students will learn all the major keywords and clauses used to extract data, best practices for formatting SQL queries, and how to generate meaningful insights from the results.

The focus is at all times on real-world uses of SQL queries, syntax, and expression, to allow students to begin professional-level work as quickly as possible.

Teachers

Bipin Kalra
Bipin Kalra
Amit Singh Chowdhery
Amit Singh Chowdhery
Thanish Batcha S
Thanish Batcha S
Pulkit Aneja
Pulkit Aneja

Intended learning outcomes

Knowledge
  • Develop a specialised knowledge of SQL queries and their syntax for creating expressions.
  • Critically evaluate diverse scholarly views on assessing database management designs.
  • Critically assess the relevance of theories of database design in the realm of data science and analytics.
  • Acquire knowledge of various methods for key procedures such as filtering, joins, and aggregation.
  • Develop a critical knowledge of both SQL and NoSQL database management systems.
Skills
  • 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 database design and implementation in business.
  • 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.
Competencies
  • Solve problems and be prepared to take leadership decisions related to developing efficient strategies for managing data in relational database management system.
  • Create synthetic contextualised discussions of key issues related to managing and extracting data from relational databases using Structured Query Language (SQL).
  • Demonstrate self-direction in research and originality in solutions developed to efficiently extract data from relational database management systems.
  • Act autonomously in identifying research problems and solutions related to database management system design.
  • Apply a professional and scholarly approach to research problems pertaining to best practices in forming queries and expressions using SQL syntax.
  • Efficiently manage interdisciplinary issues that arise in connection to using SQL or NoSQL database management systems.
Data Structures
125 hours | 5 ECTS

About

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.

Teachers

Prithviraj Pillai
Prithviraj Pillai
Yahnit Sirineni
Yahnit Sirineni
Nitin Choudhary
Nitin Choudhary
Navdeep Sandhu
Navdeep Sandhu
Shivank Agrawal
Shivank Agrawal

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories for business applications in the domain of technology.
  • Develop a specialised knowledge of key strategies related to Data Structures and their usage in computer science.
  • Critically evaluate diverse scholarly views on data structures.
  • Develop a critical knowledge of Data Structures and their implementation.
  • Acquire knowledge widely used basic data structures like Dynamic arrays, multi-dimensional arrays, Lists, Strings, Hash Tables, Binary Trees, Balanced Binary Trees, Priority Queues and Graphs.
Skills
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Apply an in-depth domain-specific knowledge and understanding of Data Structures.
  • Apply data structures in a creative way to develop original, critical solutions to real world problems.
  • Autonomously gather material and organise it into coherent data structures.
Competencies
  • Act autonomously in identifying research problems and solutions related to Data Structures and their implementation.
  • Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation.
  • Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation.
  • Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation.
  • Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation.
Low-Level Design and Design Patterns
125 hours | 5 ECTS

About

Low-Level Design & Design Patterns focuses on modularity and reusability in software design, common design vocabularies, refactoring and how to reduce it, and how to incorporate design patterns into iterative development processes. The course pays significant attention to the interaction between system architecture and components, including data organisation.

The course begins with Object-Oriented Analysis (OOA), which is a problems-solving technique that includes: modelling an information design; representing behaviour; describing functions; dividing data, functional, and behavioural models to uncover detail; moving from abstraction to implementation details. The course then turns to Object-Oriented Design (OOD), which reduces the analysis model into a modular design for software creation, with subsystems, components, and objects.

The iteration of analysis and implementation will be covered in detail with real-world industry examples.

Teachers

Anurag Khanna
Anurag Khanna
Alok Singh
Alok Singh
Keerthikumar Sg
Keerthikumar Sg
Ankit Arora
Ankit Arora

Intended learning outcomes

Knowledge
  • Critically assess the relevance of theories of reusable design for business applications in the domain of software engineering.
  • Critically evaluate diverse scholarly views on the appropriateness of various approaches to design patterns for object-oriented design.
  • Acquire knowledge of various methods for specifying modular elements in a software subsystem.
  • Develop a specialised knowledge of modelling data, behaviour, and function in software.
  • Develop a critical understanding of object-oriented analysis and design.
Skills
  • Apply an in-depth domain-specific knowledge and understanding of the importance of object-oriented design in software engineering.
  • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
  • Creatively apply various design patterns to most efficiently design software that meets specified criteria.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
  • Act autonomously in identifying research problems and solutions related to the modular, procedural software design.
  • Solve problems and be prepared to take leadership decisions related to developing design patterns to solve problems in software design.
  • Apply a professional and scholarly approach to research problems pertaining to building software with reusable elements.
  • Efficiently manage interdisciplinary issues that arise in connection to modelling data, behaviour, and function.
  • Demonstrate self-direction in research and originality in solutions developed for designing reusable software elements.
  • Create synthetic contextualised discussions of key issues related to Object-Oriented Analysis and Design.
Introduction to Deep Learning
125 hours | 5 ECTS

About

This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.

Teachers

Satya Prakash Pattnaik
Satya Prakash Pattnaik
Shivam Prasad
Shivam Prasad

Intended learning outcomes

Knowledge
  • 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.
  • Develop a specialised knowledge of key strategies related to Deep Learning.
  • Acquire knowledge of deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec.
Skills
  • 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.
  • Apply an in-depth domain-specific knowledge and understanding to Deep Learning.
  • Creatively apply Deep Learning techniques to develop critical and original solutions for computational problems.
Competencies
  • Create synthetic contextualized discussions of key issues related to Deep Learning.
  • Act autonomously in identifying research problems and solutions related to Deep Learning.
  • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning.
  • Demonstrate self-direction in research and originality in solutions developed for Deep Learning.
  • Apply a professional and scholarly approach to research problems pertaining to Deep Learning.
  • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning.
Introduction to Computer Programming: Part 2
125 hours | 5 ECTS

About

This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

Teachers

Prithviraj Pillai
Prithviraj Pillai
Yahnit Sirineni
Yahnit Sirineni
Sachin Kaushik
Sachin Kaushik
Navdeep Sandhu
Navdeep Sandhu

Intended learning outcomes

Knowledge
  • Develop a critical knowledge of product design and development.
  • Acquire knowledge of various methods for storing data in modern programming languages.
  • Develop a specialised knowledge of the various uses and forms of lists in programming, including 2D lists.
  • Critically evaluate diverse scholarly views on functions and algorithms.
  • Critically assess the relevance of theories of data storage for programming.
Skills
  • Assess, analyse, and criticise the various strategies for handling matters arising in the context of cloud computing.
  • 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.
  • Propose appropriate solutions to complex and changing problems pertaining to cloud computing.
  • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle cloud computing.
  • Apply an in-depth domain-specific knowledge and understanding of computer programming and data management.
  • Autonomously gather material and organise it into a coherent presentation or essay.
Competencies
    Statistical Programming
    125 hours | 5 ECTS

    About

    This module focuses on representing statistical techniques in code, and may be conducted in Python, R, or another relevant language. Such languages provide libraries that can handle a wide variety of statistical techniques like linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering and graphical techniques, and is highly extensible.

    Learning to work in statistically-oriented programming language environments can equip you with the following skills among many others:

    1. An effective way of data handling (using arrays for example) and storing data in a structured manner.

    2. Expertise in diverse tools and libraries for Data Analysis

    3. Ability to present complex data in a graphical and visual format for easy understanding of the data and further solutions.

    Teachers

    Aniruddha Mukherjee
    Aniruddha Mukherjee
    Sachin Kaushik
    Sachin Kaushik
    Hina Sharma
    Hina Sharma
    Ritwik Malla
    Ritwik Malla

    Intended learning outcomes

    Knowledge
    • Develop a critical knowledge of a statistical programming language and its use in cleaning and analysing data.
    • Develop a specialised knowledge of statistical techniques such as linear and nonlinear modelling, time-series analysis, and clustering.
    • Critically assess the relevance of theories of statistical analysis for business applications in the realm of software engineering.
    • Acquire knowledge of various methods for structuring data in arrays.
    • Critically evaluate diverse scholarly views on the graphical presentation of complex data.
    Skills
    • Autonomously gather material and organise it into a coherent presentation or essay.
    • Creatively apply various visual and written methods for developing meaningful visualisations of complex data sets.
    • Apply an in-depth domain-specific knowledge and understanding of the importance of data analysis in business.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to selecting tools and libraries for data analysis.
    • Apply a professional and scholarly approach to research problems pertaining to statistical tests, modelling, and visualisations.
    • Create synthetic contextualised discussions of key issues related to handling and storing data.
    • Act autonomously in identifying research problems and solutions related to statistical methods in programming.
    • Efficiently manage interdisciplinary issues that arise in connection to structuring data.
    • Demonstrate self-direction in research and originality in solutions developed for presenting complex data in graphical or visual formats.
    Foundations of Machine Learning
    125 hours | 5 ECTS

    About

    This course focuses on building basic classification and regression models and understanding these models rigorously both with a mathematical and an applicative focus. It opens with a basic introduction to high dimensional geometry of points, distance-metrics, hyperplanes and hyperspheres. Then, it introduces the mathematical formulation of logistic regression to find a separating hyperplane. Vector calculus and gradient descent (GD)-based algorithms are explored to learn to solve the optimization problem, including computational variations of GD like mini-batch and stochastic gradient descent. The course also covers other popular classification and regression methods like k-Nearest Neighbours, Naive Bayes, Decision Trees, Linear Regression etc, to show how each of these techniques performs under various real-world situations like the presence of outliers, imbalanced data, multi class classification etc. Lectures on bias and variance tradeoff and various techniques to avoid overfitting and underfitting are incorporated. Algorithms are taught from a Bayesian viewpoint along with geometric intuition. This course would be heavily hands-on where students apply all these classical techniques to real world problems.

    Teachers

    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • Develop a critical understanding of classification and regression machine learning problems.
    • Critically evaluate diverse scholarly views on Bayesian and geometric methods for evaluating algorithms.
    • Develop a specialised knowledge of the use of gradient descent and related algorithms for optimising solutions.
    • Acquire knowledge of various methods for solving both classification and regression problems, such as k-nearest neighbours, naïve Bayes, decision trees, and linear regression.
    • Critically assess the relevance of theories of machine learning in the realm of software engineering.
    Skills
    • Apply an in-depth domain-specific knowledge and understanding of the use cases of machine learning algorithms in business.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply various visual and written methods for explaining machine learning solutions to expert and, where possible, nontechnical audiences.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    Competencies
    • Create synthetic contextualised discussions of key issues related to classification and regression problems.
    • Demonstrate self-direction in research and originality in solutions developed to account for imbalanced data.
    • Act autonomously in identifying research problems and solutions related to the classification problems in machine learning.
    • Efficiently manage interdisciplinary issues that arise in connection to over- and underfitting of data to models.
    • Apply a professional and scholarly approach to research problems pertaining to gradient descent-based algorithms.
    • Solve problems and be prepared to take leadership decisions related to selecting algorithms for machine learning problems
    Applied Computer Science Project
    250 hours | 10 ECTS

    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.

    Teachers

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Anurag Khanna
    Anurag Khanna
    Alok Singh
    Alok Singh

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on modern computational applications.
    • Develop a critical knowledge of modern computational applications.
    • Acquire knowledge of an end-to-end deployable solution to a real-world computational problem.
    • Develop a specialised knowledge of key strategies related to modern computational applications.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • 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 computational applications to develop critical and original solutions for computational problems.
    • Apply an in-depth domain-specific knowledge and understanding of modern day computational applications.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments.
    • Efficiently manage interdisciplinary issues that arise in connection to deploying a modern, web-based system.
    • Apply a professional and scholarly approach to research problems pertaining to real-world computational complexities.
    • Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
    • Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software solutions.
    • Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
    DevOps
    125 hours | 5 ECTS

    About

    This course provides students with hands-on experience on deploying high velocity applications and services reliably on complex and distributed infrastructure. DevOps as a philosophy is a key driver of the modern software life cycle which prefers rapid and reliable delivery of functionality and features via code. We start with a solid introduction to Linux scripting and networking. Then, we learn popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes). All of this would be introduced with real world examples from the industry. We also focus on Continuous Integration and Continuous Delivery (CI/CD) methodology and how it can be achieved using popular toolchains like Jenkins. We dive into how automated testing of software can be achieved using libraries like Selenium. This shall be followed by more advanced techniques like serverless-compute, Platform as a service model and Cloud-DevOps. Students would learn to monitor and log key data points to ensure they maintain a healthy system and adapt it as needed. Infrastructure-as-code is a key component of modern DevOps especially on cloud and containerized applications which would also be covered with real-world examples.

    Teachers

    Shivank Agrawal
    Shivank Agrawal
    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on DevOps.
    • Acquire knowledge of popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes).
    • Develop a critical knowledge of DevOps.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Develop a specialised knowledge of key strategies related to DevOps.
    Skills
    • Creatively apply DevOps tools to develop critical and original solutions for computational problems.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Autonomously gather material and organise it into coherent problem sets or presentations.
    • Apply an in-depth domain-specific knowledge and understanding to DevOps solutions.
    Competencies
    • Efficiently manage interdisciplinary issues that arise in connection to DevOps.
    • Demonstrate self-direction in research and originality in solutions developed for DevOps.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of DevOps.
    • Act autonomously in identifying research problems and solutions related to DevOps.
    • Apply a professional and scholarly approach to research problems pertaining to DevOps.
    • Create synthetic contextualised discussions of key issues related to DevOps.
    Advanced Machine Learning
    125 hours | 5 ECTS

    About

    This course introduces more advanced ML techniques like ensembles: bagging, boosting, cascading and stacking classifiers and regressors. It covers both the theoretical foundations and applicative details of these techniques along with popular implementations of boosting like LightGBM, CatBoost and XGBoost. Students also delve into kernel methods with specific focus on SVMs for classification and regression. Students will study state of the art model agnostic feature importance and model-interpretability techniques like LIME and SHAP. Students also study classical NLP based text encoding methods like Bag-of-words, TF-IDF etc. The module teaches various classical methods in time series analysis and forecasting like ARMA, ARIMA etc. Students also learn how to pose time series forecasting problems as regression and classification problems to leverage well studied ML techniques. This is followed by various domain and problem specific Feature engineering techniques that are often helpful in real world problem solving. Students will study methods like error analysis, ablative analysis etc., to debug and understand why and where a model is performing well and where it is not performing well. This will further help us in designing appropriate features. Students study model calibration techniques like Platt Scaling, Isotonic Regression etc. Later in this course, we cover how to build recommender systems using content-based and collaborative filtering methods. The module also teaches the detailed solution of the Netflix prize (2009) and various recent advances in RecSys.

    Teachers

    Rohit Jindal
    Rohit Jindal
    Sachin Kaushik
    Sachin Kaushik
    Shivank Agrawal
    Shivank Agrawal
    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of model calibration techniques like Platt Scaling, Isotonic Regression.
    • Develop a critical knowledge of Advanced Machine Learning.
    • Critically evaluate diverse scholarly views on Advanced Machine Learning.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Develop a specialised knowledge of key strategies related to Advanced Machine Learning.
    Skills
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply Advanced Machine Learning techniques to develop critical and original solutions for computation problems.
    • Autonomously gather material and organise it into coherent problem sets or presentations.
    • Apply an in-depth domain-specific knowledge and understanding to Advanced Machine Learning.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for Advanced Machine Learning.
    • Act autonomously in identifying research problems and solutions related to Advanced Machine Learning.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Machine Learning.
    • Efficiently manage interdisciplinary issues that arise in connection to Advanced Machine Learning.
    • Create synthetic contextualised discussions of key issues related to Advanced Machine Learning.
    • Apply a professional and scholarly approach to research problems pertaining to Advanced Machine Learning.
    Deep Learning for Natural Language Processing
    125 hours | 5 ECTS

    About

    This course focuses on modelling sequences (text, music, time-series, genes) using deep-learning models. We start with a simple Recurrent Neural Network and its limitations with long-sequences. Students learn LSTMs and GRUs which can handle significantly longer sequences to model sequence data like text, music, gene-sequences and time-series data. We study variations of LSTM like bi-directional LSTMs and encoder-decoder architectures. This is followed by a detailed study of attention mechanism and Transformer based models which are currently the state-of-the-art for NLP and sequence modelling. The module teaches encoder-decoder Transformers, BERT, BERT-variations, GPT-1,2 &3 models from both the architectural and mathematical viewpoints and also a practical viewpoint. Studnets learn to implement many of these complex models from scratch (using TensorFlow 2 and Keras) to gain a deeper understanding of how they work internally. Students will study popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), Semantic search with low-latency etc. For each of these problems, Students will study cutting edge deep-learning models along with code implementations.

    Teachers

    Satya Prakash Pattnaik
    Satya Prakash Pattnaik
    Shivam Prasad
    Shivam Prasad

    Intended learning outcomes

    Knowledge
    • Develop a specialised knowledge of key strategies related to Deep Learning for NLP.
    • Critically evaluate diverse scholarly views on Deep Learning for NLP.
    • Acquire knowledge of popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), etc.
    • Develop a critical knowledge of Deep Learning for NLP.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Deep Learning for NLP.
    • Autonomously gather material and organise it into coherent problem sets or presentation.
    • Assess, analyse, and criticise the various strategies for handling matters arising in the context of Deep Learning for NLP.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply Deep Learning for NLP techniques to develop critical and original solutions for computational problems.
    • Propose appropriate solutions to complex and changing problems pertaining to Deep Learning for NLP.
    • Apply an in-depth domain-specific knowledge and understanding to NLP solutions.
    Competencies
    • Act autonomously in identifying research problems and solutions related to Deep Learning for NLP.
    • Demonstrate self-direction in research and originality in solutions developed for Deep Learning for NLP.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for NLP.
    • Create synthetic contextualised discussions of key issues related to Deep Learning for NLP.
    • Apply a professional and scholarly approach to research problems pertaining to Deep Learning for NLP.
    • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for NLP.
    Advanced Back End Development
    125 hours | 5 ECTS

    About

    This course provides a dive deep into more advanced concepts in server-side programming using Node.js to enable initiative, real-time and scalable web applications. We dive into threading and thread pools in Node.js and how they can be leveraged to build more responsive web apps. We learn socket programming using socket.io and Node.js for instant messaging, document collaboration, real time analytics and streaming applications. Students also learn to use Caching using distributed in-memory key-value stores (like Redis) to rescue latency while serving web-apps. Students also learn how to use Node.js with popular NoSQL data stores like MongoDB for storing unstructured data. We also cover GraphQL which is an open source data query and manipulation language for APIs, which is gaining popularity more recently. We learn popular protocols like OAuth to enable cross platform logins. Students also learn the architecture and practical aspects of Web-RTC to enable multimedia applications like video-chat, live-streaming, music-streaming etc.

    Teachers

    Prakhar Agrawal
    Prakhar Agrawal
    Omansh Mathur
    Omansh Mathur

    Intended learning outcomes

    Knowledge
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Develop a critical knowledge of Advanced Back end Development.
    • Develop a specialised knowledge of key strategies related to Advanced Back end Development applications.
    • Acquire knowledge of threading and thread pools in Node.js and how they can be leveraged to build more responsive web apps.
    • Critically evaluate diverse scholarly views on Advanced Back end Development.
    Skills
    • Apply an in-depth domain-specific knowledge and understanding to Advanced Back end Development solutions.
    • Autonomously gather material and organise it into coherent problems sets or presentations.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively utilize Advanced Back end Development applications to develop critical and original solutions for computational problems.
    Competencies
    • Apply a professional and scholarly approach to research problems pertaining to Advanced Back end Development.
    • Act autonomously in identifying research problems and solutions related to Advanced Back end Development.
    • Demonstrate self-direction in research and originality in solutions developed for Advanced Back end Development.
    • Create synthetic contextualised discussions of key issues related to Advanced Back end Development.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Back end Development.
    • Efficiently manage interdisciplinary issues that arise in connection to Advanced Back end Development.
    Applied Statistics
    125 hours | 5 ECTS

    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. Studnets 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

    Aniruddha Mukherjee
    Aniruddha Mukherjee
    Sachin Kaushik
    Sachin Kaushik
    Hina Sharma
    Hina Sharma
    Ritwik Malla
    Ritwik Malla

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on Applied Statistics.
    • Develop a specialised knowledge of key strategies related to Applied Statistics.
    • Develop a critical knowledge of Applied Statistics.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal).
    Skills
    • 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.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics.
    • Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous data analysis.
    • Demonstrate self-direction in research and originality in solutions developed for Applied Statistics.
    • Efficiently manage interdisciplinary issues that arise in connection to Applied Statistics.
    • Act autonomously in identifying research problems and solutions related to Applied Statistics.
    • Create synthetic contextualised discussions of key issues related to Applied Statistics.
    Deep Learning for Computer Vision
    125 hours | 5 ECTS

    About

    This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.

    Teachers

    Satya Prakash Pattnaik
    Satya Prakash Pattnaik
    Shivam Prasad
    Shivam Prasad

    Intended learning outcomes

    Knowledge
    • Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision.
    • Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet.
    • Develop a critical knowledge of Deep Learning for Computer Vision.
    • Critically evaluate diverse scholarly views on Deep Learning for Computer Vision.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • Creatively apply computer vision techniques to develop critical and original solutions for computational problems.
    • Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Autonomously gather material and organise it into coherent problem sets or presentation.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision.
    • Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision.
    • Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision.
    • Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision.
    • Act autonomously in identifying research problems and solutions related to Deep Learning for Computer Vision.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for Computer Vision.
    Back End Development
    125 hours | 5 ECTS

    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

    Anurag Khanna
    Anurag Khanna
    Alok Singh
    Alok Singh
    Keerthikumar Sg
    Keerthikumar Sg
    Ankit Arora
    Ankit Arora

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on Back end Development.
    • Develop a critical knowledge of Back end Development.
    • Develop a specialised knowledge of key strategies related to 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.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • 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.
    Competencies
    • Apply a professional and scholarly approach to research problems pertaining to Back end Development.
    • Efficiently manage interdisciplinary issues that arise in connection to Back end Development.
    • Demonstrate self-direction in research and originality in solutions developed for Back end Development.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Back end Development.
    • Act autonomously in identifying research problems and solutions related to Back end Development.
    • Create synthetic contextualised discussions of key issues related to Back end Development.
    Computer Systems and Their Fundamentals
    125 hours | 5 ECTS

    About

    This core course equips the student with knowledge of database management systems, operating systems and computer networks. At the end of the course, students will have a critical understanding of the architecture of computers and networks, as well has how programs interact with these. Students begin with mapping data storage problems (as they had done in Relational Databases) to understand how data is stored in a distributed network, and related issues such as concurrency. Subsequently, students cover operating systems with an overview of process scheduling, process synchronisation and memory management techniques with disk scheduling. The module concludes with computer networks, where we will be discussing all of the computer network layers and their protocols in detail.

    Teachers

    Alok Singh
    Alok Singh
    Keerthikumar Sg
    Keerthikumar Sg

    Intended learning outcomes

    Knowledge
    • Critically assess the relevance of theories of database design for business applications in the domain of software engineering.
    • Develop a specialised knowledge of optimising relational database performance in low-latency environments.
    • Acquire knowledge of various methods for troubleshooting computer network layers.
    • Critically evaluate diverse scholarly views on the appropriateness of various approaches to memory management in operating systems.
    • Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems.
    • Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols.
    Skills
    • Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    Competencies
    • Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks.
    • Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments.
    • Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems.
    • Act autonomously in identifying research problems and solutions related to the real-world application of relational databases.
    • Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks.
    Practical Software Engineering
    125 hours | 5 ECTS

    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

    Alok Singh
    Alok Singh
    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

    Knowledge
    • 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.
    • Develop a specialised knowledge of Process Design Languages and flowchart methods for describing desired functions and behaviours.
    • Develop a critical knowledge of software design and refinement processes.
    • 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.
    Skills
    • Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level designs.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    • Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to developing code-ready low-level design documents.
    • Act autonomously in identifying research problems and solutions related to refining software designs.
    • 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.
    • Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models.
    • Apply a professional and scholarly approach to research problems pertaining to logical and functional design of software components.
    Low-Level Design and Design Patterns
    125 hours | 5 ECTS

    About

    Low-Level Design & Design Patterns focuses on modularity and reusability in software design, common design vocabularies, refactoring and how to reduce it, and how to incorporate design patterns into iterative development processes. The course pays significant attention to the interaction between system architecture and components, including data organisation.

    The course begins with Object-Oriented Analysis (OOA), which is a problems-solving technique that includes: modelling an information design; representing behaviour; describing functions; dividing data, functional, and behavioural models to uncover detail; moving from abstraction to implementation details. The course then turns to Object-Oriented Design (OOD), which reduces the analysis model into a modular design for software creation, with subsystems, components, and objects.

    The iteration of analysis and implementation will be covered in detail with real-world industry examples.

    Teachers

    Anurag Khanna
    Anurag Khanna
    Alok Singh
    Alok Singh
    Keerthikumar Sg
    Keerthikumar Sg
    Ankit Arora
    Ankit Arora

    Intended learning outcomes

    Knowledge
    • Critically assess the relevance of theories of reusable design for business applications in the domain of software engineering.
    • Critically evaluate diverse scholarly views on the appropriateness of various approaches to design patterns for object-oriented design.
    • Acquire knowledge of various methods for specifying modular elements in a software subsystem.
    • Develop a specialised knowledge of modelling data, behaviour, and function in software.
    • Develop a critical understanding of object-oriented analysis and design.
    Skills
    • Apply an in-depth domain-specific knowledge and understanding of the importance of object-oriented design in software engineering.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply various design patterns to most efficiently design software that meets specified criteria.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    Competencies
    • Act autonomously in identifying research problems and solutions related to the modular, procedural software design.
    • Solve problems and be prepared to take leadership decisions related to developing design patterns to solve problems in software design.
    • Apply a professional and scholarly approach to research problems pertaining to building software with reusable elements.
    • Efficiently manage interdisciplinary issues that arise in connection to modelling data, behaviour, and function.
    • Demonstrate self-direction in research and originality in solutions developed for designing reusable software elements.
    • Create synthetic contextualised discussions of key issues related to Object-Oriented Analysis and Design.
    Applied Computer Science Project
    250 hours | 10 ECTS

    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.

    Teachers

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Anurag Khanna
    Anurag Khanna
    Alok Singh
    Alok Singh

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on modern computational applications.
    • Develop a critical knowledge of modern computational applications.
    • Acquire knowledge of an end-to-end deployable solution to a real-world computational problem.
    • Develop a specialised knowledge of key strategies related to modern computational applications.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • 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 computational applications to develop critical and original solutions for computational problems.
    • Apply an in-depth domain-specific knowledge and understanding of modern day computational applications.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments.
    • Efficiently manage interdisciplinary issues that arise in connection to deploying a modern, web-based system.
    • Apply a professional and scholarly approach to research problems pertaining to real-world computational complexities.
    • Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
    • Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software solutions.
    • Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
    Front End UI/UX Development
    125 hours | 5 ECTS

    About

    This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5, CSS and Frameworks like Bootstrap 4. This course starts with an introduction on how web browsers, mobile apps and web servers work. We then dive into each of the nitty gritty details of HTML5 to build webpages. We would start with simple web pages and then graduate to more complex layouts and features in HTML like forms, iFrames, multimedia-playback and using web-APIs. We then go on to learn stylesheets based on CSS 4 and how browsers interpret CSS files to render web pages. Once again, we use multiple real world example web pages to learn the internals of CSS4. We learn popular good practices on writing responsive HTML and CSS code which is also interoperable on mobile browsers, apps and desktop apps. We would introduce students to building desktop apps using HTML and CSS using toolkits like Electron. We would also study popular frameworks for front end development like Bootstrap 4 which can speed up UI development significantly.

    Teachers

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Ashwani Kumar Rajput
    Ashwani Kumar Rajput

    Intended learning outcomes

    Knowledge
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Critically evaluate diverse scholarly views on Front end UI/UX development.
    • Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4.
    • Develop a critical knowledge of Front end UI/UX development.
    • Develop a specialised knowledge of key strategies related to Front end UI/UX development.
    Skills
    • Creatively apply Front end UI/UX development applications to develop critical and original solutions for computational problems.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Apply an in-depth domain-specific knowledge and understanding to technology.
    • Autonomously gather material and organise into a coherent problem sets or presentation.
    Competencies
    • Apply a professional and scholarly approach to research problems pertaining to Front end UI/UX development.
    • Act autonomously in identifying research problems and solutions related to Front end UI/UX development.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Front end UI/UX development.
    • Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development.
    • Efficiently manage interdisciplinary issues that arise in connection to Front end UI/UX development.
    • Create synthetic contextualised discussions of key issues related to Front end UI/UX development.
    Front End Development
    125 hours | 5 ECTS

    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

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Ashwani Kumar Rajput
    Ashwani Kumar Rajput

    Intended learning outcomes

    Knowledge
    • Develop a critical knowledge of front end development.
    • Develop a specialised knowledge of key strategies related to front end development.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS.
    • Critically evaluate diverse scholarly views on front end development.
    Skills
    • 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 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.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development.
    • Act autonomously in identifying research problems and solutions related to front end development.
    • Apply a professional and scholarly approach to research problems pertaining to front end development.
    • Efficiently manage interdisciplinary issues that arise in connection to front end development.
    • Create synthetic contextualised discussions of key issues related to front end development.
    • Demonstrate self-direction in research and originality in solutions developed for front end development.
    JavaScript
    125 hours | 5 ECTS

    About

    This course is a hands-on course covering JavaScript from basics to advanced concepts in detail using multiple examples. We start with basic programming concepts like variables, control statements, loops, classes and objects. Students also learn basic data-structures like Strings, Arrays and dates. Students also learn to debug our code and handle errors gracefully in code. We learn popular style guides and good coding practices to build readable and reusable code which is also highly performant. We then learn how web browsers execute JavaScript code using V8 engine as an example. We also cover concepts like JIT-compiling which helps JS code to run faster. This is followed by slightly advanced concepts like DOM, Async-functions, Web APIs and AJAX which are very popularly used in modern front end development. We learn how to optimize JavaScript code to run on both mobile apps and mobile browsers along with Desktop browsers and as desktop apps via ElectronJS. Most of this course would be covered via real world examples and by learning from JS code of popular open-source websites and libraries.

    Teachers

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Ashwani Kumar Rajput
    Ashwani Kumar Rajput

    Intended learning outcomes

    Knowledge
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Critically evaluate diverse scholarly views on JavaScript.
    • Develop a specialised knowledge of key strategies related to JavaScript.
    • Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant.
    • Develop a critical knowledge of JavaScript.
    Skills
    • Creatively apply JavaScript concepts to develop critical and original solutions for computational problems.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Apply an in-depth domain-specific knowledge and understanding to JavaScript tools.
    • Autonomously gather material and organise into a coherent problem sets or presentations.
    Competencies
    • Efficiently manage interdisciplinary issues that arise in connection to JavaScript.
    • Demonstrate self-direction in research and originality in solutions developed for JavaScript.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript.
    • Apply a professional and scholarly approach to research problems pertaining to JavaScript.
    • Act autonomously in identifying research problems and solutions related to JavaScript.
    • Create synthetic contextualised discussions of key issues related to JavaScript.
    Applied Computer Science Project
    250 hours | 10 ECTS

    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.

    Teachers

    Mohd Aman
    Mohd Aman
    kachwal uttam sharma
    kachwal uttam sharma
    Shashwat Bagaria
    Shashwat Bagaria
    Anurag Khanna
    Anurag Khanna
    Alok Singh
    Alok Singh

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on modern computational applications.
    • Develop a critical knowledge of modern computational applications.
    • Acquire knowledge of an end-to-end deployable solution to a real-world computational problem.
    • Develop a specialised knowledge of key strategies related to modern computational applications.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • 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 computational applications to develop critical and original solutions for computational problems.
    • Apply an in-depth domain-specific knowledge and understanding of modern day computational applications.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments.
    • Efficiently manage interdisciplinary issues that arise in connection to deploying a modern, web-based system.
    • Apply a professional and scholarly approach to research problems pertaining to real-world computational complexities.
    • Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
    • Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software solutions.
    • Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
    System Design
    125 hours | 5 ECTS

    About

    This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.

    Teachers

    Tanmay Kacker
    Tanmay Kacker
    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

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

    About

    Every organisation is building products to solve the pain points of its customers. Product managers are a critical part of an organisation, who make sure that evolving customer needs, and market trends are observed and converted into delightful solutions which help businesses get its outcomes.

    In this course, students will get a fundamental understanding of product management practices.

    This will give them a comprehensive view of the complete product management life cycle.

    Teachers

    Nischal Shetty
    Nischal Shetty
    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
    • Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics.
    • Critically evaluate diverse scholarly views on assessing user behaviours.
    • Critically assess the relevance of theories of user behaviour for product development.
    • Develop a critical knowledge of product design and development.
    Skills
    • 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.
    • Apply an in-depth domain-specific knowledge and understanding of product roadmaps and lifecycles in business.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    Competencies
    • 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.
    • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
    • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
    • 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.
    • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
    Data Engineering
    250 hours | 10 ECTS

    About

    Data is the fuel driving all major organisations. In this course, we help 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.

    We will give you a comprehensive view of the complete Data Engineering lifecycle.

    Teachers

    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on best practices in developing data-intensive applications.
    • Develop a critical knowledge of data engineering.
    • Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem.
    • Acquire knowledge of various methods for warehousing data.
    • Critically assess the relevance of theories of data modeling for efficient pipeline creation.
    Skills
    • Autonomously gather material and organise it into a coherent presentation or essay.
    • Apply an in-depth domain-specific knowledge and understanding of orchestrating complete ETL pipelines.
    • Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    Competencies
    • Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
    • Demonstrate self-direction in research and originality in creating advanced SQL queries.
    • Efficiently manage interdisciplinary issues that arise in connection to developing cloud solutions for data engineering problems.
    • 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.
    • Solve problems and be prepared to take leadership decisions related to developing pipelines to handle massive datasets for engineering purposes.
    Foundations of Machine Learning
    125 hours | 5 ECTS

    About

    This course focuses on building basic classification and regression models and understanding these models rigorously both with a mathematical and an applicative focus. It opens with a basic introduction to high dimensional geometry of points, distance-metrics, hyperplanes and hyperspheres. Then, it introduces the mathematical formulation of logistic regression to find a separating hyperplane. Vector calculus and gradient descent (GD)-based algorithms are explored to learn to solve the optimization problem, including computational variations of GD like mini-batch and stochastic gradient descent. The course also covers other popular classification and regression methods like k-Nearest Neighbours, Naive Bayes, Decision Trees, Linear Regression etc, to show how each of these techniques performs under various real-world situations like the presence of outliers, imbalanced data, multi class classification etc. Lectures on bias and variance tradeoff and various techniques to avoid overfitting and underfitting are incorporated. Algorithms are taught from a Bayesian viewpoint along with geometric intuition. This course would be heavily hands-on where students apply all these classical techniques to real world problems.

    Teachers

    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • Develop a critical understanding of classification and regression machine learning problems.
    • Critically evaluate diverse scholarly views on Bayesian and geometric methods for evaluating algorithms.
    • Develop a specialised knowledge of the use of gradient descent and related algorithms for optimising solutions.
    • Acquire knowledge of various methods for solving both classification and regression problems, such as k-nearest neighbours, naïve Bayes, decision trees, and linear regression.
    • Critically assess the relevance of theories of machine learning in the realm of software engineering.
    Skills
    • Apply an in-depth domain-specific knowledge and understanding of the use cases of machine learning algorithms in business.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply various visual and written methods for explaining machine learning solutions to expert and, where possible, nontechnical audiences.
    • Autonomously gather material and organise it into a coherent presentation or essay.
    Competencies
    • Create synthetic contextualised discussions of key issues related to classification and regression problems.
    • Demonstrate self-direction in research and originality in solutions developed to account for imbalanced data.
    • Act autonomously in identifying research problems and solutions related to the classification problems in machine learning.
    • Efficiently manage interdisciplinary issues that arise in connection to over- and underfitting of data to models.
    • Apply a professional and scholarly approach to research problems pertaining to gradient descent-based algorithms.
    • Solve problems and be prepared to take leadership decisions related to selecting algorithms for machine learning problems
    High Dimensional Data Analysis
    125 hours | 5 ECTS

    About

    This course is aimed to help learners understand various techniques and algorithms to visualize, analyse and understand high dimensional data which is very common in Data Science and ML. The module starts with linear algebraic methods like Principal Component Analysis (PCA) and SVD (Singular Value Decomposition) for obtaining linear projection of high dimensional data. This is followed by more advanced nonlinear and state of the art techniques like t-SNE and UMAP for visualizing high dimensional data. Each of these techniques would be covered in full mathematical detail from first principles along with applying them to real world datasets in NLP, Genomics and internet-datasets. Students will also study how PCA and SVD are related to general Matrix Factorization techniques. To analyse and understand high dimensional un-labelled data, students learn clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN. The modules shows how some of the techniques are mathematically related to Matrix Factorization. Students study various outlier detection techniques based on density, proximity, factorization and cluster analysis.

    Teachers

    Pushkar Singh
    Pushkar Singh

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of clustering techniques like K-Means, Gaussian Mixture models, Hierarchical Clustering and DBSCAN.
    • Develop a critical knowledge of Data Analysis.
    • Develop a specialised knowledge of key strategies related to Data Analysis.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Critically evaluate diverse scholarly views on Data Analysis.
    Skills
    • Autonomously gather material and organise it into coherent problems sets or presentation.
    • Apply an in-depth domain-specific knowledge and understanding to Data Analysis techniques.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply various techniques to develop critical and original solutions for computational problems.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Analysis.
    • Act autonomously in identifying research problems and solutions related to Data Analysis.
    • Efficiently manage interdisciplinary issues that arise in connection to Data Analysis.
    • Create synthetic contextualised discussions of key issues related to Data Analysis.
    • Apply a professional and scholarly approach to research problems pertaining to Data Analysis.
    • Demonstrate self-direction in research and originality in solutions developed for data analysis.
    Numerical Programming in Python
    125 hours | 5 ECTS

    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 optimized code using appropriate data structures and algorithmic design methods. The module does not dive deep into the data structures and algorithm design methods in this course - that is available in the ‘Data Structures and Algorithms’ module. This course is valuabe for all students specializing in mathematical sub-areas of CS like ML, Data Science, Scientific Computing etc.

    Teachers

    Aniruddha Mukherjee
    Aniruddha Mukherjee
    Sachin Kaushik
    Sachin Kaushik
    Hina Sharma
    Hina Sharma
    Ritwik Malla
    Ritwik Malla

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas.
    • Develop a specialised knowledge of key strategies related to Numerical programming in Python.
    • Critically evaluate diverse scholarly views on Numerical programming in Python.
    • Develop a critical knowledge of Numerical programming in Python.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • Autonomously gather material and organize it into a coherent problem sets or presentation.
    • Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python.
    • Create new solutions that are critical to solving computational problems through creatively applying code writing.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for Numerical programming in Python.
    • Apply a professional and scholarly approach to research problems pertaining to Numerical programming in Python.
    • Act autonomously in identifying research problems and solutions related to Numerical programming in Python.
    • Efficiently manage interdisciplinary issues that arise in connection to Numerical programming in Python.
    • Create synthetic contextualised discussions of key issues related 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.
    Product Analytics
    125 hours | 5 ECTS

    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

    Suraaj Hasija
    Suraaj Hasija

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it.
    • Critically evaluate diverse scholarly views on assessing user behaviours.
    • Develop a critical knowledge 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.
    • Critically assess the relevance of theories of user behaviour for product development.
    Skills
    • 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.
    Competencies
    • Act autonomously in identifying research problems and solutions related to product analytics.
    • Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
    • 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.
    • Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
    • Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users.
    • Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market.
    Statistical Programming
    125 hours | 5 ECTS

    About

    This module focuses on representing statistical techniques in code, and may be conducted in Python, R, or another relevant language. Such languages provide libraries that can handle a wide variety of statistical techniques like linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering and graphical techniques, and is highly extensible.

    Learning to work in statistically-oriented programming language environments can equip you with the following skills among many others:

    1. An effective way of data handling (using arrays for example) and storing data in a structured manner.

    2. Expertise in diverse tools and libraries for Data Analysis

    3. Ability to present complex data in a graphical and visual format for easy understanding of the data and further solutions.

    Teachers

    Aniruddha Mukherjee
    Aniruddha Mukherjee
    Sachin Kaushik
    Sachin Kaushik
    Hina Sharma
    Hina Sharma
    Ritwik Malla
    Ritwik Malla

    Intended learning outcomes

    Knowledge
    • Develop a critical knowledge of a statistical programming language and its use in cleaning and analysing data.
    • Develop a specialised knowledge of statistical techniques such as linear and nonlinear modelling, time-series analysis, and clustering.
    • Critically assess the relevance of theories of statistical analysis for business applications in the realm of software engineering.
    • Acquire knowledge of various methods for structuring data in arrays.
    • Critically evaluate diverse scholarly views on the graphical presentation of complex data.
    Skills
    • Autonomously gather material and organise it into a coherent presentation or essay.
    • Creatively apply various visual and written methods for developing meaningful visualisations of complex data sets.
    • Apply an in-depth domain-specific knowledge and understanding of the importance of data analysis in business.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to selecting tools and libraries for data analysis.
    • Apply a professional and scholarly approach to research problems pertaining to statistical tests, modelling, and visualisations.
    • Create synthetic contextualised discussions of key issues related to handling and storing data.
    • Act autonomously in identifying research problems and solutions related to statistical methods in programming.
    • Efficiently manage interdisciplinary issues that arise in connection to structuring data.
    • Demonstrate self-direction in research and originality in solutions developed for presenting complex data in graphical or visual formats.
    Applied Statistics
    125 hours | 5 ECTS

    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. Studnets 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

    Aniruddha Mukherjee
    Aniruddha Mukherjee
    Sachin Kaushik
    Sachin Kaushik
    Hina Sharma
    Hina Sharma
    Ritwik Malla
    Ritwik Malla

    Intended learning outcomes

    Knowledge
    • Critically evaluate diverse scholarly views on Applied Statistics.
    • Develop a specialised knowledge of key strategies related to Applied Statistics.
    • Develop a critical knowledge of Applied Statistics.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal).
    Skills
    • 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.
    Competencies
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Applied Statistics.
    • Apply a professional and scholarly approach to research problems pertaining to probability theory to perform mathematically rigorous data analysis.
    • Demonstrate self-direction in research and originality in solutions developed for Applied Statistics.
    • Efficiently manage interdisciplinary issues that arise in connection to Applied Statistics.
    • Act autonomously in identifying research problems and solutions related to Applied Statistics.
    • Create synthetic contextualised discussions of key issues related to Applied Statistics.
    Introduction to Machine Learning
    125 hours | 5 ECTS

    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, 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.

    Teachers

    Rohit Jindal
    Rohit Jindal
    Shivank Agrawal
    Shivank Agrawal
    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • 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.
    • Develop a critical knowledge of machine learning.
    • Critically evaluate diverse scholarly views on machine learning.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    Skills
    • Creatively apply regression models to develop critical and original solutions for computational issues.
    • Autonomously gather material and organise it into coherent problem sets and presentation.
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Apply an in-depth domain-specific knowledge and understanding to machine learning solutions.
    Competencies
    • Apply a professional and scholarly approach to research problems pertaining to machine learning.
    • Act autonomously in identifying research problems and solutions related to machine learning.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning.
    • Demonstrate self-direction in research and originality in solutions developed for machine learning.
    • Efficiently manage interdisciplinary issues that arise in connection to machine learning.
    • Create synthetic contextualised discussions of key issues related to machine learning.
    Distributed Machine Learning
    125 hours | 5 ECTS

    About

    This course provides an in-depth understanding of distributed systems for ML and Deep Learning using CPU,GPU and TPU clusters. It starts with foundations of Map-reduce framework and in-memory distributed and resilient data structures that form the backbone of Spark. Students will learn the architectural details of these distributed system platforms and how they can be leveraged to perform data analysis and model training on petabyte scale datasets. We cover how distributed training is achieved for popular ML algorithms on Spark by understanding the internal working of SparkMLLib. The module then focuses on understanding distributed graph processing using GraphX. Students move on to Deep-Learning algorithms and how distributed algorithms can be designed for them when we have GPU or TPU clusters at our disposal. We also dive deep into how TensorFlow archives distributed computing for popular Deep Learning algorithms. Students will study distributed data stores and how they can be used for ML using popular datastore systems like Hive and SparkSQL. The module concludes by discussing state of the art distributed, low-latency approximate nearest neighbour algorithms along with their implementations in ElasticSearch.

    Teachers

    Rohit Jindal
    Rohit Jindal
    Sachin Kaushik
    Sachin Kaushik
    Shivank Agrawal
    Shivank Agrawal
    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of TensorFlow and popular Deep Learning algorithms.
    • Develop a specialized knowledge of key strategies related to Distributed Machine Learning.
    • Critically evaluate diverse scholarly views on Distributed Machine Learning.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Develop a critical knowledge of Distributed Machine Learning.
    Skills
    • 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 Distributed Machine Learning techniques to develop critical and original solutions for computational problems
    • Apply an in-depth domain-specific knowledge and understanding to Distributed Machine Learning solutions.
    Competencies
    • Efficiently manage interdisciplinary issues that arise in connection to Distributed Machine Learning.
    • Apply a professional and scholarly approach to research problems pertaining to Distributed Machine Learning.
    • Act autonomously in identifying research problems and solutions related to Distributed Machine Learning.
    • Demonstrate self-direction in research and originality in solutions developed for Distributed Machine Learning.
    • Create synthetic contextualised discussions of key issues related to Distributed Machine Learning.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles Distributed Machine Learning.
    Advanced AI Concepts
    125 hours | 5 ECTS

    About

    This course introduces learners to Generative AI as required by Software Engineers to upskill into requirements to be an Applied AI Engineer, starting from foundational concepts in Machine Learning and Deep Learning, and progressing toward building advanced generative applications using large language models (LLMs).

    Students will gain hands-on experience with modern neural architectures like transformers, and develop practical applications such as support bots and AI agents.

    The course also covers essential tooling and concepts like embeddings, retrieval augmented generation (RAG), OpenAI APIs, cost optimization strategies, evaluation frameworks, fine-tuning, and real-world AI system design, enabling learners to build end-to-end generative AI applications that are scalable, dynamic, and production-ready.

    Teachers

    Shivank Agrawal
    Shivank Agrawal
    Dhruv Bharat Jawali
    Dhruv Bharat Jawali

    Intended learning outcomes

    Knowledge
    • Explain the underlying theories and principles behind advanced AI techniques, such as reinforcement learning, generative adversarial networks (GANs), and deep reinforcement learning.
    • Identify and discuss emerging trends in advanced AI, including new algorithms, frameworks, and their potential impact on various industries.
    • Dissect and analyse complex AI architectures, including their components, interactions, and applications in solving real- world problems.
    Skills
    • Design and develop custom AI solutions tailored to solve complex problems in fields like healthcare, finance, or autonomous systems.
    • Assess the performance of advanced AI systems by using metrics such as accuracy, precision, recall, and computational efficiency to fine-tune and optimise models.
    • Implement advanced AI algorithms, such as GANs, reinforcement learning models, and deep neural networks, using programming languages like Python and frameworks like TensorFlow or PyTorch.
    Competencies
    • Demonstrate the competency to adapt advanced AI technologies to address new and unforeseen challenges in various domains, ensuring that AI solutions remain relevant and effective.
    • Demonstrate the ability to integrate advanced AI techniques into existing software systems, ensuring compatibility, scalability, and performance optimization
    • Lead and manage innovative AI research projects that explore cutting-edge AI concepts, contributing to the academic and industry knowledge base.
    Advanced Machine Learning
    125 hours | 5 ECTS

    About

    This course introduces more advanced ML techniques like ensembles: bagging, boosting, cascading and stacking classifiers and regressors. It covers both the theoretical foundations and applicative details of these techniques along with popular implementations of boosting like LightGBM, CatBoost and XGBoost. Students also delve into kernel methods with specific focus on SVMs for classification and regression. Students will study state of the art model agnostic feature importance and model-interpretability techniques like LIME and SHAP. Students also study classical NLP based text encoding methods like Bag-of-words, TF-IDF etc. The module teaches various classical methods in time series analysis and forecasting like ARMA, ARIMA etc. Students also learn how to pose time series forecasting problems as regression and classification problems to leverage well studied ML techniques. This is followed by various domain and problem specific Feature engineering techniques that are often helpful in real world problem solving. Students will study methods like error analysis, ablative analysis etc., to debug and understand why and where a model is performing well and where it is not performing well. This will further help us in designing appropriate features. Students study model calibration techniques like Platt Scaling, Isotonic Regression etc. Later in this course, we cover how to build recommender systems using content-based and collaborative filtering methods. The module also teaches the detailed solution of the Netflix prize (2009) and various recent advances in RecSys.

    Teachers

    Rohit Jindal
    Rohit Jindal
    Sachin Kaushik
    Sachin Kaushik
    Shivank Agrawal
    Shivank Agrawal
    Nikhil Sanghi
    Nikhil Sanghi

    Intended learning outcomes

    Knowledge
    • Acquire knowledge of model calibration techniques like Platt Scaling, Isotonic Regression.
    • Develop a critical knowledge of Advanced Machine Learning.
    • Critically evaluate diverse scholarly views on Advanced Machine Learning.
    • Critically assess the relevance of theories for business applications in the domain of technology.
    • Develop a specialised knowledge of key strategies related to Advanced Machine Learning.
    Skills
    • Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing.
    • Creatively apply Advanced Machine Learning techniques to develop critical and original solutions for computation problems.
    • Autonomously gather material and organise it into coherent problem sets or presentations.
    • Apply an in-depth domain-specific knowledge and understanding to Advanced Machine Learning.
    Competencies
    • Demonstrate self-direction in research and originality in solutions developed for Advanced Machine Learning.
    • Act autonomously in identifying research problems and solutions related to Advanced Machine Learning.
    • Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Machine Learning.
    • Efficiently manage interdisciplinary issues that arise in connection to Advanced Machine Learning.
    • Create synthetic contextualised discussions of key issues related to Advanced Machine Learning.
    • Apply a professional and scholarly approach to research problems pertaining to Advanced Machine Learning.

    Entry Requirements

    Tuition Cost
    5,09,000 INR
    Student education requirement
    Undergraduate (Bachelor’s)

    Application Process

    1

    Submit initial Application

    Complete the online application form with your personal information

    2

    Documentation Review

    Submit required transcripts, certificates, and supporting documents

    3

    Assessment

    Your application will be evaluated against program requirements

    4

    Interview

    Selected candidates may be invited for an interview

    5

    Decision

    Receive an admission decision

    6

    Enrollment

    Complete registration and prepare to begin your studies

    Ready to advance your education with a globally recognised degree?

    Previous
    Overview
    Next
    What you’ll learn