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, as well as soft skills in communication, collaboration, and project management that enable students to succeed in real-world business environments. Most of this program is case (or) project-based where students learn by solving real-world problems end to end. This program has core courses that focus on computational thinking and problems solving from first principles. The core courses are followed by specialization courses that teach various aspects of building real-world systems. This is followed by more advanced courses that focus on research level topics, which cover state of the art methods. The program also has a capstone project at the end, wherein students can either work on building end to end solutions to real world problems (or) work on a research topic. The program also focuses on teaching the students the “ability to learn” so that they can be lifelong learners constantly upgrading their skills. Students can choose from a spectrum of courses to specialize in a specific sub-area of Computer Science like Artificial Intelligence and Machine Learning, Cloud Computing, Software Engineering, or Data Science, etc.
Target Audience
- Ages 19-30, 31-65, 65+
Target Group
This course is designed for individuals who wish to enhance their knowledge of computer science and its various applications used in different fields of employment. It is designed for those that will have responsibility for planning, organizing, and directing technological operations. In all cases, the target group should be prepared to pursue substantial academic studies. Students must qualify for the course of study by entrance application. A prior computer science degree is not required; however the course does assume technical aptitude; and it targets students with finance, engineering, or STEM training or professional experience.
Mode of attendance
Online/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. Under the guidance of the Academic Staff at Woolf, students may either select exclusively from one specialization track (in which case they will earn that specialization), or they may mix tracks (in which case they will finish without a specialization). Tier Three may be completed in two different ways: a) by completing a 30ECTS Advanced Applied Computer Science capstone project, or b) by completing a 10 ECTS Applied Computer Science project and 20 ECTS of electives from the program.
Grading System
Scale: 0-100 points
Components: 60% of the mark derives from the average of the assignments, and 40% of the mark derives from the cumulative examination
Passing requirement: minimum of 60% overall
Dates of Next Intake
Rolling admission
Pass rates
2023 pass rates will be publicised in the next cycle, contingent upon ensuring sufficient student data for anonymization.
Identity Malta’s VISA requirement for third country nationals: https://www.identitymalta.com/unit/central-visa-unit/
Passing requirement: minimum of 60% overall
Dates of Next Intake
Rolling admission
Pass rates
2023 pass rates will be publicised in the next cycle, contingent upon ensuring sufficient student data for anonymization. Identity Malta’s VISA requirement for third country nationals: https://www.identitymalta.com/unit/central-visa-unit/
How students have found success through Woolf
Course Structure
About
This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.
While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.
The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for storing data in a computer program
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to solving problems with 2D lists
Propose appropriate solutions to complex and changing problems of data storage, programming functions, and algorithms
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on computational complexity
- Develop a specialised knowledge of key strategies related to Object-Oriented Programming
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of various methods for structuring data
- Develop a critical understanding of a modern programming language such as Java or Python
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various programming methods to develop critical and original solutions to computational problems
- Apply an in-depth domain-specific knowledge and understanding to computer programming
- Autonomously gather material and organise it into a coherent presentation or essay
- Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented methods
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming
- Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays
- Act autonomously in identifying research problems and solutions related to Object-Oriented programming
About
This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.
Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.
Key Intended Learning Outcomes:
Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.
Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.
Teachers





Intended learning outcomes
- Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
- Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
- Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
- Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
- Comprehend web standards, cross-browser compatibility, and validation techniques.
- Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
- Assess the principles of organising and structuring information for effective website navigation and user experience
- Understand the concepts and techniques of responsive web design.
- Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
- Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
- Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
- Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
- Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
- Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
- Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
- Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
- Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
- Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
- Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
- Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
- Optimise website assets, reduce load times, and improve overall website performance.
- Create websites that provide optimal user experiences across a range of devices.
- Apply accessibility techniques to ensure equal access to information and functionality.
- Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
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.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Data structures
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should implement Data structures
Propose appropriate solutions to complex and changing problems pertaining to different approach to Data structures applications
Teachers





Intended learning outcomes
- Develop a critical knowledge of Data Structures and their implementation
- 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
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent data structures
- Apply data structures in a creative way to develop original, critical solutions to real world problems.
- Apply an in-depth domain-specific knowledge and understanding of Data Structures
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation
- Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation.
- Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation
- Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation
- Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation
- Act autonomously in identifying research problems and solutions related to Data Structures and their implementation
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 Fetch 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript
Propose appropriate solutions to complex and changing problems pertaining to JavaScript
Teachers





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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
About
Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.
This course covers discrete mathematics for computer science and engineering. Topics may include asymptotic notation and growth of functions; permutations and combinations; counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.
Students will be able to explain and apply the basic methods of discrete (noncontinuous) mathematics in computer science. They will be able to use these methods in subsequent courses in the design and analysis of algorithms, computability theory, software engineering, and computer systems. The focus of the course is real-world problems and applications often found in business and industry.
Besides, students will learn 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. The course will focus on developing problem-solving strategies such as abstraction, modularity, recursion, iteration, bisection, and exhaustive enumeration.
The course will also introduce arrays and some of their real-world applications, such as prefix sum, carry forward, subarrays, and 2-dimensional matrices. Examples will 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).
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for evaluating algorithmic cost arising in the context of computational problem-solving and handling matters arising in the context of structured data
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle evaluating algorithmic performance and solving problems with structured data
Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development
Teachers





Intended learning outcomes
- Develop a critical understanding of discrete mathematics as a tool in software development
- Critically assess the relevance of theories of recursivity and induction for business applications in the domain of computational problem-solving
- Critically evaluate diverse scholarly views on the appropriateness of various mathematical approaches to software development problems
- Develop a specialised knowledge of evaluating and describing algorithmic performance using tools from discrete mathematics
- Acquire knowledge of various methods for optimizing algorithm design
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding of discrete mathematics to algorithmic designs
- Creatively apply various programming methods to most efficiently implement state machines in algorithmic design
- Autonomously gather material and organise it into a coherent presentation or essay
- Create synthetic contextualised discussions of key issues related to applications of discrete mathematics in computer science
- Solve problems and be prepared to take leadership decisions related to applying discrete mathematics to optimizing algorithms
- 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
- Efficiently manage interdisciplinary issues that arise in connection to permutations and combinations in algorithm design
- Demonstrate self-direction in research and originality in solutions developed for solving problems related to discrete probability
About
This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn 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. We then go on to learn stylesheets based on CSS 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 CSS. 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 appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development
Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development
Teachers





Intended learning outcomes
- Develop a critical knowledge of Front end UI/UX development
- Critically evaluate diverse scholarly views on Front end UI/UX development
- Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
- Develop a specialised knowledge of key strategies related to Front end UI/UX development
- Critically assess the relevance of theories for business applications in the domain of technology
- Apply an in-depth domain-specific knowledge and understanding to technology
- 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
- Autonomously gather material and organise into a coherent problem sets or presentation
- 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
- Apply a professional and scholarly approach to research problems pertaining to 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
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
About
This course is tailored to provide a comprehensive exploration of UX Research Methods and Usability Testing. Throughout the program, participants will engage in a structured examination of diverse research methodologies applicable to the HCI field.
The curriculum commences with an in-depth overview of the research process, emphasizing literature review techniques essential for informed exploration within the domain of human-computer interaction and design. Students will acquire a theoretical foundation and practical proficiency in qualitative, survey, and experimental research methods.
A significant portion of the course is dedicated to a project-based approach, focusing on the formal evaluation of products. This involves a meticulous examination of usability testing, encompassing goal setting, user recruitment, task and environment design, and the comprehensive development and implementation of test plans. Prerequisites for this course include a foundational understanding of human-computer interaction principles, with an additional emphasis on fostering familiarity with research methodologies.
By the course's conclusion, students will not only possess theoretical insights into the research process but will also have acquired practical skills in conducting usability testing. This includes the ability to analyze, interpret, document, and present usability test results, culminating in the formulation of meaningful recommendations for user-centered design within the HCID landscape.
Key Intended Learning Outcomes:
Develop proficiency in various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, gaining an understanding of the research process and literature review.
Gain practical experience in studying existing research, designing, and conducting HCI studies, with a focus on usability testing. This includes goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
Effectively conduct formal evaluations of products, covering crucial aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations in the context of HCID.
Teachers
Intended learning outcomes
- Evaluate the research process, including literature review, hypothesis formulation, data collection, and analysis, to effectively design and conduct HCI studies and usability testing initiatives.
- Demonstrate a comprehensive understanding of various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, and the theoretical foundations underlying each method.
- Analyze existing research literature critically, identifying key findings, methodologies, and gaps in knowledge relevant to HCI research, and apply this understanding to inform research design and execution.
- Utilize software tools and platforms effectively to facilitate data collection, analysis, and visualization, enhancing efficiency and accuracy in research and usability testing activities.
- Develop practical expertise in designing and executing HCI studies and usability testing, including goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
- Employ appropriate data collection techniques, such as interviews, surveys, observations, and usability metrics, to gather insights into user behavior, preferences, and interactions with digital interfaces.
- Demonstrate proficiency in conducting formal evaluations of products and interfaces, covering all essential aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations.
- Collaborate with multidisciplinary teams to integrate research insights and usability testing outcomes into the design and development process, fostering a user-centered approach and improving the overall user experience of digital products and interfaces.
- Communicate research findings and usability testing results clearly and persuasively to diverse stakeholders, including designers, developers, and decision-makers, using appropriate visual aids, reports, and presentations in the context of Human-Computer Interaction and Design (HCID).
About
User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.
Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.
The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.
By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.
Teachers





Intended learning outcomes
- Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
- Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
- Gain a deep understanding of the design thinking process and its application in solving complex design problems
- Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
- Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
- Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
- Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
- Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
- Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
- Apply knowledge of information architecture principles to structure and organize digital content effectively
- Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
- Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
- Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
- Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
- Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
About
Initially, the course will cover the basics of cryptography, principles of access control, identity management, and assurance strategies as theyof apply to IT applications and Cloud infrastructure services. The course will then explore the utilization of cryptographic algorithms, mechanisms, and technologies for securing data during transmission, storage, and usage. It will also address key management operations, the implementation of Private Blockchain infrastructures, integration of Public-Key Infrastructures (PKI) and Certificate Authorities (CA), identity verification with digital signatures, hardware-assisted keystore/root of trust deployment, directory services creation, single sign-on authentication setup, access control policy enforcement for IT resources, cryptographic solutions for IoT hardware, audit trail monitoring and recording, and compliance with industry and regulatory requirements.
Furthermore, the course will discuss practical cryptography and identity management techniques, and how to implement Zero-Trust Architectures (ZTA) in Cloud and IoT infrastructures using standard services and protocols such as TLS, IPSec/IKE, PKCS#11, LDAP, OCSP, SAML, OAuth2, OpenID Connect (OIDC). It will also emphasize adhering to data protection and identity management guidelines outlined by NIST, ENISA, and the Cloud Security Alliance (CSA).
This course provides a ground-up coverage of the high-level concepts, applied mechanisms, architecture, design, and real-world implementation practices of using cryptography and identity management solutions as they apply to cloud-hosted applications, services, and IoT devices.
Teachers



Intended learning outcomes
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on quantum cryptography
- Develop a comprehensive understanding of the legal and ethical dimensions of securing data in different contexts
- Assess, analyze, and critique the fundamental principles and strategies related to cryptography, access control, and identity management in IT and Cloud environments
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Compare and evaluate the effectiveness of cryptographic algorithms and mechanisms for securing data in different contexts, and understand their real-world applications
- Propose appropriate solutions to complex and changing problems pertaining to privacy and cryptography
- 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 management techniques related to cryptography
- Efficiently manage interdisciplinary issues that arise in connection to cryptography
- Apply a professional and scholarly approach to research problems pertaining to cryptography
- Act autonomously in identifying research problems and solutions related to cryptography
- Propose practical solutions to challenges such as cryptographic key management, Private Blockchain deployment, identity verification, and access control policy enforcement in IT and IoT settings, while aligning with industry standards and compliance guidelines
- Create synthetic contextualised discussions of key issues related to cryptography
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to cryptography
- Solve problems and be prepared to take leadership decisions related to cryptography
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 as how programs interact with these. Students begin with mapping data storage problems 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 synchronization 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for evaluating the design and use of relational databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle process prioritization in an operating system
Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development for specific operating systems and network environments
Teachers





Intended learning outcomes
- 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
- Develop a specialised knowledge of optimising relational database performance in low-latency environments
- Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols
- Critically assess the relevance of theories of database design for business applications in the domain of software engineering
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints
- Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering
- Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems
- Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments
- Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks
- Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks
- Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems
- Act autonomously in identifying research problems and solutions related to the real-world application of relational databases
About
A business case study is a course designed for the learner to identify a business real world problem and its objective is to help students rigorously solve a real-world, technically-challenging business problem where they would apply all of the concepts, techniques and tools learnt in the program. Students typically pick a problem from a known business problem or identify business cases where data analytics can be used to solve a problem. The choosing of a topic can be done after discussing it with the course instructor(s). Students also have an option of choosing a business problem in their professional organization but the external supervisors should be approved by the instructor(s). Students start by identifying a business problem and proposing a methodology to solve the said business problem. Students then decide what technical and business tools will be used for the solution methodology. Students will first work on the real-world data, clean and process it using techniques learnt in this program. Students then will use algorithms and approach with a coding language and tool they think will get the best results. At the end of the case study student should be able to present the business problem and solution either via Jupyter notebooks or via a blog.
Teachers
Intended learning outcomes
- Develop a critical understanding of project management best practices
- Acquire knowledge of various methods for deploying designs into production and making solutions available to end users
- Critically assess the relevance of theories of project management in the realm of software engineering
- Critically evaluate diverse scholarly views on assessing alternative designs and tools for specific problems
- Develop a specialised knowledge of strategies for testing components and an overall system for errors
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Apply a professional and scholarly approach to research problems pertaining to optimising against real world constraints, including cost, time, storage, etc.
- Efficiently manage interdisciplinary issues that arise in connection to designing a robust and reliable system architecture
- Act autonomously in identifying research problems and solutions related to deploying a proposed solution to a practical business problem
- Demonstrate self-direction in research and originality in solutions developed to solve real-world business problems
- Solve problems and be prepared to take leadership decisions related to developing a high-level design that solves a real-world business problem
- Create synthetic contextualised discussions of key issues related to a real-world business problem and its possible solutions
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
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




Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a specialised knowledge of key strategies related to design patterns
- Develop a critical knowledge of design patterns
- Acquire knowledge of the pros and cons of popular UML design patterns
- Critically evaluate diverse scholarly views on design patterns
- Creatively utilize design patterns tools to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to object-oriented design patterns
- Efficiently manage interdisciplinary issues that arise in connection to design patterns
- Apply a professional and scholarly approach to research problems pertaining to design patterns
- Act autonomously in identifying research problems and solutions related to design patterns
- Demonstrate self-direction in research and originality in solutions developed for design patterns
- Create synthetic contextualised discussions of key issues related to design patterns
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design patterns
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development
Propose appropriate solutions to complex and changing problems pertaining to Back End Development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Back End Development
- Critically evaluate diverse scholarly views on Back End Development
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of 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
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
About
The Foundations of Cyber Security course is designed to provide students, both technical and non-technical, with a comprehensive introduction to the field of cybersecurity. In an increasingly digital world, the importance of securing data, systems, and networks is paramount. This course equips students with the knowledge and skills to protect their own information and recognize the importance of cybersecurity in professional settings. Cybersecurity is presented not as an absolute concept, but as a dynamic field with ever-evolving threats and countermeasures, where decisions involve trade-offs between security and usability. Real-world case studies and examples are used to illustrate the practical applications of cybersecurity principles.
Teachers




Intended learning outcomes
- Critically evaluate diverse scholarly views on security risk analysis and management
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of the legal and ethical dimensions of cybersecurity, including knowledge of cyber law, the implications of cybercrime and cyberwarfare, and an awareness of international legal frameworks
- Develop practical skills to secure personal accounts and data.
- Develop expertise in system and software security, including securing operating systems, software patches, practicing secure coding, and conducting vulnerability scanning
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to network and cloud security
- Apply an in-depth domain-specific knowledge and understanding of the importance of the legal and ethical aspects of cybersecurity
- Propose appropriate solutions to complex and changing problems pertaining to system and software security
- 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
- Efficiently manage interdisciplinary issues that arise in connection to cybersecurity
- Apply a professional and scholarly approach to research problems pertaining to cybersecurity
- Act autonomously in identifying research problems and solutions related to system and software security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network and cloud security
- Solve problems and be prepared to take leadership decisions related to the implementation of secure account and data management
- Create synthetic contextualised discussions of key issues related to cybersecurity
About
This course provides students with hands-on experience on deploying high velocity applications and services reliably on complex and distributed infrastructure. DevOps as a philosophy is a key driver of the modern software life cycle which prefers rapid and reliable delivery of functionality and features via code. We start with a solid introduction to Linux scripting and networking. Then, we learn popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes). All of this would be introduced with real world examples from the industry. We also focus on Continuous Integration and Continuous Delivery (CI/CD) methodology and how it can be achieved using popular toolchains like Jenkins. We dive into how automated testing of software can be achieved using libraries like Selenium. This shall be followed by more advanced techniques like serverless-compute, Platform as a service model and Cloud-DevOps. Students would learn to monitor and log key data points to ensure they maintain a healthy system and adapt it as needed. Infrastructure-as-code is a key component of modern DevOps especially on cloud and containerized applications which would also be covered with real-world examples.
Teachers



Intended learning outcomes
- Develop a critical knowledge of DevOps
- Develop a specialised knowledge of key strategies related to DevOps
- Critically assess the relevance of theories for business applications in the domain of technology
- 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)
- Apply an in-depth domain-specific knowledge and understanding to DevOps solutions.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply DevOps tools to develop critical and original solutions for computational problems.
- Autonomously gather material and organise it into coherent problem sets or presentations
- Create synthetic contextualised discussions of key issues related to DevOps
- 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
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
The course is designed to provide students with a profound understanding of identity and access management (IAM) and its vital role in safeguarding information systems. It also equips students with practical skills for managing both physical and logical access to critical assets. IAM is an essential component of modern organizations' security and access management strategies, and this course empowers students with the knowledge and abilities needed to excel in this domain.
The course begins by exploring the management of physical and logical access to assets. Students will delve into the fundamental concepts of access control, its significance, and the differentiation between physical and logical access control mechanisms.
As the course progresses, students will acquire in-depth knowledge of identity and authentication management. This encompasses the implementation of identity management (IdM) systems, multi-factor authentication (MFA), and session management. They will also understand the processes of registration and identity establishment, including user registration and identity verification. The course further delves into federated identity management, addressing its implementation in cloud, on-premises, and hybrid environments.
Additionally, students will learn about identity data management, emphasizing systems for managing identity data and the principles of identity data management. The management of single sign-on (SSO) and just-in-time (JIT) authentication will be covered as well. The course goes on to elucidate the mechanisms of authorization management. This includes the implementation of access control models, such as Role-Based Access Control (RBAC), Rule-Based Access Control, Mandatory Access Control (MAC), and others. Furthermore, students will gain insights into risk-oriented access control implementation.
Finally, the course delves into the identity and access lifecycle management. This involves access review processes, the analysis of access to accounts (user, system, and service), the provisioning and
de-provisioning of access rights, role definition, and the minimization of privilege escalation.
In conclusion, students will learn about authentication systems, including OpenID Connect (OIDC)/Open Authorization (OAuth), Security Assertion Markup Language (SAML), Kerberos, RADIUS/TACACS+, and their practical implementation. These authentication systems play a crucial role in establishing secure access control in modern information systems.
Teachers




Intended learning outcomes
- Develop expertise in addressing security challenges related to authentication systems
- Develop a comprehensive understanding of the implementation of access control models
- Critically evaluate diverse scholarly views on identity and access management
- Develop practical skills related to identity and access management in cybersecurity
- Apply an in-depth domain-specific knowledge and understanding of identity data management
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Implement authentication systems and understand their practical application in securing access control
- Implement identity management, multi-factor authentication (MFA), and session management
- Autonomously gather material and organize it into a coherent presentation or essay
- Analyze and manage access to accounts, including provisioning, de-provisioning, role definition, and privilege escalation minimization
- Create synthetic contextualised discussions of key issues related to identity and access management
- Solve problems and be prepared to take leadership decisions related to the implementation of security and access management strategies
- Efficiently manage interdisciplinary issues that arise in connection to identity and access management
- Apply a professional and scholarly approach to research problems pertaining to access control
- Act autonomously in identifying research problems and solutions related to identity and access lifecycle management
- Demonstrate a deep understanding of identity and access management (IAM) principles and their application in securing information systems
About
This course is designed to equip IT professionals with the soft skills and career strategies required for success in the technology industry. The course is project-based and covers a range of topics such as communication skills, teamwork, time management, leadership, networking, and career development.
The course covers the entire lifecycle of a technology project, from requirement gathering to delivery and maintenance. Students will learn how to communicate effectively with stakeholders, manage their time efficiently, lead a team, and collaborate effectively in a team environment.
The course also covers aspects of career development, such as networking and building professional relationships, creating a personal brand, and developing a career plan. Students will learn how to identify their strengths and weaknesses, and how to leverage their skills and experience to advance their careers in the technology industry.
Key Intended Learning Outcomes:
Develop and demonstrate effective communication skills.
Collaborate effectively in a team environment.
Develop and demonstrate leadership skills.
Build and maintain professional relationships.
Develop and execute a career plan.
Teachers





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



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
- Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
- Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
- Critically evaluate diverse scholarly views on Productionization of Machine Learning
- Develop a critical knowledge of Productionization of Machine Learning Systems
- Creatively apply ML systems 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 it into coherent problem sets or presentation
- Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
- Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
- Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
- Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
- Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
About
Thе course offers an extensive exploration of graphic design principles. Students will delve into the application of graphic design in the context of designing interactive and user-centric interfaces. The course integrates both theoretical concepts and practical skills, emphasizing the creation of visually compelling and effective designs for enhanced user experiences.
Participants will acquire a comprehensive understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, with a focus on their application in the context of Human-Computer Interaction. Through project-based learning, students will have the opportunity to work on practical design projects that simulate real-world scenarios, honing their graphic design skills for HCI. This approach ensures the direct application of learned concepts and techniques.
The course will emphasize the integration of graphic design into the broader context of usability and user-centric design. Students will learn how to align visual aesthetics with user needs, creating interfaces that are both visually appealing and functionally effective.
Students will develop the ability to effectively present and communicate their designs, understanding the importance of conveying design concepts to stakeholders and collaborators within the context of Human-Computer Interaction and Design.
By the conclusion of this course, students will have not only mastered the principles of graphic design but will also possess the expertise to seamlessly integrate these elements into user-centric interfaces, aligning with the principles of Human-Computer Interaction and Design.
Key Intended Learning Outcomes:
Achieve proficiency in fundamental graphic design principles, mastering composition, lighting, texture, and spatial awareness.
Learn to apply graphic design techniques specifically within the context of Human-Computer Interaction, enhancing user engagement and interface usability.
Develop the skills to present and communicate their designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers


Intended learning outcomes
- Identify and analyze the role of graphic design within the context of Human-Computer Interaction (HCI), recognizing its impact on enhancing user engagement and interface usability.
- Critically evaluate contemporary trends, techniques, and tools in graphic design, and assess their relevance and applicability in designing interactive interfaces for digital platforms.
- Demonstrate a deep understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, and their application in creating visually compelling designs.
- Apply advanced graphic design techniques effectively to create aesthetically pleasing and functional designs tailored for digital interfaces, considering factors such as user experience, accessibility, and usability.
- Develop proficiency in translating conceptual ideas into tangible visual representations for user interface design.
- Utilize industry-standard software and tools proficiently to execute graphic design projects, demonstrating mastery in digital image editing, typography, color theory, and layout design.
- Present and communicate graphic design concepts and solutions effectively, employing visual aids, storytelling techniques, and persuasive arguments to convey ideas and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including developers, UX/UI designers, and stakeholders, to integrate graphic design elements harmoniously into the overall design strategy, ensuring consistency and coherence across digital interfaces.
- Demonstrate the ability to integrate graphic design principles seamlessly into the HCI design process, fostering user engagement and enhancing the overall user experience of interactive systems.
About
This course is designed to provide students with a comprehensive understanding of asset management principles and data security strategies, preparing them to effectively identify, classify, and manage critical assets and sensitive information within the cybersecurity landscape.
The course commences with an exploration of the foundational aspects of asset management. Students will gain insight into the pivotal role of assets in the realm of cybersecurity, as they form the building blocks upon which robust security strategies are constructed. Understanding the lifecycle of assets, whether tangible or intangible, becomes a key focus, emphasizing the need for meticulous control and responsible ownership. Simultaneously, the course delves into the realm of data security.
The significance of safeguarding data cannot be overstated, as data is often an organization's most valuable asset. Students will grasp the core principles of data security, equipping them with the knowledge required to ensure the confidentiality, integrity, and availability of data. Emphasis will be placed on mitigating risks and protecting data from breaches, ensuring compliance with industry standards and regulations.
As the course progresses, students will delve into the identification and classification of information and assets. They will learn the intricacies of data classification, including the methods for labeling and categorizing data based on its sensitivity.
Additionally, they will explore techniques for the identification of assets, a crucial aspect of effective asset management, ensuring that organizations are fully aware of their resource landscape. Furthermore, the course covers the establishment of requirements for managing assets and information. Students will learn how to define the specific needs and prerequisites for asset management, which are essential for developing effective policies and procedures. These policies and procedures are the cornerstone of organized asset management and data security.
A critical aspect of the course is the exploration of data lifecycle management. Students will gain an understanding of the roles and responsibilities of data stakeholders, including owners, controllers, keepers, processors, and users. They will also be exposed to the full lifecycle of data, including its collection, storage, maintenance, retention, and secure disposal, ensuring that data is adequately protected throughout its existence.
By the end of the course, students will be well-equipped to tackle the challenges of asset management and data security in the complex landscape of modern cybersecurity. They will have the knowledge and practical skills needed to identify, classify, and manage assets and information effectively, ultimately contributing to the enhancement of an organization's security posture.
Teachers




Intended learning outcomes
- Understand the roles of data stakeholders and the entire lifecycle of data, from collection to disposal
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on asset management and data security
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of fundamental concepts of asset management and its significance in the realm of cybersecurity
- Compare and evaluate the different methods and procedures for the identification and classification of data and assets, including the determination of confidentiality levels
- Propose appropriate solutions to complex and changing problems pertaining to asset management and data security
- 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 of the importance of the legal and ethical aspects of asset management
- Solve problems and be prepared to take leadership decisions related to asset management and data security
- Apply a professional and scholarly approach to research problems pertaining to asset management and data security
- Define and establish requirements for asset management, and develop policies and procedures to ensure effective management
- Create synthetic contextualised discussions of key issues related to asset management and data security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to asset management and data security
- Act autonomously in identifying research problems and solutions related to asset management and data security
- Efficiently manage interdisciplinary issues that arise in connection to asset management and data security
About
This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.
The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.
The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.
Key Intended Learning Outcomes:
Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization
Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code
Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques
Develop asynchronous functions and handle errors effectively for CRUD operations
Teachers





Intended learning outcomes
- Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
- Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
- Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
- Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
- Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
- Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
- Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
- Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
- Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
- Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
- Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
- Apply strategies to optimise the performance of JavaScript code and web applications.
- Develop asynchronous functions and handle errors effectively for CRUD operations.
- Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
- Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
Teachers




Intended learning outcomes
- Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem
- Develop a critical understanding of data engineering
- Critically evaluate diverse scholarly views on best practices in developing data-intensive applications
- Critically assess the relevance of theories of data modeling for efficient pipeline creation
- Acquire knowledge of various methods for warehousing data
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
- 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.
- Demonstrate self-direction in research and originality in creating advanced SQL queries.
About
This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.
Teachers




Intended learning outcomes
- Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet
- Critically evaluate diverse scholarly views on Deep Learning for Computer Vision
- Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for Computer Vision
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques
- Autonomously gather material and organise it into coherent problem sets or presentation
- Creatively apply computer vision techniques to develop critical and original solutions for computational problems
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision
- Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision
- 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
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 one of the most popular and advanced frameworks/libraries in use – React.js. 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications
Propose appropriate solutions to complex and changing problems pertaining to front end development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to front end development
- Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
- Critically evaluate diverse scholarly views on front end development
- Develop a critical knowledge of front end developmen
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Apply an in-depth domain-specific knowledge and understanding to front end development solutions
- 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
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
- Act autonomously in identifying research problems and solutions related to front end development
About
This course explores the interdisciplinary field of Physical User Interface (PUI) design within the context of Human-Computer Interaction and Design. PUIs involve the interaction between users and digital systems through tangible, physical objects, presenting new challenges and opportunities for designers. As intelligent production environments evolve, the course addresses the question of whether existing design methods and tools are adequate or if more sophisticated approaches are required.
The curriculum initiates with a discussion on the necessity for advanced physical user interfaces with enhanced capabilities, establishing functional and non-functional requirements for an efficient design method.
The course introduces a model-based design approach, incorporating a comprehensive context model and modeling tools tailored for intelligent production environments. Through case studies and practical applications, students gain insights into the feasibility and effectiveness of the proposed design method. The course concludes with a critical examination of key characteristics, identifying areas for potential future improvements.
Key Intended Learning Outcomes:
Achieve proficiency in foundational principles of PUI design, encompassing tangible interaction, usability, and integration with intelligent production environments.
Apply design techniques specific to Physical User Interfaces within the broader context of Human-Computer Interaction, aiming to enhance user engagement and optimize interface usability.
Develop skills to present and articulate PUI designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers
Intended learning outcomes
- Analyze and evaluate the relationship between Physical User Interfaces and broader Human-Computer Interaction (HCI) principles, recognizing the unique challenges and opportunities presented by tangible interfaces in enhancing user engagement and optimizing interface usability.
- Critically assess emerging trends and technologies in PUI design and their implications for designing interactive systems in intelligent production environments.
- Demonstrate a deep understanding of the foundational principles of Physical User Interface (PUI) design, including tangible interaction, usability, and integration with intelligent production environments.
- Demonstrate proficiency in usability testing methodologies adapted for Physical User Interfaces to identify usability issues and iteratively improve design solutions.
- Utilize prototyping tools and methods proficiently to develop and iterate Physical User Interface designs, translating conceptual ideas into tangible, functional prototypes for user testing and evaluation.
- Apply advanced design techniques specific to Physical User Interfaces effectively to create intuitive and engaging user experiences.
- Design and implement Physical User Interfaces that seamlessly integrate with intelligent production environments.
- Present and articulate PUI designs effectively, employing storytelling techniques, visual aids, and persuasive arguments to convey design concepts and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including engineers, industrial designers, and domain experts, to integrate Physical User Interfaces into the overall product or system design, ensuring coherence and alignment with user needs and production requirements.
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of numerical programming in Python
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle numerical programming in Python
Propose appropriate solutions to complex and changing problems pertaining to numerical programming in Python
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Numerical programming in Python
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Numerical programming in Python
- Critically evaluate diverse scholarly views on Numerical programming in Python
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python
- Autonomously gather material and organize it into a coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create new solutions that are critical to solving computational problems through creatively applying code writing
- Act autonomously in identifying research problems and solutions 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
- 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
- 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
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers


Intended learning outcomes
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- 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.
- 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
- Act autonomously in identifying research problems and solutions related to product analytics
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
About
The course equips students with a deep understanding of network security and communication protocols. This course goes beyond the surface and provides practical skills for assessing and implementing secure network architecture designs. It's designed to instill essential knowledge and skills required to navigate the intricacies of network security and communication protocols, making it a critical component of contemporary cybersecurity education.
The course begins by establishing the fundamentals of secure network design. Students will explore the OSI and TCP/IP models, delving into the principles and architecture of TCP/IP and examining the pivotal role of security at different layers of these models.
Moreover, students will be introduced to secure network protocols, focusing on the principles and practical implementation of secure protocols, including IPSec, IPv4, and IPv6. As the course progresses, students will delve into the security intricacies embedded within multilayered protocols. They'll learn about the importance of multilayered protocols and gain the knowledge needed to address challenges presented by these protocols. The course also covers micro-segmentation in networks, including virtual and software-defined networks (SDN) and VXLAN, demonstrating how segmentation enhances security.
Additionally, students will explore the security aspects of wireless and mobile networks, such as Wi-Fi, Li-Fi, Zigbee, and satellite networks, along with the security of cellular networks (4G and 5G). The role of security in content distribution networks (CDN) will also be emphasized. Furthermore, the course delves into the realm of secure network components. Students will discover how to safeguard network hardware components, including power redundancy and warranties. Network access control (NAC) tools are introduced, providing insights into their implementation and their role in network access security. Endpoint security measures will be explored to protect devices and software, ensuring a secure connection to the network.
The course concludes by addressing the implementation of secure communication channels. It covers secure voice communication and multimedia interaction, focusing on the security of voice communication and secure multimedia communication principles and methods. Remote access and data transmission security are also explored, including the protection of remote network access and secure data transmission. Virtualized networks and security in virtualized networks and cloud environments are discussed, along with securing network connections with external parties and domains.
By the end of this course, students will possess a comprehensive understanding of network security and communication protocols, along with the practical skills needed to assess and implement secure network designs across various domains.
Teachers


Intended learning outcomes
- Develop a comprehensive understanding of the legal and ethical dimensions of network security and communication protocols
- Develop practical skills related to network security and communication protocols
- Critically evaluate diverse scholarly views on network security and communication protocols
- Develop expertise in addressing security challenges presented by multilayered protocols and micro-segmentation, ensuring robust network security
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to safeguard network hardware components, implement network access control (NAC), and enhance endpoint security for secure network access
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding of network security principles and their application in diverse network environments
- Compare and evaluate the different methodologies recommended to select and implement secure network protocols, including IPSec, IPv4, and IPv6, to enhance network security
- Create synthetic contextualised discussions of key issues related to network security and communication protocols
- Efficiently manage interdisciplinary issues that arise in connection to network security and communication protocols
- Demonstrate the ability to establish secure voice communication, multimedia interaction, and secure data transmission in various network contexts
- Act autonomously in identifying research problems and solutions related to network security and communication protocols
- Apply a professional and scholarly approach to research problems pertaining to network security and communication protocols
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network security and communication protocols
- Solve problems and be prepared to take leadership decisions related to the implementation of network security and communication protocols
About
The course is designed to equip students with the knowledge and practical skills required to assess, test, and audit security measures in information systems. It provides a comprehensive understanding of the strategies and methodologies employed to evaluate the security of systems, identify vulnerabilities, and recommend security improvements. In an ever-evolving threat landscape, the ability to conduct effective security assessments and tests is vital in ensuring the confidentiality, integrity, and availability of critical data and systems.
The course begins with knowledge and skills, where students learn to design and validate assessment, testing, and audit strategies. This part of the course covers the development of strategies for internal, external, and third-party assessments, emphasizing planning and strategy validation.
The next part of the course focuses on conducting security control testing. It delves into vulnerability assessment methods, tools, and vulnerability analysis with recommendations for mitigation. Students also acquire the knowledge and skills to prepare for and execute penetration tests, analyze results, and formulate recommendations. Additionally, this part covers event log review for anomaly detection and synthetic transaction creation and analysis.
It also discusses code review and vulnerability testing, along with secure development practices. This part of studies concludes with the examination of abuse case testing, testing coverage assessment, and security interface and integration point evaluations. Students will also learn the collection of data on security processes, including account management, key performance indicators, and risks. Students learn how to gather and analyze data to assess security processes effectively.
In the next part of the course, students become adept at analyzing test results and creating reports. They learn to analyze test findings and recommendations, compile detailed test and assessment reports, handle exceptions and incidents, and adhere to ethical vulnerability disclosure principles.
The course culminates in exploring the execution and organization of security audits. Students learn to prepare for and conduct internal and external security audits, as well as audits of third-party providers.
By the end of the course, students will possess the knowledge and skills to assess, test, and audit the security of information systems effectively.
Teachers
Intended learning outcomes
- Develop practical skills related to conducting security control testing
- Critically evaluate diverse scholarly views on security assessment and testing
- Develop expertise in conducting effective security assessments and tests
- Develop a comprehensive understanding of the processes and requirements for performing security audits effectively
- Analyze test findings and recommendations, generating comprehensive test and assessment reports, handling exceptions and incidents, and adhering to ethical vulnerability disclosure principles
- Perform vulnerability assessments, penetration tests, event log reviews, synthetic transaction creation and analysis, code reviews, and abuse case testing
- Apply an in-depth domain-specific knowledge and understanding of identifying vulnerabilities and recommending security improvements
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organize it into a coherent presentation or essay
- Solve problems and be prepared to take leadership decisions related to the implementation of log reviews for anomaly detection
- Apply a professional and scholarly approach to research problems pertaining to security testing
- Design and validate strategies for internal, external, and third-party security assessments, encompassing planning and strategy validation
- Act autonomously in identifying research problems and solutions related to vulnerability testing
- Efficiently manage interdisciplinary issues that arise in connection to external and internal security audits
- Analyze data on security processes, including account management, key performance indicators, and risks, to effectively assess security processes
- Create synthetic contextualised discussions of key issues related to auditing security measures
About
This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.
Teachers





Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- Develop a specialised knowledge of key strategies related to cloud computing
- Develop a critical knowledge of cloud computing
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on cloud computing
- Creatively apply cloud computing 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 cloud computing services
- Autonomously gather material and organise it into coherent problems sets or presentations
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues 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
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
About
Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.
Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.
Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.
In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.
Teachers





Intended learning outcomes
- Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
- Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
- Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
- Gain knowledge of security and performance considerations specific to mobile app development
- Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
- Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
- Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
- Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
- Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
- Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
- Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
- Gain proficiency in integrating mobile apps with backend services and API
- Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
- Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
- Apply the principles of cross-platform mobile app design and development with frameworks like React Native
About
This course is designed to provide a comprehensive understanding of Quality Assurance (QA) in software development. The course will cover the fundamental principles of testing and the different types of testing that are conducted at various levels of the software development life cycle. Students will also learn about the different testing techniques used in QA, such as black box, white box, and experience-based testing.
The course will also introduce students to various testing tools and methodologies that are commonly used in industry, including test management tools, SQL databases, Postman, and mobile testing. Students will learn about web technologies and the client-server architecture, as well as front-end and back-end development. The course will cover the basics of HTML/CSS, modern application architecture, and working with command-line tools like CI/CD and Git.
Throughout the course, students will develop a solid understanding of QA and its role in software development. They will learn how to develop test documentation and will gain practical experience in implementing various testing strategies. They will also learn how to analyze and critique different QA methodologies and propose appropriate solutions to complex and changing problems in the context of data structures. Students will be able to apply their understanding of web technologies and modern application architecture to design and test web applications, and will be well-equipped to pursue careers in software development or QA.
Teachers





Intended learning outcomes
- Develop knowledge of test design and execution techniques, including test case design, test script development, and test execution planning.
- Develop a comprehensive knowledge and understanding of software testing concepts, techniques, and methodologies, including for example functional testing, performance testing, security testing, and usability testing
- Learn how to interpret and present quality data effectively through reports, dashboards, and visualizations
- Acquire in-depth knowledge of software quality assurance principles, best practices, and industry standards
- Assess how to measure and evaluate software quality using relevant metrics, such as defect density, test coverage, and code complexity
- Acquire knowledge of test management tools, test automation frameworks, bug tracking systems, and performance testing tools
- Apply various testing techniques, such as black-box testing, white-box testing, and regression testing, to verify software functionality, performance, and security.
- Apply knowledge of troubleshooting and debugging techniques to identify the root causes of software defects.
- Develop the ability to select and configure appropriate test automation frameworks and tools, design and implement automated test scripts, and execute automated test suites to increase testing efficiency and coverage.
- Analyze and interpret test results and reports to identify software defects, inconsistencies, and areas for improvement
- Demonstrate the ability to adapt QA processes to iterative development cycles, collaborate with cross-functional teams, participate in sprint planning, and ensure quality throughout continuous integration and continuous delivery (CI/CD) pipelines
- Apply understanding of web technologies and modern application architecture to design and test web applications
- Develop and implement effective test documentation for software development project
- Acquire proficiency in using defect tracking tools, categorizing defects, and collaborating with development teams for timely resolution.
- Comprehend the role of QA in iterative development cycles, continuous integration, and continuous delivery
- Gain proficiency in applying industry best practices and standards to ensure the quality, reliability, and effectiveness of software applications
- Acquire proficiency in collaborating with cross-functional teams, participating in sprint planning, and ensuring quality throughout rapid release cycles
- Develop skills in selecting, implementing, and maintaining appropriate test automation frameworks and tools
- Utilize various testing tools and technologies to design, implement, and manage QA processes
About
In the ever-evolving landscape of cybersecurity, managing risks and ensuring organizational resilience is of paramount importance. The "Cyber Risk and Resilience Management" course is designed to equip students with the skills and knowledge necessary for effective security and risk management in the field of information security. This course delves into the core principles and concepts of security and risk management, ensuring that students are well-prepared to address contemporary cyber threats and challenges.
The course begins with an introduction to the fundamental principles and concepts of security and risk management. It emphasizes the significance of professional ethics and codes of conduct in the field of information security. Students will explore key security concepts, including confidentiality, integrity, availability, authenticity, and non-repudiation, and learn how to apply these concepts to various scenarios and contexts.
As the course progresses, students will delve into topics such as aligning security functions with business strategy, roles and responsibilities within organizations, security management frameworks, and the importance of due care and diligence. Additionally, students will gain insights into compliance requirements, contractual, legal, industry standards, and regulatory requirements, with a particular focus on data confidentiality and protection.
This course will also cover legal and regulatory issues in cybersecurity, including cybercrimes, data breaches, licensing, intellectual property requirements, cross-border data transfer, and privacy considerations. Students will explore various types of investigations, including administrative, criminal, civil, regulatory, and industry-specific investigations.
Throughout the course, students will learn how to develop, document, and implement security policies, standards, procedures, and guidelines. They will gain an understanding of business continuity requirements, including Business Impact Analysis (BIA), and learn to develop and document business continuity plans.
Moreover, the course will provide students with the knowledge and skills to identify threats and vulnerabilities, assess and analyze risks, and respond effectively to mitigate risks. It also covers the concept of risk management by supply chain, focusing on risks associated with hardware, software, and services.
Additionally, students will explore the creation and maintenance of security awareness, education, and training programs, including methods for program delivery, content analysis, and program effectiveness assessment.
By the end of this course, students will have a solid foundation in cybersecurity risk management and resilience, enabling them to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity.
Teachers


Intended learning outcomes
- Critically evaluate diverse scholarly views on risk and resilience management
- Assess, analyze, and critique methods of security awareness, education, and training programs
- Gain proficiency in legal and regulatory aspects of cybersecurity and be able to navigate the complex landscape of cybersecurity regulations and compliance requirements
- Develop practical skills related to confidentiality, integrity, availability, authenticity, and non-repudiation
- Analyze program content, delivery methods, and assess program effectiveness, promote a culture of cybersecurity awareness and vigilance within an organization
- Apply risk management strategies to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity
- 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
- Be able to create, document, and implement security policies, standards, procedures, and guidelines, and contribute to the development of a resilient business continuity strategy within an organization
- Act autonomously in identifying research problems and solutions related to cyber risk management
- Solve problems and be prepared to take leadership decisions related to cyber risk management
- Create synthetic contextualised discussions of key issues related to cyber risk management
- Apply a professional and scholarly approach to research problems pertaining to cyber risk management
- Efficiently manage interdisciplinary issues that arise in connection to cyber risk management
- Demonstrate a deep understanding of the principles and concepts related to cyber risk management
About
This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.
While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.
The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.
Teachers
Intended learning outcomes
- Critically evaluate diverse scholarly views on functions and algorithms
- Critically assess the relevance of theories of data storage for programming
- Develop a specialised knowledge of the various uses and forms of lists in programming, including 2D lists.
- Develop a critical understanding of product design and development
- Acquire knowledge of various methods for storing data in modern programming languages
- Solve problems and be prepared to take leadership decisions related to programming concepts such as lists, sets, tuples, dictionaries, and strings.
- Creatively apply various visual, written, and code-based methods for manipulating tuples, strings, lists, and similar structures
- 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 of computer programming and data management
- Apply a professional and scholarly approach to research problems pertaining to functions and data types.
- Act autonomously in identifying research problems and solutions related to data storage.
- Demonstrate self-direction in research and originality in handling data in lists.
- Create synthetic contextualised discussions of key issues related to data storage and how popular programming languages handle this.
- Efficiently manage interdisciplinary issues that arise in connection to choosing the best data type for a particular programming need.
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
Teachers





Intended learning outcomes
- Develop a critical understanding 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 evaluate diverse scholarly views on advanced visualisation strategies
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- 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
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
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 Fetch 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript
Propose appropriate solutions to complex and changing problems pertaining to JavaScript
Teachers





Intended learning outcomes
- Develop a critical knowledge of JavaScript
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant
- Critically evaluate diverse scholarly views on JavaScript
- Develop a specialised knowledge of key strategies related to JavaScript
- Autonomously gather material and organise into a coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to JavaScript tools
- Creatively apply JavaScript concepts to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript
- Create synthetic contextualised discussions of key issues related to JavaScript
- Apply a professional and scholarly approach to research problems pertaining to JavaScript
- Efficiently manage interdisciplinary issues that arise in connection to JavaScript
- Demonstrate self-direction in research and originality in solutions developed for JavaScript
- Act autonomously in identifying research problems and solutions related to JavaScript
About
This course is aimed at equipping students with skills to architect the high level design (a.k.a. system design) of software and data systems. We start with some of the good to have properties of large complex software systems like scalability, reliability, availability, consistency etc. The module teaches various patterns and design choices we have to satisfy each of these good to have properties. We then go on to understand key components of system design like load-balancers, microservices, reverse-proxies, content-delivery networks etc. Students learn how each of them work internally along with real world implementations of each. We study various NoSQL data stores, their internal architectures and where to use which one with real-world examples. Students also learn popular data encoding schemes like XML and JSON. We learn how to build data pipelines using batch and stream processing systems. We also work on multiple real world cases on architecting on the cloud using popular open-source libraries and tools. Students will study design documents and high-level-design of popular internet applications and services like video-conferencing, recommender-systems, peer-to-peer chat, voice-assistants etc.
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to System Design
- Critically evaluate diverse scholarly views on System Design
- Develop a critical knowledge of 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to System Design solutions
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply system design components to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of System Design
- Apply a professional and scholarly approach to research problems pertaining to System Design
- Act autonomously in identifying research problems and solutions related to System Design
- Efficiently manage interdisciplinary issues that arise in connection to System Design
- Create synthetic contextualised discussions of key issues related to System Design
- Demonstrate self-direction in research and originality in solutions developed for System Design
About
The subject is designed to provide students with a profound understanding of the architectural and engineering aspects of security. This subject focuses on the principles of secure design and the selection of control measures based on system requirements, preparing students to excel in the field of cybersecurity.
The subject delves deep into the core principles of secure design, threat modelling, and vulnerability management. It emphasizes the significance of designing systems that are resilient to threats and vulnerabilities. Through practical exercises and real-world case studies, students will gain insights into modelling threats and vulnerabilities and applying security design principles, including the principle of least privilege, defence in depth, and secure defaults.
Furthermore, the subject explores security models and their significance in the context of cybersecurity. Students will become familiar with various security models, including the Bell-LaPadula model, the Biba model, and the Star Model, and learn how to apply these models to the design and implementation of secure systems. This module enables students to appreciate the role of security models in achieving comprehensive cybersecurity. A critical aspect of the subject is the selection of control measures to mitigate threats and vulnerabilities effectively. Students will gain expertise in analyzing system security requirements, mapping them to suitable control measures, and ensuring that systems align with industry standards and regulatory compliance.
The subject also addresses the critical aspects of vulnerability assessment and remediation. Students will explore various methods and tools for assessing vulnerabilities, identifying and classifying them, and implementing measures to remediate vulnerabilities in different types of systems.
Furthermore, the subject examines security in a wide array of systems, including client systems, server systems, databases, cryptographic systems, industrial control systems (ICS), cloud systems (SaaS, IaaS, PaaS), distributed systems, Internet of Things (IoT), microservices, containerization, serverless computing, embedded systems, high-performance computing (HPC), edge computing, virtualized systems, and more. Students will gain a comprehensive understanding of security considerations and best practices in each of these system types.
By the conclusion of this subject, students will have acquired an advanced skill set and knowledge base in the domain of security architecture and engineering, enabling them to design secure systems, select appropriate control measures, and manage vulnerabilities effectively in diverse system environments.
Teachers


Intended learning outcomes
- Understand security considerations and best practices across a wide range of system types.
- Application of security models to design and implement secure systems
- Deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Mastery of skills in vulnerability assessment, identification and classification, and implementation of effective remediation measures in various types of systems.
- Experience in analyzing system security requirements and selecting appropriate controls to minimize threats and vulnerabilities.
- Apply security models to design and implement secure systems.
- Demonstrate a deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Gain expertise in analyzing system security requirements and selecting appropriate control measures to mitigate threats and vulnerabilities.
- Be well-versed in security considerations and best practices in a wide range of system types.
- Possess the skills to assess vulnerabilities, identify and classify them, and implement effective remediation measures in different types of systems.
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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
About
The course is designed to provide students with a comprehensive understanding of fundamental security operations and effective incident management in information systems. It aims to develop skills in applying proactive and reactive security measures to ensure information system security.
The course encompasses a range of modules, starting with understanding and compliance investigations, covering the collection and processing of digital evidence, and exploring methods and tactics in digital forensics, including artifact examination.
Students dive into logging and activity monitoring, addressing intrusion detection and prevention systems, Security Information and Event Management (SIEM), constant log monitoring, data leak monitoring, and user and entity behavior analytics (UEBA).
The course also focuses on configuration management, emphasizing automation processes for configuration management, including baselining and provisioning.
Later in the course students study fundamental security operations concepts, such as the principle of least privilege, role separation, privileged account management, task rotation, and Service Level Agreement (SLA) management.
Students also delve into resource protection, covering media management and data protection methods. The course addresses incident management, including detection, response, mitigation, reporting, and recovery from incidents.
Moreover, the course encompasses a broad range of proactive and reactive measures, including firewall usage, intrusion detection and prevention systems, vulnerability and patch management, change management processes, disaster recovery planning, recovery strategy implementation, recovery plan testing, business continuity exercise planning, physical security, and personnel security practices.
By the end of the course, students will have gained the knowledge and skills to effectively manage security operations, respond to incidents, and proactively safeguard information systems.
Teachers



Intended learning outcomes
- Understand and apply automation processes for configuration management, including baselining and provisioning
- Develop practical skills related to disaster recovery planning and implementation
- Critically evaluate diverse scholarly views on security operations and incident response
- Develop a comprehensive understanding of digital forensics methodologies, tools, and tactics, including the examination of artifacts from computers, networks, and mobile devices
- Autonomously gather material and organize 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 of vulnerability and patch management
- Implement logging and activity monitoring
- Create synthetic contextualised discussions of key issues related to auditing security measures
- Efficiently manage interdisciplinary issues that arise in connection to user and entity behaviour analytics
- Apply a professional and scholarly approach to implementing various proactive and reactive security measures
- Solve problems and be prepared to take leadership decisions related to the management of media and the protection of data using various data protection methods
- Act autonomously in managing incidents, from detection and response to mitigation, reporting, and recovery
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
About
Human-computer interaction (HCI) is a field of study concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. This course surveys the scope of issues and foundations of the HCI field: cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods and techniques, and evaluation. This course will focus on the users and their tasks.
This course presents: first, an overview and introduction to the field of human-computer interaction and usability; second, an introduction to the methods to elicit user requirements and structure the design process to be user centred; and third, the course will emphasize the importance of paying attention to user needs and cognitive functioning in order to design usable systems. The course will also introduce visual design, heuristics, interaction methods and devices and specific interaction paradigms. This course provides practical knowledge of how to use well-known and established HCI design methods as well as theoretical knowledge of how to think and reason about them during the design process. In this course we will approach interaction design from the perspective of user-centered design. Interaction design techniques will be presented to explore and refine the behavior of products and services.
Key Intended Learning Outcomes:
Gain a thorough understanding of the fundamental aspects of Human-Computer Interaction (HCI), including cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods, and evaluation.
Acquire the capability to apply HCI principles in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach that considers cognitive aspects and various interaction styles.
Propose appropriate solutions to prioritize users and their tasks, fostering a user-centric design approach essential for creating effective and user-friendly interactive systems in diverse computing environments.
Teachers



Intended learning outcomes
- Demonstrate a comprehensive understanding of the fundamental concepts and theories underpinning Human-Computer Interaction (HCI).
- Critically analyze and evaluate HCI principles and methodologies to inform design decisions in interactive computing systems.
- Identify and assess emerging trends and challenges in HCI research and practice, demonstrating awareness of the evolving landscape of human-computer interaction.
- Utilize appropriate techniques for user and task analysis to inform the design process and prioritize user needs and preferences.
- Apply HCI principles and methodologies effectively in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach.
- Demonstrate proficiency in employing various interaction design methods and evaluation techniques to create and assess user-friendly interactive systems across diverse computing environments.
- Propose and justify user-centric design solutions that prioritize users and their tasks, fostering effective and engaging interactive experiences.
- Collaborate effectively within multidisciplinary teams to integrate HCI principles into the development lifecycle of interactive computing systems.
- Communicate complex HCI concepts, design decisions, and evaluation findings clearly and persuasively to diverse stakeholders, including technical and non-technical audiences.
About
This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn 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. We then go on to learn stylesheets based on CSS 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 CSS. 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 appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development
Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development
Teachers





Intended learning outcomes
- Develop a critical knowledge of Front end UI/UX development
- Critically evaluate diverse scholarly views on Front end UI/UX development
- Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
- Develop a specialised knowledge of key strategies related to Front end UI/UX development
- Critically assess the relevance of theories for business applications in the domain of technology
- Apply an in-depth domain-specific knowledge and understanding to technology
- 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
- Autonomously gather material and organise into a coherent problem sets or presentation
- 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
- Apply a professional and scholarly approach to research problems pertaining to 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
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
About
This course provides a hands-on introduction to modern cryptography and data protection practices, designed for cybersecurity professionals working in both general IT systems and AI-enhanced environments. It focuses on the secure design and application of cryptographic mechanisms — such as encryption, hashing, and key management — alongside policy-level protections and regulatory compliance (e.g., GDPR, NIST, AI Act). Through real world scenarios, students will learn to identify cryptographic vulnerabilities, implement safeguards, and develop organizational policies for secure data handling across a variety of contexts.
Teachers
Intended learning outcomes
- Explain how regulatory frameworks such as GDPR, the AI Act, and NIST standards influence the design and evaluation of secure data systems.
- Demonstrate awareness of how cryptography supports privacy, transparency, and risk reduction in high sensitivity domains — including AI, healthcare, and finance.
- Describe core cryptographic principles, including symmetric/asymmetric encryption, hashing, and digital signatures, and how they are applied to data protection.
- Analyze common cryptographic design flaws (e.g., weak entropy, IV reuse, insecure algorithms) and assess their security implications.
- Evaluate the integration of cryptography into broader data protection policies, including logging, monitoring, key lifecycle management, and incident response.
- Apply encryption, key management, and access control techniques to protect data at rest, in transit, and in processing — both in classical IT systems and data-driven applications.
- Use industry-standard tools (e.g., GnuPG, OpenSSL, Aircrack-ng) to detect and demonstrate cryptographic weaknesses and simulate attacks.
- Design basic data protection policies for organizations, incorporating cryptographic controls, access governance, and auditability.
About
This course provides a comprehensive, hands-on foundation in cyber risk and resilience management, equipping students with the knowledge and tools needed to assess, mitigate, and govern risks across a wide range of information systems. While rooted in classical risk analysis frameworks (e.g., FAIR, NIST RMF, ALE), the course also addresses the unique challenges of modern systems — including those enhanced by artificial intelligence, data-driven automation, and regulatory complexity.
Through real-world scenarios, students will learn to evaluate vulnerabilities, select appropriate controls, develop incident response strategies, and align cybersecurity posture with legal, organizational, and technological requirements — with special attention to emerging domains such as AI and algorithmic decision-making.
Teachers
Intended learning outcomes
- Explain the core principles and objectives of cyber risk management, including confidentiality, integrity, availability, and extended models such as the Parkerian Hexad.
- Discuss the evolving risk landscape, including AI-specific challenges such as model integrity, bias, explainability, and accountability — and propose mitigation strategies through case-based analysis.
- Identify and analyze common vulnerabilities and threats, and relate them to risk likelihood, impact, and exposure across different layers (data, process, governance).
- Evaluate regulatory and compliance frameworks (e.g., GDPR, HIPAA, PCI DSS, AI Act) and their implications for cyber risk governance.
- Apply quantitative and qualitative risk assessment methods — including ALE and FAIR — to both traditional IT systems and AI-enabled infrastructures.
- Demonstrate competence in incident response planning, business continuity, and disaster recovery as elements of cyber resilience.
- Design control strategies that map to structured frameworks (e.g., NIST, ISO, CRISC), balancing technical, administrative, and organizational measures.
- Monitor and assess residual risks and control effectiveness using continuous monitoring, risk metrics, and data-driven reporting techniques.
About
This discipline takes students from solid React fundamentals to building production-level front-end applications that meet modern industry standards. It focuses on advanced component architecture, custom and built-in hooks, routing (React Router v6), Redux Toolkit, and TypeScript, while emphasizing real-world, market-driven practice.Students reinforce essential concepts such as local and global state, REST API integration, code-splitting, lazy-loading, and performance optimization. They then complete a comprehensive test project simulating technical hiring challenges: a full SPA with a multi-page structure, catalog filtering, personal backend via mockapi.io, favorites management with persistent state, modal dialogs, validated booking forms, and scalable component-driven architecture. The course emphasizes working with Figma designs, building optimized React codebases, testing, and preparing applications for deployment.
Teachers
Intended learning outcomes
- Complete test-driven projects that meet common hiring requirements and deliver production-ready applications.
- Design and develop SPA applications using modern React patterns (hooks, context, Redux Toolkit with createAsyncThunk).
- Integrate REST APIs, perform CRUD operations, and persist user state (Redux state + persistence).
- Implement React Router v6, code-splitting, lazy-loading, and performance optimizations.
- Apply TypeScript for type-safe components, hooks, and API integrations.
- Build scalable, reusable components with modular styling (CSS Modules, normalization).
About
This course is tailored to provide a comprehensive exploration of UX Research Methods and Usability Testing. Throughout the program, participants will engage in a structured examination of diverse research methodologies applicable to the HCI field.
The curriculum commences with an in-depth overview of the research process, emphasizing literature review techniques essential for informed exploration within the domain of human-computer interaction and design. Students will acquire a theoretical foundation and practical proficiency in qualitative, survey, and experimental research methods.
A significant portion of the course is dedicated to a project-based approach, focusing on the formal evaluation of products. This involves a meticulous examination of usability testing, encompassing goal setting, user recruitment, task and environment design, and the comprehensive development and implementation of test plans. Prerequisites for this course include a foundational understanding of human-computer interaction principles, with an additional emphasis on fostering familiarity with research methodologies.
By the course's conclusion, students will not only possess theoretical insights into the research process but will also have acquired practical skills in conducting usability testing. This includes the ability to analyze, interpret, document, and present usability test results, culminating in the formulation of meaningful recommendations for user-centered design within the HCID landscape.
Key Intended Learning Outcomes:
Develop proficiency in various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, gaining an understanding of the research process and literature review.
Gain practical experience in studying existing research, designing, and conducting HCI studies, with a focus on usability testing. This includes goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
Effectively conduct formal evaluations of products, covering crucial aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations in the context of HCID.
Teachers
Intended learning outcomes
- Evaluate the research process, including literature review, hypothesis formulation, data collection, and analysis, to effectively design and conduct HCI studies and usability testing initiatives.
- Demonstrate a comprehensive understanding of various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, and the theoretical foundations underlying each method.
- Analyze existing research literature critically, identifying key findings, methodologies, and gaps in knowledge relevant to HCI research, and apply this understanding to inform research design and execution.
- Utilize software tools and platforms effectively to facilitate data collection, analysis, and visualization, enhancing efficiency and accuracy in research and usability testing activities.
- Develop practical expertise in designing and executing HCI studies and usability testing, including goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
- Employ appropriate data collection techniques, such as interviews, surveys, observations, and usability metrics, to gather insights into user behavior, preferences, and interactions with digital interfaces.
- Demonstrate proficiency in conducting formal evaluations of products and interfaces, covering all essential aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations.
- Collaborate with multidisciplinary teams to integrate research insights and usability testing outcomes into the design and development process, fostering a user-centered approach and improving the overall user experience of digital products and interfaces.
- Communicate research findings and usability testing results clearly and persuasively to diverse stakeholders, including designers, developers, and decision-makers, using appropriate visual aids, reports, and presentations in the context of Human-Computer Interaction and Design (HCID).
About
This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.
While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.
The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for storing data in a computer program
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to solving problems with 2D lists
Propose appropriate solutions to complex and changing problems of data storage, programming functions, and algorithms
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on computational complexity
- Develop a specialised knowledge of key strategies related to Object-Oriented Programming
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of various methods for structuring data
- Develop a critical understanding of a modern programming language such as Java or Python
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various programming methods to develop critical and original solutions to computational problems
- Apply an in-depth domain-specific knowledge and understanding to computer programming
- Autonomously gather material and organise it into a coherent presentation or essay
- Create synthetic contextualised discussions of key issues related to converting scientific knowledge into programming concepts, and how to instantiate these using Object-Oriented methods
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of computer programming
- Efficiently manage interdisciplinary issues that arise in connection to data structured in 1- and 2-dimensional arrays
- Act autonomously in identifying research problems and solutions related to Object-Oriented programming
About
User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.
Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.
The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.
By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.
Teachers





Intended learning outcomes
- Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
- Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
- Gain a deep understanding of the design thinking process and its application in solving complex design problems
- Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
- Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
- Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
- Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
- Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
- Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
- Apply knowledge of information architecture principles to structure and organize digital content effectively
- Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
- Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
- Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
- Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
- Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
About
Initially, the course will cover the basics of cryptography, principles of access control, identity management, and assurance strategies as theyof apply to IT applications and Cloud infrastructure services. The course will then explore the utilization of cryptographic algorithms, mechanisms, and technologies for securing data during transmission, storage, and usage. It will also address key management operations, the implementation of Private Blockchain infrastructures, integration of Public-Key Infrastructures (PKI) and Certificate Authorities (CA), identity verification with digital signatures, hardware-assisted keystore/root of trust deployment, directory services creation, single sign-on authentication setup, access control policy enforcement for IT resources, cryptographic solutions for IoT hardware, audit trail monitoring and recording, and compliance with industry and regulatory requirements.
Furthermore, the course will discuss practical cryptography and identity management techniques, and how to implement Zero-Trust Architectures (ZTA) in Cloud and IoT infrastructures using standard services and protocols such as TLS, IPSec/IKE, PKCS#11, LDAP, OCSP, SAML, OAuth2, OpenID Connect (OIDC). It will also emphasize adhering to data protection and identity management guidelines outlined by NIST, ENISA, and the Cloud Security Alliance (CSA).
This course provides a ground-up coverage of the high-level concepts, applied mechanisms, architecture, design, and real-world implementation practices of using cryptography and identity management solutions as they apply to cloud-hosted applications, services, and IoT devices.
Teachers



Intended learning outcomes
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on quantum cryptography
- Develop a comprehensive understanding of the legal and ethical dimensions of securing data in different contexts
- Assess, analyze, and critique the fundamental principles and strategies related to cryptography, access control, and identity management in IT and Cloud environments
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Compare and evaluate the effectiveness of cryptographic algorithms and mechanisms for securing data in different contexts, and understand their real-world applications
- Propose appropriate solutions to complex and changing problems pertaining to privacy and cryptography
- 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 management techniques related to cryptography
- Efficiently manage interdisciplinary issues that arise in connection to cryptography
- Apply a professional and scholarly approach to research problems pertaining to cryptography
- Act autonomously in identifying research problems and solutions related to cryptography
- Propose practical solutions to challenges such as cryptographic key management, Private Blockchain deployment, identity verification, and access control policy enforcement in IT and IoT settings, while aligning with industry standards and compliance guidelines
- Create synthetic contextualised discussions of key issues related to cryptography
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to cryptography
- Solve problems and be prepared to take leadership decisions related to cryptography
About
This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.
Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.
Key Intended Learning Outcomes:
Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.
Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.
Teachers





Intended learning outcomes
- Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
- Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
- Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
- Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
- Comprehend web standards, cross-browser compatibility, and validation techniques.
- Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
- Assess the principles of organising and structuring information for effective website navigation and user experience
- Understand the concepts and techniques of responsive web design.
- Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
- Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
- Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
- Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
- Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
- Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
- Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
- Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
- Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
- Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
- Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
- Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
- Optimise website assets, reduce load times, and improve overall website performance.
- Create websites that provide optimal user experiences across a range of devices.
- Apply accessibility techniques to ensure equal access to information and functionality.
- Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
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 as how programs interact with these. Students begin with mapping data storage problems 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 synchronization 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for evaluating the design and use of relational databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle process prioritization in an operating system
Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development for specific operating systems and network environments
Teachers





Intended learning outcomes
- 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
- Develop a specialised knowledge of optimising relational database performance in low-latency environments
- Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols
- Critically assess the relevance of theories of database design for business applications in the domain of software engineering
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints
- Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering
- Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems
- Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments
- Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks
- Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks
- Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems
- Act autonomously in identifying research problems and solutions related to the real-world application of relational databases
About
A business case study is a course designed for the learner to identify a business real world problem and its objective is to help students rigorously solve a real-world, technically-challenging business problem where they would apply all of the concepts, techniques and tools learnt in the program. Students typically pick a problem from a known business problem or identify business cases where data analytics can be used to solve a problem. The choosing of a topic can be done after discussing it with the course instructor(s). Students also have an option of choosing a business problem in their professional organization but the external supervisors should be approved by the instructor(s). Students start by identifying a business problem and proposing a methodology to solve the said business problem. Students then decide what technical and business tools will be used for the solution methodology. Students will first work on the real-world data, clean and process it using techniques learnt in this program. Students then will use algorithms and approach with a coding language and tool they think will get the best results. At the end of the case study student should be able to present the business problem and solution either via Jupyter notebooks or via a blog.
Teachers
Intended learning outcomes
- Develop a critical understanding of project management best practices
- Acquire knowledge of various methods for deploying designs into production and making solutions available to end users
- Critically assess the relevance of theories of project management in the realm of software engineering
- Critically evaluate diverse scholarly views on assessing alternative designs and tools for specific problems
- Develop a specialised knowledge of strategies for testing components and an overall system for errors
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Apply a professional and scholarly approach to research problems pertaining to optimising against real world constraints, including cost, time, storage, etc.
- Efficiently manage interdisciplinary issues that arise in connection to designing a robust and reliable system architecture
- Act autonomously in identifying research problems and solutions related to deploying a proposed solution to a practical business problem
- Demonstrate self-direction in research and originality in solutions developed to solve real-world business problems
- Solve problems and be prepared to take leadership decisions related to developing a high-level design that solves a real-world business problem
- Create synthetic contextualised discussions of key issues related to a real-world business problem and its possible solutions
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
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




Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a specialised knowledge of key strategies related to design patterns
- Develop a critical knowledge of design patterns
- Acquire knowledge of the pros and cons of popular UML design patterns
- Critically evaluate diverse scholarly views on design patterns
- Creatively utilize design patterns tools to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to object-oriented design patterns
- Efficiently manage interdisciplinary issues that arise in connection to design patterns
- Apply a professional and scholarly approach to research problems pertaining to design patterns
- Act autonomously in identifying research problems and solutions related to design patterns
- Demonstrate self-direction in research and originality in solutions developed for design patterns
- Create synthetic contextualised discussions of key issues related to design patterns
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design patterns
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development
Propose appropriate solutions to complex and changing problems pertaining to Back End Development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Back End Development
- Critically evaluate diverse scholarly views on Back End Development
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of 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
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
About
The Foundations of Cyber Security course is designed to provide students, both technical and non-technical, with a comprehensive introduction to the field of cybersecurity. In an increasingly digital world, the importance of securing data, systems, and networks is paramount. This course equips students with the knowledge and skills to protect their own information and recognize the importance of cybersecurity in professional settings. Cybersecurity is presented not as an absolute concept, but as a dynamic field with ever-evolving threats and countermeasures, where decisions involve trade-offs between security and usability. Real-world case studies and examples are used to illustrate the practical applications of cybersecurity principles.
Teachers




Intended learning outcomes
- Critically evaluate diverse scholarly views on security risk analysis and management
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of the legal and ethical dimensions of cybersecurity, including knowledge of cyber law, the implications of cybercrime and cyberwarfare, and an awareness of international legal frameworks
- Develop practical skills to secure personal accounts and data.
- Develop expertise in system and software security, including securing operating systems, software patches, practicing secure coding, and conducting vulnerability scanning
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to network and cloud security
- Apply an in-depth domain-specific knowledge and understanding of the importance of the legal and ethical aspects of cybersecurity
- Propose appropriate solutions to complex and changing problems pertaining to system and software security
- 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
- Efficiently manage interdisciplinary issues that arise in connection to cybersecurity
- Apply a professional and scholarly approach to research problems pertaining to cybersecurity
- Act autonomously in identifying research problems and solutions related to system and software security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network and cloud security
- Solve problems and be prepared to take leadership decisions related to the implementation of secure account and data management
- Create synthetic contextualised discussions of key issues related to cybersecurity
About
This course provides students with hands-on experience on deploying high velocity applications and services reliably on complex and distributed infrastructure. DevOps as a philosophy is a key driver of the modern software life cycle which prefers rapid and reliable delivery of functionality and features via code. We start with a solid introduction to Linux scripting and networking. Then, we learn popular methodologies to deploy complex and distributed software like microservices, containerization (Docker) and orchestration (Kubernetes). All of this would be introduced with real world examples from the industry. We also focus on Continuous Integration and Continuous Delivery (CI/CD) methodology and how it can be achieved using popular toolchains like Jenkins. We dive into how automated testing of software can be achieved using libraries like Selenium. This shall be followed by more advanced techniques like serverless-compute, Platform as a service model and Cloud-DevOps. Students would learn to monitor and log key data points to ensure they maintain a healthy system and adapt it as needed. Infrastructure-as-code is a key component of modern DevOps especially on cloud and containerized applications which would also be covered with real-world examples.
Teachers



Intended learning outcomes
- Develop a critical knowledge of DevOps
- Develop a specialised knowledge of key strategies related to DevOps
- Critically assess the relevance of theories for business applications in the domain of technology
- 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)
- Apply an in-depth domain-specific knowledge and understanding to DevOps solutions.
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply DevOps tools to develop critical and original solutions for computational problems.
- Autonomously gather material and organise it into coherent problem sets or presentations
- Create synthetic contextualised discussions of key issues related to DevOps
- 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
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
The course is designed to provide students with a profound understanding of identity and access management (IAM) and its vital role in safeguarding information systems. It also equips students with practical skills for managing both physical and logical access to critical assets. IAM is an essential component of modern organizations' security and access management strategies, and this course empowers students with the knowledge and abilities needed to excel in this domain.
The course begins by exploring the management of physical and logical access to assets. Students will delve into the fundamental concepts of access control, its significance, and the differentiation between physical and logical access control mechanisms.
As the course progresses, students will acquire in-depth knowledge of identity and authentication management. This encompasses the implementation of identity management (IdM) systems, multi-factor authentication (MFA), and session management. They will also understand the processes of registration and identity establishment, including user registration and identity verification. The course further delves into federated identity management, addressing its implementation in cloud, on-premises, and hybrid environments.
Additionally, students will learn about identity data management, emphasizing systems for managing identity data and the principles of identity data management. The management of single sign-on (SSO) and just-in-time (JIT) authentication will be covered as well. The course goes on to elucidate the mechanisms of authorization management. This includes the implementation of access control models, such as Role-Based Access Control (RBAC), Rule-Based Access Control, Mandatory Access Control (MAC), and others. Furthermore, students will gain insights into risk-oriented access control implementation.
Finally, the course delves into the identity and access lifecycle management. This involves access review processes, the analysis of access to accounts (user, system, and service), the provisioning and
de-provisioning of access rights, role definition, and the minimization of privilege escalation.
In conclusion, students will learn about authentication systems, including OpenID Connect (OIDC)/Open Authorization (OAuth), Security Assertion Markup Language (SAML), Kerberos, RADIUS/TACACS+, and their practical implementation. These authentication systems play a crucial role in establishing secure access control in modern information systems.
Teachers




Intended learning outcomes
- Develop expertise in addressing security challenges related to authentication systems
- Develop a comprehensive understanding of the implementation of access control models
- Critically evaluate diverse scholarly views on identity and access management
- Develop practical skills related to identity and access management in cybersecurity
- Apply an in-depth domain-specific knowledge and understanding of identity data management
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Implement authentication systems and understand their practical application in securing access control
- Implement identity management, multi-factor authentication (MFA), and session management
- Autonomously gather material and organize it into a coherent presentation or essay
- Analyze and manage access to accounts, including provisioning, de-provisioning, role definition, and privilege escalation minimization
- Create synthetic contextualised discussions of key issues related to identity and access management
- Solve problems and be prepared to take leadership decisions related to the implementation of security and access management strategies
- Efficiently manage interdisciplinary issues that arise in connection to identity and access management
- Apply a professional and scholarly approach to research problems pertaining to access control
- Act autonomously in identifying research problems and solutions related to identity and access lifecycle management
- Demonstrate a deep understanding of identity and access management (IAM) principles and their application in securing information systems
About
This course is designed to equip IT professionals with the soft skills and career strategies required for success in the technology industry. The course is project-based and covers a range of topics such as communication skills, teamwork, time management, leadership, networking, and career development.
The course covers the entire lifecycle of a technology project, from requirement gathering to delivery and maintenance. Students will learn how to communicate effectively with stakeholders, manage their time efficiently, lead a team, and collaborate effectively in a team environment.
The course also covers aspects of career development, such as networking and building professional relationships, creating a personal brand, and developing a career plan. Students will learn how to identify their strengths and weaknesses, and how to leverage their skills and experience to advance their careers in the technology industry.
Key Intended Learning Outcomes:
Develop and demonstrate effective communication skills.
Collaborate effectively in a team environment.
Develop and demonstrate leadership skills.
Build and maintain professional relationships.
Develop and execute a career plan.
Teachers





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



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
- Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
- Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
- Critically evaluate diverse scholarly views on Productionization of Machine Learning
- Develop a critical knowledge of Productionization of Machine Learning Systems
- Creatively apply ML systems 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 it into coherent problem sets or presentation
- Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
- Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
- Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
- Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
- Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
About
Thе course offers an extensive exploration of graphic design principles. Students will delve into the application of graphic design in the context of designing interactive and user-centric interfaces. The course integrates both theoretical concepts and practical skills, emphasizing the creation of visually compelling and effective designs for enhanced user experiences.
Participants will acquire a comprehensive understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, with a focus on their application in the context of Human-Computer Interaction. Through project-based learning, students will have the opportunity to work on practical design projects that simulate real-world scenarios, honing their graphic design skills for HCI. This approach ensures the direct application of learned concepts and techniques.
The course will emphasize the integration of graphic design into the broader context of usability and user-centric design. Students will learn how to align visual aesthetics with user needs, creating interfaces that are both visually appealing and functionally effective.
Students will develop the ability to effectively present and communicate their designs, understanding the importance of conveying design concepts to stakeholders and collaborators within the context of Human-Computer Interaction and Design.
By the conclusion of this course, students will have not only mastered the principles of graphic design but will also possess the expertise to seamlessly integrate these elements into user-centric interfaces, aligning with the principles of Human-Computer Interaction and Design.
Key Intended Learning Outcomes:
Achieve proficiency in fundamental graphic design principles, mastering composition, lighting, texture, and spatial awareness.
Learn to apply graphic design techniques specifically within the context of Human-Computer Interaction, enhancing user engagement and interface usability.
Develop the skills to present and communicate their designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers


Intended learning outcomes
- Identify and analyze the role of graphic design within the context of Human-Computer Interaction (HCI), recognizing its impact on enhancing user engagement and interface usability.
- Critically evaluate contemporary trends, techniques, and tools in graphic design, and assess their relevance and applicability in designing interactive interfaces for digital platforms.
- Demonstrate a deep understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, and their application in creating visually compelling designs.
- Apply advanced graphic design techniques effectively to create aesthetically pleasing and functional designs tailored for digital interfaces, considering factors such as user experience, accessibility, and usability.
- Develop proficiency in translating conceptual ideas into tangible visual representations for user interface design.
- Utilize industry-standard software and tools proficiently to execute graphic design projects, demonstrating mastery in digital image editing, typography, color theory, and layout design.
- Present and communicate graphic design concepts and solutions effectively, employing visual aids, storytelling techniques, and persuasive arguments to convey ideas and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including developers, UX/UI designers, and stakeholders, to integrate graphic design elements harmoniously into the overall design strategy, ensuring consistency and coherence across digital interfaces.
- Demonstrate the ability to integrate graphic design principles seamlessly into the HCI design process, fostering user engagement and enhancing the overall user experience of interactive systems.
About
This course is designed to provide students with a comprehensive understanding of asset management principles and data security strategies, preparing them to effectively identify, classify, and manage critical assets and sensitive information within the cybersecurity landscape.
The course commences with an exploration of the foundational aspects of asset management. Students will gain insight into the pivotal role of assets in the realm of cybersecurity, as they form the building blocks upon which robust security strategies are constructed. Understanding the lifecycle of assets, whether tangible or intangible, becomes a key focus, emphasizing the need for meticulous control and responsible ownership. Simultaneously, the course delves into the realm of data security.
The significance of safeguarding data cannot be overstated, as data is often an organization's most valuable asset. Students will grasp the core principles of data security, equipping them with the knowledge required to ensure the confidentiality, integrity, and availability of data. Emphasis will be placed on mitigating risks and protecting data from breaches, ensuring compliance with industry standards and regulations.
As the course progresses, students will delve into the identification and classification of information and assets. They will learn the intricacies of data classification, including the methods for labeling and categorizing data based on its sensitivity.
Additionally, they will explore techniques for the identification of assets, a crucial aspect of effective asset management, ensuring that organizations are fully aware of their resource landscape. Furthermore, the course covers the establishment of requirements for managing assets and information. Students will learn how to define the specific needs and prerequisites for asset management, which are essential for developing effective policies and procedures. These policies and procedures are the cornerstone of organized asset management and data security.
A critical aspect of the course is the exploration of data lifecycle management. Students will gain an understanding of the roles and responsibilities of data stakeholders, including owners, controllers, keepers, processors, and users. They will also be exposed to the full lifecycle of data, including its collection, storage, maintenance, retention, and secure disposal, ensuring that data is adequately protected throughout its existence.
By the end of the course, students will be well-equipped to tackle the challenges of asset management and data security in the complex landscape of modern cybersecurity. They will have the knowledge and practical skills needed to identify, classify, and manage assets and information effectively, ultimately contributing to the enhancement of an organization's security posture.
Teachers




Intended learning outcomes
- Understand the roles of data stakeholders and the entire lifecycle of data, from collection to disposal
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on asset management and data security
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of fundamental concepts of asset management and its significance in the realm of cybersecurity
- Compare and evaluate the different methods and procedures for the identification and classification of data and assets, including the determination of confidentiality levels
- Propose appropriate solutions to complex and changing problems pertaining to asset management and data security
- 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 of the importance of the legal and ethical aspects of asset management
- Solve problems and be prepared to take leadership decisions related to asset management and data security
- Apply a professional and scholarly approach to research problems pertaining to asset management and data security
- Define and establish requirements for asset management, and develop policies and procedures to ensure effective management
- Create synthetic contextualised discussions of key issues related to asset management and data security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to asset management and data security
- Act autonomously in identifying research problems and solutions related to asset management and data security
- Efficiently manage interdisciplinary issues that arise in connection to asset management and data security
About
This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.
The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.
The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.
Key Intended Learning Outcomes:
Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization
Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code
Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques
Develop asynchronous functions and handle errors effectively for CRUD operations
Teachers





Intended learning outcomes
- Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
- Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
- Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
- Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
- Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
- Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
- Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
- Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
- Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
- Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
- Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
- Apply strategies to optimise the performance of JavaScript code and web applications.
- Develop asynchronous functions and handle errors effectively for CRUD operations.
- Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
- Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
Teachers




Intended learning outcomes
- Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem
- Develop a critical understanding of data engineering
- Critically evaluate diverse scholarly views on best practices in developing data-intensive applications
- Critically assess the relevance of theories of data modeling for efficient pipeline creation
- Acquire knowledge of various methods for warehousing data
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
- 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.
- Demonstrate self-direction in research and originality in creating advanced SQL queries.
About
This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.
Teachers




Intended learning outcomes
- Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet
- Critically evaluate diverse scholarly views on Deep Learning for Computer Vision
- Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for Computer Vision
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques
- Autonomously gather material and organise it into coherent problem sets or presentation
- Creatively apply computer vision techniques to develop critical and original solutions for computational problems
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision
- Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision
- 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
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 one of the most popular and advanced frameworks/libraries in use – React.js. 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications
Propose appropriate solutions to complex and changing problems pertaining to front end development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to front end development
- Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
- Critically evaluate diverse scholarly views on front end development
- Develop a critical knowledge of front end developmen
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Apply an in-depth domain-specific knowledge and understanding to front end development solutions
- 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
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
- Act autonomously in identifying research problems and solutions related to front end development
About
This course explores the interdisciplinary field of Physical User Interface (PUI) design within the context of Human-Computer Interaction and Design. PUIs involve the interaction between users and digital systems through tangible, physical objects, presenting new challenges and opportunities for designers. As intelligent production environments evolve, the course addresses the question of whether existing design methods and tools are adequate or if more sophisticated approaches are required.
The curriculum initiates with a discussion on the necessity for advanced physical user interfaces with enhanced capabilities, establishing functional and non-functional requirements for an efficient design method.
The course introduces a model-based design approach, incorporating a comprehensive context model and modeling tools tailored for intelligent production environments. Through case studies and practical applications, students gain insights into the feasibility and effectiveness of the proposed design method. The course concludes with a critical examination of key characteristics, identifying areas for potential future improvements.
Key Intended Learning Outcomes:
Achieve proficiency in foundational principles of PUI design, encompassing tangible interaction, usability, and integration with intelligent production environments.
Apply design techniques specific to Physical User Interfaces within the broader context of Human-Computer Interaction, aiming to enhance user engagement and optimize interface usability.
Develop skills to present and articulate PUI designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers
Intended learning outcomes
- Analyze and evaluate the relationship between Physical User Interfaces and broader Human-Computer Interaction (HCI) principles, recognizing the unique challenges and opportunities presented by tangible interfaces in enhancing user engagement and optimizing interface usability.
- Critically assess emerging trends and technologies in PUI design and their implications for designing interactive systems in intelligent production environments.
- Demonstrate a deep understanding of the foundational principles of Physical User Interface (PUI) design, including tangible interaction, usability, and integration with intelligent production environments.
- Demonstrate proficiency in usability testing methodologies adapted for Physical User Interfaces to identify usability issues and iteratively improve design solutions.
- Utilize prototyping tools and methods proficiently to develop and iterate Physical User Interface designs, translating conceptual ideas into tangible, functional prototypes for user testing and evaluation.
- Apply advanced design techniques specific to Physical User Interfaces effectively to create intuitive and engaging user experiences.
- Design and implement Physical User Interfaces that seamlessly integrate with intelligent production environments.
- Present and articulate PUI designs effectively, employing storytelling techniques, visual aids, and persuasive arguments to convey design concepts and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including engineers, industrial designers, and domain experts, to integrate Physical User Interfaces into the overall product or system design, ensuring coherence and alignment with user needs and production requirements.
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of numerical programming in Python
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle numerical programming in Python
Propose appropriate solutions to complex and changing problems pertaining to numerical programming in Python
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Numerical programming in Python
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Numerical programming in Python
- Critically evaluate diverse scholarly views on Numerical programming in Python
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python
- Autonomously gather material and organize it into a coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create new solutions that are critical to solving computational problems through creatively applying code writing
- Act autonomously in identifying research problems and solutions 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
- 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
- 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
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.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Data structures
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should implement Data structures
Propose appropriate solutions to complex and changing problems pertaining to different approach to Data structures applications
Teachers





Intended learning outcomes
- Develop a critical knowledge of Data Structures and their implementation
- 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
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent data structures
- Apply data structures in a creative way to develop original, critical solutions to real world problems.
- Apply an in-depth domain-specific knowledge and understanding of Data Structures
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Data Structures and their implementation
- Create synthetic contextualised discussions of key issues related to Data Structures and the different approached to their implementation.
- Demonstrate self-direction in research and originality in solutions developed for Data Structures and their implementation
- Apply a professional and scholarly approach to research problems pertaining to Data Structures and their implementation
- Efficiently manage interdisciplinary issues that arise in connection to Data Structures and their implementation
- Act autonomously in identifying research problems and solutions related to Data Structures and their implementation
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers


Intended learning outcomes
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- 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.
- 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
- Act autonomously in identifying research problems and solutions related to product analytics
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
About
The course equips students with a deep understanding of network security and communication protocols. This course goes beyond the surface and provides practical skills for assessing and implementing secure network architecture designs. It's designed to instill essential knowledge and skills required to navigate the intricacies of network security and communication protocols, making it a critical component of contemporary cybersecurity education.
The course begins by establishing the fundamentals of secure network design. Students will explore the OSI and TCP/IP models, delving into the principles and architecture of TCP/IP and examining the pivotal role of security at different layers of these models.
Moreover, students will be introduced to secure network protocols, focusing on the principles and practical implementation of secure protocols, including IPSec, IPv4, and IPv6. As the course progresses, students will delve into the security intricacies embedded within multilayered protocols. They'll learn about the importance of multilayered protocols and gain the knowledge needed to address challenges presented by these protocols. The course also covers micro-segmentation in networks, including virtual and software-defined networks (SDN) and VXLAN, demonstrating how segmentation enhances security.
Additionally, students will explore the security aspects of wireless and mobile networks, such as Wi-Fi, Li-Fi, Zigbee, and satellite networks, along with the security of cellular networks (4G and 5G). The role of security in content distribution networks (CDN) will also be emphasized. Furthermore, the course delves into the realm of secure network components. Students will discover how to safeguard network hardware components, including power redundancy and warranties. Network access control (NAC) tools are introduced, providing insights into their implementation and their role in network access security. Endpoint security measures will be explored to protect devices and software, ensuring a secure connection to the network.
The course concludes by addressing the implementation of secure communication channels. It covers secure voice communication and multimedia interaction, focusing on the security of voice communication and secure multimedia communication principles and methods. Remote access and data transmission security are also explored, including the protection of remote network access and secure data transmission. Virtualized networks and security in virtualized networks and cloud environments are discussed, along with securing network connections with external parties and domains.
By the end of this course, students will possess a comprehensive understanding of network security and communication protocols, along with the practical skills needed to assess and implement secure network designs across various domains.
Teachers


Intended learning outcomes
- Develop a comprehensive understanding of the legal and ethical dimensions of network security and communication protocols
- Develop practical skills related to network security and communication protocols
- Critically evaluate diverse scholarly views on network security and communication protocols
- Develop expertise in addressing security challenges presented by multilayered protocols and micro-segmentation, ensuring robust network security
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to safeguard network hardware components, implement network access control (NAC), and enhance endpoint security for secure network access
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding of network security principles and their application in diverse network environments
- Compare and evaluate the different methodologies recommended to select and implement secure network protocols, including IPSec, IPv4, and IPv6, to enhance network security
- Create synthetic contextualised discussions of key issues related to network security and communication protocols
- Efficiently manage interdisciplinary issues that arise in connection to network security and communication protocols
- Demonstrate the ability to establish secure voice communication, multimedia interaction, and secure data transmission in various network contexts
- Act autonomously in identifying research problems and solutions related to network security and communication protocols
- Apply a professional and scholarly approach to research problems pertaining to network security and communication protocols
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network security and communication protocols
- Solve problems and be prepared to take leadership decisions related to the implementation of network security and communication protocols
About
The course is designed to equip students with the knowledge and practical skills required to assess, test, and audit security measures in information systems. It provides a comprehensive understanding of the strategies and methodologies employed to evaluate the security of systems, identify vulnerabilities, and recommend security improvements. In an ever-evolving threat landscape, the ability to conduct effective security assessments and tests is vital in ensuring the confidentiality, integrity, and availability of critical data and systems.
The course begins with knowledge and skills, where students learn to design and validate assessment, testing, and audit strategies. This part of the course covers the development of strategies for internal, external, and third-party assessments, emphasizing planning and strategy validation.
The next part of the course focuses on conducting security control testing. It delves into vulnerability assessment methods, tools, and vulnerability analysis with recommendations for mitigation. Students also acquire the knowledge and skills to prepare for and execute penetration tests, analyze results, and formulate recommendations. Additionally, this part covers event log review for anomaly detection and synthetic transaction creation and analysis.
It also discusses code review and vulnerability testing, along with secure development practices. This part of studies concludes with the examination of abuse case testing, testing coverage assessment, and security interface and integration point evaluations. Students will also learn the collection of data on security processes, including account management, key performance indicators, and risks. Students learn how to gather and analyze data to assess security processes effectively.
In the next part of the course, students become adept at analyzing test results and creating reports. They learn to analyze test findings and recommendations, compile detailed test and assessment reports, handle exceptions and incidents, and adhere to ethical vulnerability disclosure principles.
The course culminates in exploring the execution and organization of security audits. Students learn to prepare for and conduct internal and external security audits, as well as audits of third-party providers.
By the end of the course, students will possess the knowledge and skills to assess, test, and audit the security of information systems effectively.
Teachers
Intended learning outcomes
- Develop practical skills related to conducting security control testing
- Critically evaluate diverse scholarly views on security assessment and testing
- Develop expertise in conducting effective security assessments and tests
- Develop a comprehensive understanding of the processes and requirements for performing security audits effectively
- Analyze test findings and recommendations, generating comprehensive test and assessment reports, handling exceptions and incidents, and adhering to ethical vulnerability disclosure principles
- Perform vulnerability assessments, penetration tests, event log reviews, synthetic transaction creation and analysis, code reviews, and abuse case testing
- Apply an in-depth domain-specific knowledge and understanding of identifying vulnerabilities and recommending security improvements
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organize it into a coherent presentation or essay
- Solve problems and be prepared to take leadership decisions related to the implementation of log reviews for anomaly detection
- Apply a professional and scholarly approach to research problems pertaining to security testing
- Design and validate strategies for internal, external, and third-party security assessments, encompassing planning and strategy validation
- Act autonomously in identifying research problems and solutions related to vulnerability testing
- Efficiently manage interdisciplinary issues that arise in connection to external and internal security audits
- Analyze data on security processes, including account management, key performance indicators, and risks, to effectively assess security processes
- Create synthetic contextualised discussions of key issues related to auditing security measures
About
This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.
Teachers





Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- Develop a specialised knowledge of key strategies related to cloud computing
- Develop a critical knowledge of cloud computing
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on cloud computing
- Creatively apply cloud computing 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 cloud computing services
- Autonomously gather material and organise it into coherent problems sets or presentations
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues 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
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
About
Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.
Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.
Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.
In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.
Teachers





Intended learning outcomes
- Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
- Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
- Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
- Gain knowledge of security and performance considerations specific to mobile app development
- Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
- Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
- Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
- Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
- Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
- Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
- Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
- Gain proficiency in integrating mobile apps with backend services and API
- Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
- Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
- Apply the principles of cross-platform mobile app design and development with frameworks like React Native
About
This course gives the detailed overview on how to approach Low Level Design problems with real-world case studies discussed such as Designing a Pen (Mac/Windows), TicTacToe, BookMyShow (most used event booking app, manages millions of users), Email campaign Management System and detailed design of Splitwise.
Teachers
Intended learning outcomes
- 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
- Acquire knowledge of various methods for specifying the logical and functional design of a system
- Develop a critical understanding 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
- Creatively apply various visual and written methods for converting architectural/high-level designs to component-oriented, low-level designs
- Apply an in-depth domain-specific knowledge and understanding of the importance of refinement in software design processes
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to logical and functional design of software components
- 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
- Efficiently manage interdisciplinary issues that arise in connection to developing hierarchical input process output (HIPO) models
- Create synthetic contextualised discussions of key issues related to specifying the internal logic of software
About
This course is designed to provide a comprehensive understanding of Quality Assurance (QA) in software development. The course will cover the fundamental principles of testing and the different types of testing that are conducted at various levels of the software development life cycle. Students will also learn about the different testing techniques used in QA, such as black box, white box, and experience-based testing.
The course will also introduce students to various testing tools and methodologies that are commonly used in industry, including test management tools, SQL databases, Postman, and mobile testing. Students will learn about web technologies and the client-server architecture, as well as front-end and back-end development. The course will cover the basics of HTML/CSS, modern application architecture, and working with command-line tools like CI/CD and Git.
Throughout the course, students will develop a solid understanding of QA and its role in software development. They will learn how to develop test documentation and will gain practical experience in implementing various testing strategies. They will also learn how to analyze and critique different QA methodologies and propose appropriate solutions to complex and changing problems in the context of data structures. Students will be able to apply their understanding of web technologies and modern application architecture to design and test web applications, and will be well-equipped to pursue careers in software development or QA.
Teachers





Intended learning outcomes
- Develop knowledge of test design and execution techniques, including test case design, test script development, and test execution planning.
- Develop a comprehensive knowledge and understanding of software testing concepts, techniques, and methodologies, including for example functional testing, performance testing, security testing, and usability testing
- Learn how to interpret and present quality data effectively through reports, dashboards, and visualizations
- Acquire in-depth knowledge of software quality assurance principles, best practices, and industry standards
- Assess how to measure and evaluate software quality using relevant metrics, such as defect density, test coverage, and code complexity
- Acquire knowledge of test management tools, test automation frameworks, bug tracking systems, and performance testing tools
- Apply various testing techniques, such as black-box testing, white-box testing, and regression testing, to verify software functionality, performance, and security.
- Apply knowledge of troubleshooting and debugging techniques to identify the root causes of software defects.
- Develop the ability to select and configure appropriate test automation frameworks and tools, design and implement automated test scripts, and execute automated test suites to increase testing efficiency and coverage.
- Analyze and interpret test results and reports to identify software defects, inconsistencies, and areas for improvement
- Demonstrate the ability to adapt QA processes to iterative development cycles, collaborate with cross-functional teams, participate in sprint planning, and ensure quality throughout continuous integration and continuous delivery (CI/CD) pipelines
- Apply understanding of web technologies and modern application architecture to design and test web applications
- Develop and implement effective test documentation for software development project
- Acquire proficiency in using defect tracking tools, categorizing defects, and collaborating with development teams for timely resolution.
- Comprehend the role of QA in iterative development cycles, continuous integration, and continuous delivery
- Gain proficiency in applying industry best practices and standards to ensure the quality, reliability, and effectiveness of software applications
- Acquire proficiency in collaborating with cross-functional teams, participating in sprint planning, and ensuring quality throughout rapid release cycles
- Develop skills in selecting, implementing, and maintaining appropriate test automation frameworks and tools
- Utilize various testing tools and technologies to design, implement, and manage QA processes
About
In the ever-evolving landscape of cybersecurity, managing risks and ensuring organizational resilience is of paramount importance. The "Cyber Risk and Resilience Management" course is designed to equip students with the skills and knowledge necessary for effective security and risk management in the field of information security. This course delves into the core principles and concepts of security and risk management, ensuring that students are well-prepared to address contemporary cyber threats and challenges.
The course begins with an introduction to the fundamental principles and concepts of security and risk management. It emphasizes the significance of professional ethics and codes of conduct in the field of information security. Students will explore key security concepts, including confidentiality, integrity, availability, authenticity, and non-repudiation, and learn how to apply these concepts to various scenarios and contexts.
As the course progresses, students will delve into topics such as aligning security functions with business strategy, roles and responsibilities within organizations, security management frameworks, and the importance of due care and diligence. Additionally, students will gain insights into compliance requirements, contractual, legal, industry standards, and regulatory requirements, with a particular focus on data confidentiality and protection.
This course will also cover legal and regulatory issues in cybersecurity, including cybercrimes, data breaches, licensing, intellectual property requirements, cross-border data transfer, and privacy considerations. Students will explore various types of investigations, including administrative, criminal, civil, regulatory, and industry-specific investigations.
Throughout the course, students will learn how to develop, document, and implement security policies, standards, procedures, and guidelines. They will gain an understanding of business continuity requirements, including Business Impact Analysis (BIA), and learn to develop and document business continuity plans.
Moreover, the course will provide students with the knowledge and skills to identify threats and vulnerabilities, assess and analyze risks, and respond effectively to mitigate risks. It also covers the concept of risk management by supply chain, focusing on risks associated with hardware, software, and services.
Additionally, students will explore the creation and maintenance of security awareness, education, and training programs, including methods for program delivery, content analysis, and program effectiveness assessment.
By the end of this course, students will have a solid foundation in cybersecurity risk management and resilience, enabling them to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity.
Teachers


Intended learning outcomes
- Critically evaluate diverse scholarly views on risk and resilience management
- Assess, analyze, and critique methods of security awareness, education, and training programs
- Gain proficiency in legal and regulatory aspects of cybersecurity and be able to navigate the complex landscape of cybersecurity regulations and compliance requirements
- Develop practical skills related to confidentiality, integrity, availability, authenticity, and non-repudiation
- Analyze program content, delivery methods, and assess program effectiveness, promote a culture of cybersecurity awareness and vigilance within an organization
- Apply risk management strategies to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity
- 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
- Be able to create, document, and implement security policies, standards, procedures, and guidelines, and contribute to the development of a resilient business continuity strategy within an organization
- Act autonomously in identifying research problems and solutions related to cyber risk management
- Solve problems and be prepared to take leadership decisions related to cyber risk management
- Create synthetic contextualised discussions of key issues related to cyber risk management
- Apply a professional and scholarly approach to research problems pertaining to cyber risk management
- Efficiently manage interdisciplinary issues that arise in connection to cyber risk management
- Demonstrate a deep understanding of the principles and concepts related to cyber risk management
About
This course provides a practical and detailed understanding of popular programming paradigms and data storage types. Students learning this will be able to write and solve programming problems. The course starts from the basics about functions, various built in functions and how to code user defined functions. Then students will learn about various data type storages and learn about lists and how various manipulations can be done lists like list slicing and also go through examples of 2D Lists.
While learning how to create functions students have to learn how various results and inputs can be stored using different data types. After the introduction and discussion on Lists, students will go through sets, tuples, Dictionaries and Strings.
The student should be well prepared to apply these concepts and build algorithms and software using what they learnt in this course.
Teachers
Intended learning outcomes
- Critically evaluate diverse scholarly views on functions and algorithms
- Critically assess the relevance of theories of data storage for programming
- Develop a specialised knowledge of the various uses and forms of lists in programming, including 2D lists.
- Develop a critical understanding of product design and development
- Acquire knowledge of various methods for storing data in modern programming languages
- Solve problems and be prepared to take leadership decisions related to programming concepts such as lists, sets, tuples, dictionaries, and strings.
- Creatively apply various visual, written, and code-based methods for manipulating tuples, strings, lists, and similar structures
- 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 of computer programming and data management
- Apply a professional and scholarly approach to research problems pertaining to functions and data types.
- Act autonomously in identifying research problems and solutions related to data storage.
- Demonstrate self-direction in research and originality in handling data in lists.
- Create synthetic contextualised discussions of key issues related to data storage and how popular programming languages handle this.
- Efficiently manage interdisciplinary issues that arise in connection to choosing the best data type for a particular programming need.
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
Teachers





Intended learning outcomes
- Develop a critical understanding 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 evaluate diverse scholarly views on advanced visualisation strategies
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- 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
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
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 Fetch 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript
Propose appropriate solutions to complex and changing problems pertaining to JavaScript
Teachers





Intended learning outcomes
- Develop a critical knowledge of JavaScript
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant
- Critically evaluate diverse scholarly views on JavaScript
- Develop a specialised knowledge of key strategies related to JavaScript
- Autonomously gather material and organise into a coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to JavaScript tools
- Creatively apply JavaScript concepts to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript
- Create synthetic contextualised discussions of key issues related to JavaScript
- Apply a professional and scholarly approach to research problems pertaining to JavaScript
- Efficiently manage interdisciplinary issues that arise in connection to JavaScript
- Demonstrate self-direction in research and originality in solutions developed for JavaScript
- Act autonomously in identifying research problems and solutions related to JavaScript
About
This course is aimed at equipping students with skills to architect the high level design (a.k.a. system design) of software and data systems. We start with some of the good to have properties of large complex software systems like scalability, reliability, availability, consistency etc. The module teaches various patterns and design choices we have to satisfy each of these good to have properties. We then go on to understand key components of system design like load-balancers, microservices, reverse-proxies, content-delivery networks etc. Students learn how each of them work internally along with real world implementations of each. We study various NoSQL data stores, their internal architectures and where to use which one with real-world examples. Students also learn popular data encoding schemes like XML and JSON. We learn how to build data pipelines using batch and stream processing systems. We also work on multiple real world cases on architecting on the cloud using popular open-source libraries and tools. Students will study design documents and high-level-design of popular internet applications and services like video-conferencing, recommender-systems, peer-to-peer chat, voice-assistants etc.
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to System Design
- Critically evaluate diverse scholarly views on System Design
- Develop a critical knowledge of 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to System Design solutions
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply system design components to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of System Design
- Apply a professional and scholarly approach to research problems pertaining to System Design
- Act autonomously in identifying research problems and solutions related to System Design
- Efficiently manage interdisciplinary issues that arise in connection to System Design
- Create synthetic contextualised discussions of key issues related to System Design
- Demonstrate self-direction in research and originality in solutions developed for System Design
About
The subject is designed to provide students with a profound understanding of the architectural and engineering aspects of security. This subject focuses on the principles of secure design and the selection of control measures based on system requirements, preparing students to excel in the field of cybersecurity.
The subject delves deep into the core principles of secure design, threat modelling, and vulnerability management. It emphasizes the significance of designing systems that are resilient to threats and vulnerabilities. Through practical exercises and real-world case studies, students will gain insights into modelling threats and vulnerabilities and applying security design principles, including the principle of least privilege, defence in depth, and secure defaults.
Furthermore, the subject explores security models and their significance in the context of cybersecurity. Students will become familiar with various security models, including the Bell-LaPadula model, the Biba model, and the Star Model, and learn how to apply these models to the design and implementation of secure systems. This module enables students to appreciate the role of security models in achieving comprehensive cybersecurity. A critical aspect of the subject is the selection of control measures to mitigate threats and vulnerabilities effectively. Students will gain expertise in analyzing system security requirements, mapping them to suitable control measures, and ensuring that systems align with industry standards and regulatory compliance.
The subject also addresses the critical aspects of vulnerability assessment and remediation. Students will explore various methods and tools for assessing vulnerabilities, identifying and classifying them, and implementing measures to remediate vulnerabilities in different types of systems.
Furthermore, the subject examines security in a wide array of systems, including client systems, server systems, databases, cryptographic systems, industrial control systems (ICS), cloud systems (SaaS, IaaS, PaaS), distributed systems, Internet of Things (IoT), microservices, containerization, serverless computing, embedded systems, high-performance computing (HPC), edge computing, virtualized systems, and more. Students will gain a comprehensive understanding of security considerations and best practices in each of these system types.
By the conclusion of this subject, students will have acquired an advanced skill set and knowledge base in the domain of security architecture and engineering, enabling them to design secure systems, select appropriate control measures, and manage vulnerabilities effectively in diverse system environments.
Teachers


Intended learning outcomes
- Understand security considerations and best practices across a wide range of system types.
- Application of security models to design and implement secure systems
- Deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Mastery of skills in vulnerability assessment, identification and classification, and implementation of effective remediation measures in various types of systems.
- Experience in analyzing system security requirements and selecting appropriate controls to minimize threats and vulnerabilities.
- Apply security models to design and implement secure systems.
- Demonstrate a deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Gain expertise in analyzing system security requirements and selecting appropriate control measures to mitigate threats and vulnerabilities.
- Be well-versed in security considerations and best practices in a wide range of system types.
- Possess the skills to assess vulnerabilities, identify and classify them, and implement effective remediation measures in different types of systems.
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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
About
The course is designed to provide students with a comprehensive understanding of fundamental security operations and effective incident management in information systems. It aims to develop skills in applying proactive and reactive security measures to ensure information system security.
The course encompasses a range of modules, starting with understanding and compliance investigations, covering the collection and processing of digital evidence, and exploring methods and tactics in digital forensics, including artifact examination.
Students dive into logging and activity monitoring, addressing intrusion detection and prevention systems, Security Information and Event Management (SIEM), constant log monitoring, data leak monitoring, and user and entity behavior analytics (UEBA).
The course also focuses on configuration management, emphasizing automation processes for configuration management, including baselining and provisioning.
Later in the course students study fundamental security operations concepts, such as the principle of least privilege, role separation, privileged account management, task rotation, and Service Level Agreement (SLA) management.
Students also delve into resource protection, covering media management and data protection methods. The course addresses incident management, including detection, response, mitigation, reporting, and recovery from incidents.
Moreover, the course encompasses a broad range of proactive and reactive measures, including firewall usage, intrusion detection and prevention systems, vulnerability and patch management, change management processes, disaster recovery planning, recovery strategy implementation, recovery plan testing, business continuity exercise planning, physical security, and personnel security practices.
By the end of the course, students will have gained the knowledge and skills to effectively manage security operations, respond to incidents, and proactively safeguard information systems.
Teachers



Intended learning outcomes
- Understand and apply automation processes for configuration management, including baselining and provisioning
- Develop practical skills related to disaster recovery planning and implementation
- Critically evaluate diverse scholarly views on security operations and incident response
- Develop a comprehensive understanding of digital forensics methodologies, tools, and tactics, including the examination of artifacts from computers, networks, and mobile devices
- Autonomously gather material and organize 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 of vulnerability and patch management
- Implement logging and activity monitoring
- Create synthetic contextualised discussions of key issues related to auditing security measures
- Efficiently manage interdisciplinary issues that arise in connection to user and entity behaviour analytics
- Apply a professional and scholarly approach to implementing various proactive and reactive security measures
- Solve problems and be prepared to take leadership decisions related to the management of media and the protection of data using various data protection methods
- Act autonomously in managing incidents, from detection and response to mitigation, reporting, and recovery
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
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


Intended learning outcomes
- Develop a critical understanding of modern computational applications
- Critically evaluate diverse scholarly views on database management
- Acquire knowledge of various methods for version control
- Develop a specialised knowledge of key strategies for designing well-architected information management systems
- Critically assess the relevance of theories of web security for cloud deployment
- Apply an in-depth domain-specific knowledge and understanding of system design and implementation in business
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various visual and written methods for proposing a technical solution to a real-world problem to other technical and managerial-level audiences, and for documenting that solution
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create synthetic contextualised discussions of key issues related to real-world software design, implementation, and deployment situations.
- 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
- Demonstrate self-direction in research and originality in solutions developed for robust and reliable cloud deployments
- Act autonomously in identifying research problems and solutions related to modern computational tools and methods.
- Solve problems and be prepared to take leadership decisions related to developing and deploying cloud-oriented software solutions.
About
Human-computer interaction (HCI) is a field of study concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. This course surveys the scope of issues and foundations of the HCI field: cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods and techniques, and evaluation. This course will focus on the users and their tasks.
This course presents: first, an overview and introduction to the field of human-computer interaction and usability; second, an introduction to the methods to elicit user requirements and structure the design process to be user centred; and third, the course will emphasize the importance of paying attention to user needs and cognitive functioning in order to design usable systems. The course will also introduce visual design, heuristics, interaction methods and devices and specific interaction paradigms. This course provides practical knowledge of how to use well-known and established HCI design methods as well as theoretical knowledge of how to think and reason about them during the design process. In this course we will approach interaction design from the perspective of user-centered design. Interaction design techniques will be presented to explore and refine the behavior of products and services.
Key Intended Learning Outcomes:
Gain a thorough understanding of the fundamental aspects of Human-Computer Interaction (HCI), including cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods, and evaluation.
Acquire the capability to apply HCI principles in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach that considers cognitive aspects and various interaction styles.
Propose appropriate solutions to prioritize users and their tasks, fostering a user-centric design approach essential for creating effective and user-friendly interactive systems in diverse computing environments.
Teachers



Intended learning outcomes
- Demonstrate a comprehensive understanding of the fundamental concepts and theories underpinning Human-Computer Interaction (HCI).
- Critically analyze and evaluate HCI principles and methodologies to inform design decisions in interactive computing systems.
- Identify and assess emerging trends and challenges in HCI research and practice, demonstrating awareness of the evolving landscape of human-computer interaction.
- Utilize appropriate techniques for user and task analysis to inform the design process and prioritize user needs and preferences.
- Apply HCI principles and methodologies effectively in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach.
- Demonstrate proficiency in employing various interaction design methods and evaluation techniques to create and assess user-friendly interactive systems across diverse computing environments.
- Propose and justify user-centric design solutions that prioritize users and their tasks, fostering effective and engaging interactive experiences.
- Collaborate effectively within multidisciplinary teams to integrate HCI principles into the development lifecycle of interactive computing systems.
- Communicate complex HCI concepts, design decisions, and evaluation findings clearly and persuasively to diverse stakeholders, including technical and non-technical audiences.
About
This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn 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. We then go on to learn stylesheets based on CSS 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 CSS. 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 appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development
Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development
Teachers





Intended learning outcomes
- Develop a critical knowledge of Front end UI/UX development
- Critically evaluate diverse scholarly views on Front end UI/UX development
- Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
- Develop a specialised knowledge of key strategies related to Front end UI/UX development
- Critically assess the relevance of theories for business applications in the domain of technology
- Apply an in-depth domain-specific knowledge and understanding to technology
- 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
- Autonomously gather material and organise into a coherent problem sets or presentation
- 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
- Apply a professional and scholarly approach to research problems pertaining to 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
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
About
Advanced Python Programming builds on introductory programming courses to illustrate object-oriented programming concepts, database design in Python, and the basics of Machine Learning with Python libraries. Students will learn how to solve problems in Python, develop design patterns in Python code, develop internet applications with Python, and collaborate with other students to implement projects. The course introduces advanced features such as decorators and generators, as well as a thorough exploration of the Python development environment.
This course is designed to prepare students for an entry-level developer position.
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on developing design patterns in Python
- Develop a specialized knowledge of mathematically-oriented Python libraries such as NumPy, SciPy, and Pandas beyond an introductory level
- Acquire knowledge of various methods for using Python libraries for machine learning
- Develop a critical understanding of programming in Python for object-oriented design
- Critically assess the relevance of theories of statistical analysis in the realm of software engineering
- Creatively apply various visual and written methods for developing meaningful visualisations of mathematical data sets
- 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 data analysis in business
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Demonstrate self-direction in research and originality in solutions developed for real-world problems using Python libraries and algorithms
- Solve problems and be prepared to take leadership decisions related to the implementation of web applications in Python
- Create synthetic contextualised discussions of key issues related to problem-solving in Python
- Act autonomously in identifying research problems and solutions related to the developing in Python
- Apply a professional and scholarly approach to research problems pertaining to object-oriented programming in Python
- Efficiently manage interdisciplinary issues that arise in connection to translating mathematical ideas and solutions into code
About
User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.
Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.
The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.
By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.
Teachers





Intended learning outcomes
- Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
- Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
- Gain a deep understanding of the design thinking process and its application in solving complex design problems
- Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
- Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
- Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
- Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
- Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
- Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
- Apply knowledge of information architecture principles to structure and organize digital content effectively
- Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
- Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
- Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
- Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
- Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
About
This web design course is designed to provide students with the skills and knowledge necessary to create attractive, functional, and effective websites, including landing pages and company websites. The course covers a range of topics, including the fundamentals of web design such as finding references, researching competitors, basic research, wireframing, prototyping, grids, composition, typography, color, raster and vector graphics, user interface patterns, and adaptation.
Students will learn the basic laws of UX and the main user behavior patterns on the website. Students will be introduced to tools such as Figma, FigJam, Protopie, which will be used to create wireframes, layouts, and prototypes. The course will also include preparation of a case for publication on Behance, which will provide an opportunity to demonstrate skills to employers.
Key Intended Learning Outcomes:
Demonstrate proficiency in using Figma to create wireframes, prototypes, and high-fidelity designs.
Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
Apply critical thinking and problem-solving skills to analyze and address web design-related issues and effectively communicate solutions to clients and stakeholders.
Teachers





Intended learning outcomes
- Demonstrate comprehensive understanding of the fundamental principles and theories of web design.
- Apply user-centered design principles and methodologies such as user research, developing personas, and prototyping to create intuitive and user-friendly web interfaces.
- Acquire In-depth knowledge of industry-standard web design tools, software, and technologies, such as HTML5, CSS3, JavaScript, responsive frameworks, and tools such as Adobe Creative Suite or Figma.
- Implement responsive web design techniques to create websites that adapt and provide optimal user experience across different devices and screen sizes.
- Comprehend web standards, cross-browser compatibility, and validation techniques.
- Critically evaluate how to protect user data, implement secure communication protocols, and address potential vulnerabilities
- Assess the principles of organising and structuring information for effective website navigation and user experience
- Understand the concepts and techniques of responsive web design.
- Demonstrate solid understanding of user-centered design principles and methodologies, including the importance of user research, personas, wireframing, and prototyping to create user-friendly websites.
- Develop skills in optimising website assets, reducing load times, implementing caching and compression, and improving overall website performance.
- Analyze and evaluate different web design principles, including wireframing, prototyping, composition, typography, color, and graphics, to create functional and visually attractive websites.
- Develop problem-solving skills to identify and address design and technical challenges that may arise during web development.
- Demonstrate an ability to stay updated with emerging trends, technologies, and best practices in web design by developing skills in continuous learning, self-directed study, and adaptation.
- Develop skills in incorporating accessibility guidelines such as the Web Content Accessibility Gudielines (WCAG) into website design.
- Collaborate effectively with team members, stakeholders, and clients involved in web design projects.
- Develop skills in effective communication, project management, and teamwork to deliver high-quality web design solutions.
- Adhere to ethical and professional standards in web design, including respecting intellectual property rights, and maintaining user privacy and data security.
- Demonstrate proficiency in using industry-standard web design tools, software, and technologies.
- Critically analyze and apply web design principles such as layout, typography, color theory, visual hierarchy, and composition in designing effective and aesthetically pleasing websites.
- Critically evaluate and, when relevant, incorporate current trends and emerging technologies in web design.
- Optimise website assets, reduce load times, and improve overall website performance.
- Create websites that provide optimal user experiences across a range of devices.
- Apply accessibility techniques to ensure equal access to information and functionality.
- Effectively leverage industry-standard tools, software, and technology to create visually engaging, interactive web interfaces.
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development
Propose appropriate solutions to complex and changing problems pertaining to Back End Development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Back End Development
- Critically evaluate diverse scholarly views on Back End Development
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of 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
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.
The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.
The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.
Key Intended Learning Outcomes:
Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization
Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code
Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques
Develop asynchronous functions and handle errors effectively for CRUD operations
Teachers





Intended learning outcomes
- Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
- Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
- Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
- Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
- Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
- Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
- Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
- Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
- Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
- Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
- Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
- Apply strategies to optimise the performance of JavaScript code and web applications.
- Develop asynchronous functions and handle errors effectively for CRUD operations.
- Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
- Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
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 one of the most popular and advanced frameworks/libraries in use – React.js. 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications
Propose appropriate solutions to complex and changing problems pertaining to front end development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to front end development
- Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
- Critically evaluate diverse scholarly views on front end development
- Develop a critical knowledge of front end developmen
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Apply an in-depth domain-specific knowledge and understanding to front end development solutions
- 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
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
- Act autonomously in identifying research problems and solutions related to front end development
About
Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.
Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.
Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.
In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.
Teachers





Intended learning outcomes
- Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
- Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
- Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
- Gain knowledge of security and performance considerations specific to mobile app development
- Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
- Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
- Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
- Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
- Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
- Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
- Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
- Gain proficiency in integrating mobile apps with backend services and API
- Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
- Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
- Apply the principles of cross-platform mobile app design and development with frameworks like React Native
About
This course is designed to provide a comprehensive understanding of Quality Assurance (QA) in software development. The course will cover the fundamental principles of testing and the different types of testing that are conducted at various levels of the software development life cycle. Students will also learn about the different testing techniques used in QA, such as black box, white box, and experience-based testing.
The course will also introduce students to various testing tools and methodologies that are commonly used in industry, including test management tools, SQL databases, Postman, and mobile testing. Students will learn about web technologies and the client-server architecture, as well as front-end and back-end development. The course will cover the basics of HTML/CSS, modern application architecture, and working with command-line tools like CI/CD and Git.
Throughout the course, students will develop a solid understanding of QA and its role in software development. They will learn how to develop test documentation and will gain practical experience in implementing various testing strategies. They will also learn how to analyze and critique different QA methodologies and propose appropriate solutions to complex and changing problems in the context of data structures. Students will be able to apply their understanding of web technologies and modern application architecture to design and test web applications, and will be well-equipped to pursue careers in software development or QA.
Teachers





Intended learning outcomes
- Develop knowledge of test design and execution techniques, including test case design, test script development, and test execution planning.
- Develop a comprehensive knowledge and understanding of software testing concepts, techniques, and methodologies, including for example functional testing, performance testing, security testing, and usability testing
- Learn how to interpret and present quality data effectively through reports, dashboards, and visualizations
- Acquire in-depth knowledge of software quality assurance principles, best practices, and industry standards
- Assess how to measure and evaluate software quality using relevant metrics, such as defect density, test coverage, and code complexity
- Acquire knowledge of test management tools, test automation frameworks, bug tracking systems, and performance testing tools
- Apply various testing techniques, such as black-box testing, white-box testing, and regression testing, to verify software functionality, performance, and security.
- Apply knowledge of troubleshooting and debugging techniques to identify the root causes of software defects.
- Develop the ability to select and configure appropriate test automation frameworks and tools, design and implement automated test scripts, and execute automated test suites to increase testing efficiency and coverage.
- Analyze and interpret test results and reports to identify software defects, inconsistencies, and areas for improvement
- Demonstrate the ability to adapt QA processes to iterative development cycles, collaborate with cross-functional teams, participate in sprint planning, and ensure quality throughout continuous integration and continuous delivery (CI/CD) pipelines
- Apply understanding of web technologies and modern application architecture to design and test web applications
- Develop and implement effective test documentation for software development project
- Acquire proficiency in using defect tracking tools, categorizing defects, and collaborating with development teams for timely resolution.
- Comprehend the role of QA in iterative development cycles, continuous integration, and continuous delivery
- Gain proficiency in applying industry best practices and standards to ensure the quality, reliability, and effectiveness of software applications
- Acquire proficiency in collaborating with cross-functional teams, participating in sprint planning, and ensuring quality throughout rapid release cycles
- Develop skills in selecting, implementing, and maintaining appropriate test automation frameworks and tools
- Utilize various testing tools and technologies to design, implement, and manage QA processes
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 Fetch 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript
Propose appropriate solutions to complex and changing problems pertaining to JavaScript
Teachers





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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
About
This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn 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. We then go on to learn stylesheets based on CSS 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 CSS. 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 appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development
Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development
Teachers





Intended learning outcomes
- Develop a critical knowledge of Front end UI/UX development
- Critically evaluate diverse scholarly views on Front end UI/UX development
- Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
- Develop a specialised knowledge of key strategies related to Front end UI/UX development
- Critically assess the relevance of theories for business applications in the domain of technology
- Apply an in-depth domain-specific knowledge and understanding to technology
- 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
- Autonomously gather material and organise into a coherent problem sets or presentation
- 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
- Apply a professional and scholarly approach to research problems pertaining to 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
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
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 as how programs interact with these. Students begin with mapping data storage problems 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 synchronization 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for evaluating the design and use of relational databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle process prioritization in an operating system
Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development for specific operating systems and network environments
Teachers





Intended learning outcomes
- 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
- Develop a specialised knowledge of optimising relational database performance in low-latency environments
- Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols
- Critically assess the relevance of theories of database design for business applications in the domain of software engineering
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints
- Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering
- Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems
- Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments
- Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks
- Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks
- Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems
- Act autonomously in identifying research problems and solutions related to the real-world application of relational databases
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
About
Data is the fuel driving all major organisations. This course helps you understand how to process data at scale. From understanding the fundamentals of distributed processing to designing data warehousing and writing ETL (Extract Transform Load) pipelines to process batch and streaming data. Students will learn a comprehensive view of the complete Data Engineering lifecycle.
Teachers




Intended learning outcomes
- Develop a specialised knowledge of standard tools for data processing, such as Apache Kafka, Airflow, and Spark (with PySpark), and the Hadoop Ecosystem
- Develop a critical understanding of data engineering
- Critically evaluate diverse scholarly views on best practices in developing data-intensive applications
- Critically assess the relevance of theories of data modeling for efficient pipeline creation
- Acquire knowledge of various methods for warehousing data
- Creatively apply various visual and written methods for dashboarding data with Grafana/Tableau
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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.
- Apply a professional and scholarly approach to research problems pertaining to data warehousing and modeling.
- 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.
- Demonstrate self-direction in research and originality in creating advanced SQL queries.
About
This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.
Teachers




Intended learning outcomes
- Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet
- Critically evaluate diverse scholarly views on Deep Learning for Computer Vision
- Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for Computer Vision
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques
- Autonomously gather material and organise it into coherent problem sets or presentation
- Creatively apply computer vision techniques to develop critical and original solutions for computational problems
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision
- Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision
- 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
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of numerical programming in Python
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle numerical programming in Python
Propose appropriate solutions to complex and changing problems pertaining to numerical programming in Python
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Numerical programming in Python
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Numerical programming in Python
- Critically evaluate diverse scholarly views on Numerical programming in Python
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python
- Autonomously gather material and organize it into a coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create new solutions that are critical to solving computational problems through creatively applying code writing
- Act autonomously in identifying research problems and solutions 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
- 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
- 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
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
Teachers





Intended learning outcomes
- Develop a critical understanding 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 evaluate diverse scholarly views on advanced visualisation strategies
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- 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
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers

Intended learning outcomes
- 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 understanding of product design and development
- 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 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.
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- 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
- Act autonomously in identifying research problems and solutions related to product analytics
- 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.
About
Advanced Python Programming builds on introductory programming courses to illustrate object-oriented programming concepts, database design in Python, and the basics of Machine Learning with Python libraries. Students will learn how to solve problems in Python, develop design patterns in Python code, develop internet applications with Python, and collaborate with other students to implement projects. The course introduces advanced features such as decorators and generators, as well as a thorough exploration of the Python development environment.
This course is designed to prepare students for an entry-level developer position.
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on developing design patterns in Python
- Develop a specialized knowledge of mathematically-oriented Python libraries such as NumPy, SciPy, and Pandas beyond an introductory level
- Acquire knowledge of various methods for using Python libraries for machine learning
- Develop a critical understanding of programming in Python for object-oriented design
- Critically assess the relevance of theories of statistical analysis in the realm of software engineering
- Creatively apply various visual and written methods for developing meaningful visualisations of mathematical data sets
- 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 data analysis in business
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Demonstrate self-direction in research and originality in solutions developed for real-world problems using Python libraries and algorithms
- Solve problems and be prepared to take leadership decisions related to the implementation of web applications in Python
- Create synthetic contextualised discussions of key issues related to problem-solving in Python
- Act autonomously in identifying research problems and solutions related to the developing in Python
- Apply a professional and scholarly approach to research problems pertaining to object-oriented programming in Python
- Efficiently manage interdisciplinary issues that arise in connection to translating mathematical ideas and solutions into code
About
Initially, the course will cover the basics of cryptography, principles of access control, identity management, and assurance strategies as theyof apply to IT applications and Cloud infrastructure services. The course will then explore the utilization of cryptographic algorithms, mechanisms, and technologies for securing data during transmission, storage, and usage. It will also address key management operations, the implementation of Private Blockchain infrastructures, integration of Public-Key Infrastructures (PKI) and Certificate Authorities (CA), identity verification with digital signatures, hardware-assisted keystore/root of trust deployment, directory services creation, single sign-on authentication setup, access control policy enforcement for IT resources, cryptographic solutions for IoT hardware, audit trail monitoring and recording, and compliance with industry and regulatory requirements.
Furthermore, the course will discuss practical cryptography and identity management techniques, and how to implement Zero-Trust Architectures (ZTA) in Cloud and IoT infrastructures using standard services and protocols such as TLS, IPSec/IKE, PKCS#11, LDAP, OCSP, SAML, OAuth2, OpenID Connect (OIDC). It will also emphasize adhering to data protection and identity management guidelines outlined by NIST, ENISA, and the Cloud Security Alliance (CSA).
This course provides a ground-up coverage of the high-level concepts, applied mechanisms, architecture, design, and real-world implementation practices of using cryptography and identity management solutions as they apply to cloud-hosted applications, services, and IoT devices.
Teachers



Intended learning outcomes
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on quantum cryptography
- Develop a comprehensive understanding of the legal and ethical dimensions of securing data in different contexts
- Assess, analyze, and critique the fundamental principles and strategies related to cryptography, access control, and identity management in IT and Cloud environments
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Compare and evaluate the effectiveness of cryptographic algorithms and mechanisms for securing data in different contexts, and understand their real-world applications
- Propose appropriate solutions to complex and changing problems pertaining to privacy and cryptography
- 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 management techniques related to cryptography
- Efficiently manage interdisciplinary issues that arise in connection to cryptography
- Apply a professional and scholarly approach to research problems pertaining to cryptography
- Act autonomously in identifying research problems and solutions related to cryptography
- Propose practical solutions to challenges such as cryptographic key management, Private Blockchain deployment, identity verification, and access control policy enforcement in IT and IoT settings, while aligning with industry standards and compliance guidelines
- Create synthetic contextualised discussions of key issues related to cryptography
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to cryptography
- Solve problems and be prepared to take leadership decisions related to cryptography
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 as how programs interact with these. Students begin with mapping data storage problems 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 synchronization 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for evaluating the design and use of relational databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle process prioritization in an operating system
Propose appropriate solutions to complex and changing problems pertaining to problem-solving in software development for specific operating systems and network environments
Teachers





Intended learning outcomes
- 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
- Develop a specialised knowledge of optimising relational database performance in low-latency environments
- Develop a critical understanding of relational database strategies, process and memory management in operating systems, and computer network protocols
- Critically assess the relevance of theories of database design for business applications in the domain of software engineering
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various programming methods to most efficiently design databases that perform well under specified constraints
- Apply an in-depth domain-specific knowledge and understanding of the importance of relational databases in modern software engineering
- Efficiently manage interdisciplinary issues that arise in connection to process management in operating systems
- Apply a professional and scholarly approach to research problems pertaining to the design of databases in low-latency environments
- Create synthetic contextualised discussions of key issues related to the optimal design and use of databases, operating systems, and computer networks
- Demonstrate self-direction in research and originality in solutions developed for optimising performance of computer networks
- Solve problems and be prepared to take leadership decisions related to relational database design to solve computational and business problems
- Act autonomously in identifying research problems and solutions related to the real-world application of relational databases
About
The Foundations of Cyber Security course is designed to provide students, both technical and non-technical, with a comprehensive introduction to the field of cybersecurity. In an increasingly digital world, the importance of securing data, systems, and networks is paramount. This course equips students with the knowledge and skills to protect their own information and recognize the importance of cybersecurity in professional settings. Cybersecurity is presented not as an absolute concept, but as a dynamic field with ever-evolving threats and countermeasures, where decisions involve trade-offs between security and usability. Real-world case studies and examples are used to illustrate the practical applications of cybersecurity principles.
Teachers




Intended learning outcomes
- Critically evaluate diverse scholarly views on security risk analysis and management
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of the legal and ethical dimensions of cybersecurity, including knowledge of cyber law, the implications of cybercrime and cyberwarfare, and an awareness of international legal frameworks
- Develop practical skills to secure personal accounts and data.
- Develop expertise in system and software security, including securing operating systems, software patches, practicing secure coding, and conducting vulnerability scanning
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to network and cloud security
- Apply an in-depth domain-specific knowledge and understanding of the importance of the legal and ethical aspects of cybersecurity
- Propose appropriate solutions to complex and changing problems pertaining to system and software security
- 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
- Efficiently manage interdisciplinary issues that arise in connection to cybersecurity
- Apply a professional and scholarly approach to research problems pertaining to cybersecurity
- Act autonomously in identifying research problems and solutions related to system and software security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network and cloud security
- Solve problems and be prepared to take leadership decisions related to the implementation of secure account and data management
- Create synthetic contextualised discussions of key issues related to cybersecurity
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
The course is designed to provide students with a profound understanding of identity and access management (IAM) and its vital role in safeguarding information systems. It also equips students with practical skills for managing both physical and logical access to critical assets. IAM is an essential component of modern organizations' security and access management strategies, and this course empowers students with the knowledge and abilities needed to excel in this domain.
The course begins by exploring the management of physical and logical access to assets. Students will delve into the fundamental concepts of access control, its significance, and the differentiation between physical and logical access control mechanisms.
As the course progresses, students will acquire in-depth knowledge of identity and authentication management. This encompasses the implementation of identity management (IdM) systems, multi-factor authentication (MFA), and session management. They will also understand the processes of registration and identity establishment, including user registration and identity verification. The course further delves into federated identity management, addressing its implementation in cloud, on-premises, and hybrid environments.
Additionally, students will learn about identity data management, emphasizing systems for managing identity data and the principles of identity data management. The management of single sign-on (SSO) and just-in-time (JIT) authentication will be covered as well. The course goes on to elucidate the mechanisms of authorization management. This includes the implementation of access control models, such as Role-Based Access Control (RBAC), Rule-Based Access Control, Mandatory Access Control (MAC), and others. Furthermore, students will gain insights into risk-oriented access control implementation.
Finally, the course delves into the identity and access lifecycle management. This involves access review processes, the analysis of access to accounts (user, system, and service), the provisioning and
de-provisioning of access rights, role definition, and the minimization of privilege escalation.
In conclusion, students will learn about authentication systems, including OpenID Connect (OIDC)/Open Authorization (OAuth), Security Assertion Markup Language (SAML), Kerberos, RADIUS/TACACS+, and their practical implementation. These authentication systems play a crucial role in establishing secure access control in modern information systems.
Teachers




Intended learning outcomes
- Develop expertise in addressing security challenges related to authentication systems
- Develop a comprehensive understanding of the implementation of access control models
- Critically evaluate diverse scholarly views on identity and access management
- Develop practical skills related to identity and access management in cybersecurity
- Apply an in-depth domain-specific knowledge and understanding of identity data management
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Implement authentication systems and understand their practical application in securing access control
- Implement identity management, multi-factor authentication (MFA), and session management
- Autonomously gather material and organize it into a coherent presentation or essay
- Analyze and manage access to accounts, including provisioning, de-provisioning, role definition, and privilege escalation minimization
- Create synthetic contextualised discussions of key issues related to identity and access management
- Solve problems and be prepared to take leadership decisions related to the implementation of security and access management strategies
- Efficiently manage interdisciplinary issues that arise in connection to identity and access management
- Apply a professional and scholarly approach to research problems pertaining to access control
- Act autonomously in identifying research problems and solutions related to identity and access lifecycle management
- Demonstrate a deep understanding of identity and access management (IAM) principles and their application in securing information systems
About
This course is designed to provide students with a comprehensive understanding of asset management principles and data security strategies, preparing them to effectively identify, classify, and manage critical assets and sensitive information within the cybersecurity landscape.
The course commences with an exploration of the foundational aspects of asset management. Students will gain insight into the pivotal role of assets in the realm of cybersecurity, as they form the building blocks upon which robust security strategies are constructed. Understanding the lifecycle of assets, whether tangible or intangible, becomes a key focus, emphasizing the need for meticulous control and responsible ownership. Simultaneously, the course delves into the realm of data security.
The significance of safeguarding data cannot be overstated, as data is often an organization's most valuable asset. Students will grasp the core principles of data security, equipping them with the knowledge required to ensure the confidentiality, integrity, and availability of data. Emphasis will be placed on mitigating risks and protecting data from breaches, ensuring compliance with industry standards and regulations.
As the course progresses, students will delve into the identification and classification of information and assets. They will learn the intricacies of data classification, including the methods for labeling and categorizing data based on its sensitivity.
Additionally, they will explore techniques for the identification of assets, a crucial aspect of effective asset management, ensuring that organizations are fully aware of their resource landscape. Furthermore, the course covers the establishment of requirements for managing assets and information. Students will learn how to define the specific needs and prerequisites for asset management, which are essential for developing effective policies and procedures. These policies and procedures are the cornerstone of organized asset management and data security.
A critical aspect of the course is the exploration of data lifecycle management. Students will gain an understanding of the roles and responsibilities of data stakeholders, including owners, controllers, keepers, processors, and users. They will also be exposed to the full lifecycle of data, including its collection, storage, maintenance, retention, and secure disposal, ensuring that data is adequately protected throughout its existence.
By the end of the course, students will be well-equipped to tackle the challenges of asset management and data security in the complex landscape of modern cybersecurity. They will have the knowledge and practical skills needed to identify, classify, and manage assets and information effectively, ultimately contributing to the enhancement of an organization's security posture.
Teachers




Intended learning outcomes
- Understand the roles of data stakeholders and the entire lifecycle of data, from collection to disposal
- Develop practical skills to secure personal accounts and data.
- Critically evaluate diverse scholarly views on asset management and data security
- Assess, analyse, and criticise the various strategies for ensuring secure account and data management
- Develop a comprehensive understanding of fundamental concepts of asset management and its significance in the realm of cybersecurity
- Compare and evaluate the different methods and procedures for the identification and classification of data and assets, including the determination of confidentiality levels
- Propose appropriate solutions to complex and changing problems pertaining to asset management and data security
- 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 of the importance of the legal and ethical aspects of asset management
- Solve problems and be prepared to take leadership decisions related to asset management and data security
- Apply a professional and scholarly approach to research problems pertaining to asset management and data security
- Define and establish requirements for asset management, and develop policies and procedures to ensure effective management
- Create synthetic contextualised discussions of key issues related to asset management and data security
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to asset management and data security
- Act autonomously in identifying research problems and solutions related to asset management and data security
- Efficiently manage interdisciplinary issues that arise in connection to asset management and data security
About
The course equips students with a deep understanding of network security and communication protocols. This course goes beyond the surface and provides practical skills for assessing and implementing secure network architecture designs. It's designed to instill essential knowledge and skills required to navigate the intricacies of network security and communication protocols, making it a critical component of contemporary cybersecurity education.
The course begins by establishing the fundamentals of secure network design. Students will explore the OSI and TCP/IP models, delving into the principles and architecture of TCP/IP and examining the pivotal role of security at different layers of these models.
Moreover, students will be introduced to secure network protocols, focusing on the principles and practical implementation of secure protocols, including IPSec, IPv4, and IPv6. As the course progresses, students will delve into the security intricacies embedded within multilayered protocols. They'll learn about the importance of multilayered protocols and gain the knowledge needed to address challenges presented by these protocols. The course also covers micro-segmentation in networks, including virtual and software-defined networks (SDN) and VXLAN, demonstrating how segmentation enhances security.
Additionally, students will explore the security aspects of wireless and mobile networks, such as Wi-Fi, Li-Fi, Zigbee, and satellite networks, along with the security of cellular networks (4G and 5G). The role of security in content distribution networks (CDN) will also be emphasized. Furthermore, the course delves into the realm of secure network components. Students will discover how to safeguard network hardware components, including power redundancy and warranties. Network access control (NAC) tools are introduced, providing insights into their implementation and their role in network access security. Endpoint security measures will be explored to protect devices and software, ensuring a secure connection to the network.
The course concludes by addressing the implementation of secure communication channels. It covers secure voice communication and multimedia interaction, focusing on the security of voice communication and secure multimedia communication principles and methods. Remote access and data transmission security are also explored, including the protection of remote network access and secure data transmission. Virtualized networks and security in virtualized networks and cloud environments are discussed, along with securing network connections with external parties and domains.
By the end of this course, students will possess a comprehensive understanding of network security and communication protocols, along with the practical skills needed to assess and implement secure network designs across various domains.
Teachers


Intended learning outcomes
- Develop a comprehensive understanding of the legal and ethical dimensions of network security and communication protocols
- Develop practical skills related to network security and communication protocols
- Critically evaluate diverse scholarly views on network security and communication protocols
- Develop expertise in addressing security challenges presented by multilayered protocols and micro-segmentation, ensuring robust network security
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to safeguard network hardware components, implement network access control (NAC), and enhance endpoint security for secure network access
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding of network security principles and their application in diverse network environments
- Compare and evaluate the different methodologies recommended to select and implement secure network protocols, including IPSec, IPv4, and IPv6, to enhance network security
- Create synthetic contextualised discussions of key issues related to network security and communication protocols
- Efficiently manage interdisciplinary issues that arise in connection to network security and communication protocols
- Demonstrate the ability to establish secure voice communication, multimedia interaction, and secure data transmission in various network contexts
- Act autonomously in identifying research problems and solutions related to network security and communication protocols
- Apply a professional and scholarly approach to research problems pertaining to network security and communication protocols
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network security and communication protocols
- Solve problems and be prepared to take leadership decisions related to the implementation of network security and communication protocols
About
This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.
Teachers





Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- Develop a specialised knowledge of key strategies related to cloud computing
- Develop a critical knowledge of cloud computing
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on cloud computing
- Creatively apply cloud computing 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 cloud computing services
- Autonomously gather material and organise it into coherent problems sets or presentations
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues 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
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
About
In the ever-evolving landscape of cybersecurity, managing risks and ensuring organizational resilience is of paramount importance. The "Cyber Risk and Resilience Management" course is designed to equip students with the skills and knowledge necessary for effective security and risk management in the field of information security. This course delves into the core principles and concepts of security and risk management, ensuring that students are well-prepared to address contemporary cyber threats and challenges.
The course begins with an introduction to the fundamental principles and concepts of security and risk management. It emphasizes the significance of professional ethics and codes of conduct in the field of information security. Students will explore key security concepts, including confidentiality, integrity, availability, authenticity, and non-repudiation, and learn how to apply these concepts to various scenarios and contexts.
As the course progresses, students will delve into topics such as aligning security functions with business strategy, roles and responsibilities within organizations, security management frameworks, and the importance of due care and diligence. Additionally, students will gain insights into compliance requirements, contractual, legal, industry standards, and regulatory requirements, with a particular focus on data confidentiality and protection.
This course will also cover legal and regulatory issues in cybersecurity, including cybercrimes, data breaches, licensing, intellectual property requirements, cross-border data transfer, and privacy considerations. Students will explore various types of investigations, including administrative, criminal, civil, regulatory, and industry-specific investigations.
Throughout the course, students will learn how to develop, document, and implement security policies, standards, procedures, and guidelines. They will gain an understanding of business continuity requirements, including Business Impact Analysis (BIA), and learn to develop and document business continuity plans.
Moreover, the course will provide students with the knowledge and skills to identify threats and vulnerabilities, assess and analyze risks, and respond effectively to mitigate risks. It also covers the concept of risk management by supply chain, focusing on risks associated with hardware, software, and services.
Additionally, students will explore the creation and maintenance of security awareness, education, and training programs, including methods for program delivery, content analysis, and program effectiveness assessment.
By the end of this course, students will have a solid foundation in cybersecurity risk management and resilience, enabling them to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity.
Teachers


Intended learning outcomes
- Critically evaluate diverse scholarly views on risk and resilience management
- Assess, analyze, and critique methods of security awareness, education, and training programs
- Gain proficiency in legal and regulatory aspects of cybersecurity and be able to navigate the complex landscape of cybersecurity regulations and compliance requirements
- Develop practical skills related to confidentiality, integrity, availability, authenticity, and non-repudiation
- Analyze program content, delivery methods, and assess program effectiveness, promote a culture of cybersecurity awareness and vigilance within an organization
- Apply risk management strategies to make informed decisions and implement best practices to protect organizations from cyber threats and ensure business continuity
- 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
- Be able to create, document, and implement security policies, standards, procedures, and guidelines, and contribute to the development of a resilient business continuity strategy within an organization
- Act autonomously in identifying research problems and solutions related to cyber risk management
- Solve problems and be prepared to take leadership decisions related to cyber risk management
- Create synthetic contextualised discussions of key issues related to cyber risk management
- Apply a professional and scholarly approach to research problems pertaining to cyber risk management
- Efficiently manage interdisciplinary issues that arise in connection to cyber risk management
- Demonstrate a deep understanding of the principles and concepts related to cyber risk management
About
The subject is designed to provide students with a profound understanding of the architectural and engineering aspects of security. This subject focuses on the principles of secure design and the selection of control measures based on system requirements, preparing students to excel in the field of cybersecurity.
The subject delves deep into the core principles of secure design, threat modelling, and vulnerability management. It emphasizes the significance of designing systems that are resilient to threats and vulnerabilities. Through practical exercises and real-world case studies, students will gain insights into modelling threats and vulnerabilities and applying security design principles, including the principle of least privilege, defence in depth, and secure defaults.
Furthermore, the subject explores security models and their significance in the context of cybersecurity. Students will become familiar with various security models, including the Bell-LaPadula model, the Biba model, and the Star Model, and learn how to apply these models to the design and implementation of secure systems. This module enables students to appreciate the role of security models in achieving comprehensive cybersecurity. A critical aspect of the subject is the selection of control measures to mitigate threats and vulnerabilities effectively. Students will gain expertise in analyzing system security requirements, mapping them to suitable control measures, and ensuring that systems align with industry standards and regulatory compliance.
The subject also addresses the critical aspects of vulnerability assessment and remediation. Students will explore various methods and tools for assessing vulnerabilities, identifying and classifying them, and implementing measures to remediate vulnerabilities in different types of systems.
Furthermore, the subject examines security in a wide array of systems, including client systems, server systems, databases, cryptographic systems, industrial control systems (ICS), cloud systems (SaaS, IaaS, PaaS), distributed systems, Internet of Things (IoT), microservices, containerization, serverless computing, embedded systems, high-performance computing (HPC), edge computing, virtualized systems, and more. Students will gain a comprehensive understanding of security considerations and best practices in each of these system types.
By the conclusion of this subject, students will have acquired an advanced skill set and knowledge base in the domain of security architecture and engineering, enabling them to design secure systems, select appropriate control measures, and manage vulnerabilities effectively in diverse system environments.
Teachers


Intended learning outcomes
- Understand security considerations and best practices across a wide range of system types.
- Application of security models to design and implement secure systems
- Deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Mastery of skills in vulnerability assessment, identification and classification, and implementation of effective remediation measures in various types of systems.
- Experience in analyzing system security requirements and selecting appropriate controls to minimize threats and vulnerabilities.
- Apply security models to design and implement secure systems.
- Demonstrate a deep understanding of the principles of secure design and their application in the field of cybersecurity.
- Gain expertise in analyzing system security requirements and selecting appropriate control measures to mitigate threats and vulnerabilities.
- Be well-versed in security considerations and best practices in a wide range of system types.
- Possess the skills to assess vulnerabilities, identify and classify them, and implement effective remediation measures in different types of systems.
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



Intended learning outcomes
- Acquire knowledge of various algorithmic design methods
- 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
- Develop a specialised knowledge of key strategies related to design and analysis of algorithms
- Apply an in-depth domain-specific knowledge and understanding to design and analysis of algorithms
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply various algorithmic design methods to develop critical and original solutions to computational problems
- Create synthetic contextualised discussions of key issues related to design and analysis of algorithms to provide solutions to computational problems
- 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
- Efficiently manage interdisciplinary issues that arise in connection to design and analysis of algorithms
- Apply a professional and scholarly approach to research problems pertaining to design and analysis of algorithms
- Demonstrate self-direction in research and originality in solutions developed for design and analysis of algorithms
About
This course is tailored to provide a comprehensive exploration of UX Research Methods and Usability Testing. Throughout the program, participants will engage in a structured examination of diverse research methodologies applicable to the HCI field.
The curriculum commences with an in-depth overview of the research process, emphasizing literature review techniques essential for informed exploration within the domain of human-computer interaction and design. Students will acquire a theoretical foundation and practical proficiency in qualitative, survey, and experimental research methods.
A significant portion of the course is dedicated to a project-based approach, focusing on the formal evaluation of products. This involves a meticulous examination of usability testing, encompassing goal setting, user recruitment, task and environment design, and the comprehensive development and implementation of test plans. Prerequisites for this course include a foundational understanding of human-computer interaction principles, with an additional emphasis on fostering familiarity with research methodologies.
By the course's conclusion, students will not only possess theoretical insights into the research process but will also have acquired practical skills in conducting usability testing. This includes the ability to analyze, interpret, document, and present usability test results, culminating in the formulation of meaningful recommendations for user-centered design within the HCID landscape.
Key Intended Learning Outcomes:
Develop proficiency in various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, gaining an understanding of the research process and literature review.
Gain practical experience in studying existing research, designing, and conducting HCI studies, with a focus on usability testing. This includes goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
Effectively conduct formal evaluations of products, covering crucial aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations in the context of HCID.
Teachers
Intended learning outcomes
- Evaluate the research process, including literature review, hypothesis formulation, data collection, and analysis, to effectively design and conduct HCI studies and usability testing initiatives.
- Demonstrate a comprehensive understanding of various research methods applicable to Human-Computer Interaction (HCI), including qualitative, survey, and experimental research, and the theoretical foundations underlying each method.
- Analyze existing research literature critically, identifying key findings, methodologies, and gaps in knowledge relevant to HCI research, and apply this understanding to inform research design and execution.
- Utilize software tools and platforms effectively to facilitate data collection, analysis, and visualization, enhancing efficiency and accuracy in research and usability testing activities.
- Develop practical expertise in designing and executing HCI studies and usability testing, including goal setting, user recruitment, task and environment design, test plan development, implementation, and result analysis.
- Employ appropriate data collection techniques, such as interviews, surveys, observations, and usability metrics, to gather insights into user behavior, preferences, and interactions with digital interfaces.
- Demonstrate proficiency in conducting formal evaluations of products and interfaces, covering all essential aspects such as goal setting, user recruitment, task and environment design, test plan development, result analysis, and the documentation and presentation of findings and recommendations.
- Collaborate with multidisciplinary teams to integrate research insights and usability testing outcomes into the design and development process, fostering a user-centered approach and improving the overall user experience of digital products and interfaces.
- Communicate research findings and usability testing results clearly and persuasively to diverse stakeholders, including designers, developers, and decision-makers, using appropriate visual aids, reports, and presentations in the context of Human-Computer Interaction and Design (HCID).
About
User Experience and User Interface (UX/UI) design is about understanding user needs and preferences, and creating digital products that meet those needs. Throughout this course, students will learn the fundamental skills and tools necessary to develop an effective user interface and experience.
Students will learn about the design thinking process, user personas and flows, customer journey mapping, and data visualization. They will also learn about the importance of collaboration between designers and developers, as well as how to test and iterate design.
The course covers essential topics such as Figma Pro, design system creation, mobile-first design, smart animation, and microcopy. Students will learn the process of designing from ideation to prototype creation, testing, and improvement, and understand how to work through iterations. The course includes an understanding of UX testing and its types, and working with analytics.
By the end of the course, students will have a clear understanding of how to create digital products that are aesthetically appealing and convenient for the user.
Teachers





Intended learning outcomes
- Gain an understanding of how to evaluate and iterate on designs based on usability test results to enhance user satisfaction and task completion
- Acquire knowledge of responsive design principles and techniques to ensure optimal user experiences across different devices and screen sizes
- Gain a deep understanding of the design thinking process and its application in solving complex design problems
- Develop a comprehensive understanding of the psychological and cognitive aspects of user behavior and how they influence design decisions
- Gain familiarity with industry-standard design tools and technologies used in UI/UX design, such as design software, prototyping tools, wireframing tools, and collaboration platforms
- Apply knowledge of usability testing methodologies to conduct tests and gather feedback from users
- Clearly communicate design concepts, rationale, and user insights to stakeholders, developers, and other team members to ensure shared understanding and alignment
- Use industry-standard tools to demonstrate design concepts, gather feedback, and iterate on the design based on user testing
- Conduct user interviews, surveys, and usability tests to obtain relevant data and apply those findings to inform design decisions.
- Apply knowledge of information architecture principles to structure and organize digital content effectively
- Develop ways to visualize data to create attractive and informative digital products, and acquire skills in creating visually appealing interfaces, typography, color theory, and layout composition
- Create and iterate designs through prototyping and user testing, ensuring the final product meets user needs and desires
- Acquire proficiency in gathering and interpreting user behavior data to optimize digital experiences and ensure user satisfaction.
- Develop a high level of competence in applying user-centered design principles and methodologies, including such skills as conducting user research, persona development, and usability testing
- Develop skills in organizing and structuring digital content, defining intuitive navigation systems, and creating seamless user flows.
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




Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a specialised knowledge of key strategies related to design patterns
- Develop a critical knowledge of design patterns
- Acquire knowledge of the pros and cons of popular UML design patterns
- Critically evaluate diverse scholarly views on design patterns
- Creatively utilize design patterns tools to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to object-oriented design patterns
- Efficiently manage interdisciplinary issues that arise in connection to design patterns
- Apply a professional and scholarly approach to research problems pertaining to design patterns
- Act autonomously in identifying research problems and solutions related to design patterns
- Demonstrate self-direction in research and originality in solutions developed for design patterns
- Create synthetic contextualised discussions of key issues related to design patterns
- Solve problems and be prepared to take leadership decisions related to the methods and principles of design patterns
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
This course is designed to equip IT professionals with the soft skills and career strategies required for success in the technology industry. The course is project-based and covers a range of topics such as communication skills, teamwork, time management, leadership, networking, and career development.
The course covers the entire lifecycle of a technology project, from requirement gathering to delivery and maintenance. Students will learn how to communicate effectively with stakeholders, manage their time efficiently, lead a team, and collaborate effectively in a team environment.
The course also covers aspects of career development, such as networking and building professional relationships, creating a personal brand, and developing a career plan. Students will learn how to identify their strengths and weaknesses, and how to leverage their skills and experience to advance their careers in the technology industry.
Key Intended Learning Outcomes:
Develop and demonstrate effective communication skills.
Collaborate effectively in a team environment.
Develop and demonstrate leadership skills.
Build and maintain professional relationships.
Develop and execute a career plan.
Teachers





Intended learning outcomes
About
Thе course offers an extensive exploration of graphic design principles. Students will delve into the application of graphic design in the context of designing interactive and user-centric interfaces. The course integrates both theoretical concepts and practical skills, emphasizing the creation of visually compelling and effective designs for enhanced user experiences.
Participants will acquire a comprehensive understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, with a focus on their application in the context of Human-Computer Interaction. Through project-based learning, students will have the opportunity to work on practical design projects that simulate real-world scenarios, honing their graphic design skills for HCI. This approach ensures the direct application of learned concepts and techniques.
The course will emphasize the integration of graphic design into the broader context of usability and user-centric design. Students will learn how to align visual aesthetics with user needs, creating interfaces that are both visually appealing and functionally effective.
Students will develop the ability to effectively present and communicate their designs, understanding the importance of conveying design concepts to stakeholders and collaborators within the context of Human-Computer Interaction and Design.
By the conclusion of this course, students will have not only mastered the principles of graphic design but will also possess the expertise to seamlessly integrate these elements into user-centric interfaces, aligning with the principles of Human-Computer Interaction and Design.
Key Intended Learning Outcomes:
Achieve proficiency in fundamental graphic design principles, mastering composition, lighting, texture, and spatial awareness.
Learn to apply graphic design techniques specifically within the context of Human-Computer Interaction, enhancing user engagement and interface usability.
Develop the skills to present and communicate their designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers


Intended learning outcomes
- Identify and analyze the role of graphic design within the context of Human-Computer Interaction (HCI), recognizing its impact on enhancing user engagement and interface usability.
- Critically evaluate contemporary trends, techniques, and tools in graphic design, and assess their relevance and applicability in designing interactive interfaces for digital platforms.
- Demonstrate a deep understanding of fundamental graphic design principles, including composition, lighting, texture, and spatial awareness, and their application in creating visually compelling designs.
- Apply advanced graphic design techniques effectively to create aesthetically pleasing and functional designs tailored for digital interfaces, considering factors such as user experience, accessibility, and usability.
- Develop proficiency in translating conceptual ideas into tangible visual representations for user interface design.
- Utilize industry-standard software and tools proficiently to execute graphic design projects, demonstrating mastery in digital image editing, typography, color theory, and layout design.
- Present and communicate graphic design concepts and solutions effectively, employing visual aids, storytelling techniques, and persuasive arguments to convey ideas and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including developers, UX/UI designers, and stakeholders, to integrate graphic design elements harmoniously into the overall design strategy, ensuring consistency and coherence across digital interfaces.
- Demonstrate the ability to integrate graphic design principles seamlessly into the HCI design process, fostering user engagement and enhancing the overall user experience of interactive systems.
About
This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.
The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.
The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.
Key Intended Learning Outcomes:
Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization
Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code
Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques
Develop asynchronous functions and handle errors effectively for CRUD operations
Teachers





Intended learning outcomes
- Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
- Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
- Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
- Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
- Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
- Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
- Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
- Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
- Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
- Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
- Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
- Apply strategies to optimise the performance of JavaScript code and web applications.
- Develop asynchronous functions and handle errors effectively for CRUD operations.
- Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
- Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
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 one of the most popular and advanced frameworks/libraries in use – React.js. 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of front end development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle front end development applications
Propose appropriate solutions to complex and changing problems pertaining to front end development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to front end development
- Acquire knowledge of popular frameworks/libraries in use: React.js, jQuery and AngularJS
- Critically evaluate diverse scholarly views on front end development
- Develop a critical knowledge of front end developmen
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentations
- Apply an in-depth domain-specific knowledge and understanding to front end development solutions
- 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
- 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
- Solve problems and be prepared to take leadership decisions related to the methods and principles of front end development
- Apply a professional and scholarly approach to research problems pertaining to front end development
- Act autonomously in identifying research problems and solutions related to front end development
About
This course explores the interdisciplinary field of Physical User Interface (PUI) design within the context of Human-Computer Interaction and Design. PUIs involve the interaction between users and digital systems through tangible, physical objects, presenting new challenges and opportunities for designers. As intelligent production environments evolve, the course addresses the question of whether existing design methods and tools are adequate or if more sophisticated approaches are required.
The curriculum initiates with a discussion on the necessity for advanced physical user interfaces with enhanced capabilities, establishing functional and non-functional requirements for an efficient design method.
The course introduces a model-based design approach, incorporating a comprehensive context model and modeling tools tailored for intelligent production environments. Through case studies and practical applications, students gain insights into the feasibility and effectiveness of the proposed design method. The course concludes with a critical examination of key characteristics, identifying areas for potential future improvements.
Key Intended Learning Outcomes:
Achieve proficiency in foundational principles of PUI design, encompassing tangible interaction, usability, and integration with intelligent production environments.
Apply design techniques specific to Physical User Interfaces within the broader context of Human-Computer Interaction, aiming to enhance user engagement and optimize interface usability.
Develop skills to present and articulate PUI designs effectively, ensuring clear understanding and alignment with user-centric design principles.
Teachers
Intended learning outcomes
- Analyze and evaluate the relationship between Physical User Interfaces and broader Human-Computer Interaction (HCI) principles, recognizing the unique challenges and opportunities presented by tangible interfaces in enhancing user engagement and optimizing interface usability.
- Critically assess emerging trends and technologies in PUI design and their implications for designing interactive systems in intelligent production environments.
- Demonstrate a deep understanding of the foundational principles of Physical User Interface (PUI) design, including tangible interaction, usability, and integration with intelligent production environments.
- Demonstrate proficiency in usability testing methodologies adapted for Physical User Interfaces to identify usability issues and iteratively improve design solutions.
- Utilize prototyping tools and methods proficiently to develop and iterate Physical User Interface designs, translating conceptual ideas into tangible, functional prototypes for user testing and evaluation.
- Apply advanced design techniques specific to Physical User Interfaces effectively to create intuitive and engaging user experiences.
- Design and implement Physical User Interfaces that seamlessly integrate with intelligent production environments.
- Present and articulate PUI designs effectively, employing storytelling techniques, visual aids, and persuasive arguments to convey design concepts and align with user-centric design principles.
- Collaborate with interdisciplinary teams, including engineers, industrial designers, and domain experts, to integrate Physical User Interfaces into the overall product or system design, ensuring coherence and alignment with user needs and production requirements.
About
This course teaches students how to analyse the ways users engage with a service. This method, called product analytics, helps businesses track and analyse user data. Students will learn more deeply what is required to move a product from idea to implementation, through to launch, and then on to iterative improvements. The course teaches how to measure progress, validate or update product hypotheses, and present product learnings.
Also, students will gain experience in making informed decisions, as well as how to present findings and make an analytics-informed business case to win support for a product.
Teachers


Intended learning outcomes
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Autonomously gather material and organise it into a coherent presentation or essay
- 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.
- 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
- Act autonomously in identifying research problems and solutions related to product analytics
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement.
About
Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.
Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.
Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.
In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.
Teachers





Intended learning outcomes
- Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
- Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
- Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
- Gain knowledge of security and performance considerations specific to mobile app development
- Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
- Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
- Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
- Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
- Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
- Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
- Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
- Gain proficiency in integrating mobile apps with backend services and API
- Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
- Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
- Apply the principles of cross-platform mobile app design and development with frameworks like React Native
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
Teachers





Intended learning outcomes
- Develop a critical understanding 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 evaluate diverse scholarly views on advanced visualisation strategies
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- 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
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
About
Human-computer interaction (HCI) is a field of study concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. This course surveys the scope of issues and foundations of the HCI field: cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods and techniques, and evaluation. This course will focus on the users and their tasks.
This course presents: first, an overview and introduction to the field of human-computer interaction and usability; second, an introduction to the methods to elicit user requirements and structure the design process to be user centred; and third, the course will emphasize the importance of paying attention to user needs and cognitive functioning in order to design usable systems. The course will also introduce visual design, heuristics, interaction methods and devices and specific interaction paradigms. This course provides practical knowledge of how to use well-known and established HCI design methods as well as theoretical knowledge of how to think and reason about them during the design process. In this course we will approach interaction design from the perspective of user-centered design. Interaction design techniques will be presented to explore and refine the behavior of products and services.
Key Intended Learning Outcomes:
Gain a thorough understanding of the fundamental aspects of Human-Computer Interaction (HCI), including cognitive psychology, human factors, interaction styles, user analysis, task analysis, interaction design methods, and evaluation.
Acquire the capability to apply HCI principles in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach that considers cognitive aspects and various interaction styles.
Propose appropriate solutions to prioritize users and their tasks, fostering a user-centric design approach essential for creating effective and user-friendly interactive systems in diverse computing environments.
Teachers



Intended learning outcomes
- Demonstrate a comprehensive understanding of the fundamental concepts and theories underpinning Human-Computer Interaction (HCI).
- Critically analyze and evaluate HCI principles and methodologies to inform design decisions in interactive computing systems.
- Identify and assess emerging trends and challenges in HCI research and practice, demonstrating awareness of the evolving landscape of human-computer interaction.
- Utilize appropriate techniques for user and task analysis to inform the design process and prioritize user needs and preferences.
- Apply HCI principles and methodologies effectively in the design, evaluation, and implementation of interactive computing systems, emphasizing a user-centered approach.
- Demonstrate proficiency in employing various interaction design methods and evaluation techniques to create and assess user-friendly interactive systems across diverse computing environments.
- Propose and justify user-centric design solutions that prioritize users and their tasks, fostering effective and engaging interactive experiences.
- Collaborate effectively within multidisciplinary teams to integrate HCI principles into the development lifecycle of interactive computing systems.
- Communicate complex HCI concepts, design decisions, and evaluation findings clearly and persuasively to diverse stakeholders, including technical and non-technical audiences.
About
This course introduces more advanced ML techniques like ensembles: bagging, boosting, cascading and stacking classifiers and regressors. It covers both the theoretical foundations and applicative details of these techniques along with popular implementations of boosting like LightGBM, CatBoost and XGBoost. Students also delve into kernel methods with specific focus on SVMs for classification and regression. Students will study state of the art model agnostic feature importance and model-interpretability techniques like LIME and SHAP. Students also study classical NLP based text encoding methods like Bag-of-words, TF-IDF etc. The module teaches various classical methods in time series analysis and forecasting like ARMA, ARIMA etc. Students also learn how to pose time series forecasting problems as regression and classification problems to leverage well studied ML techniques. This is followed by various domain and problem specific Feature engineering techniques that are often helpful in real world problem solving. Students will study methods like error analysis, ablative analysis etc., to debug and understand why and where a model is performing well and where it is not performing well. This will further help us in designing appropriate features. Students study model calibration techniques like Platt Scaling, Isotonic Regression etc. Later in this course, we cover how to build recommender systems using content-based and collaborative filtering methods. The module also teaches the detailed solution of the Netflix prize (2009) and various recent advances in RecSys.
Teachers
Intended learning outcomes
- Acquire knowledge of model calibration techniques like Platt Scaling, Isotonic Regression
- Develop a critical knowledge of 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
- Critically evaluate diverse scholarly views on Advanced Machine Learning
- 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 Advanced Machine Learning
- Creatively apply Advanced Machine Learning techniques to develop critical and original solutions for computation problems
- Act autonomously in identifying research problems and solutions related to Advanced Machine Learning
- Create synthetic contextualised discussions of key issues related to Advanced Machine Learning
- Efficiently manage interdisciplinary issues that arise in connection to Advanced Machine Learning
- Apply a professional and scholarly approach to research problems pertaining to Advanced Machine Learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Advanced Machine Learning
- Demonstrate self-direction in research and originality in solutions developed for Advanced Machine Learning
About
This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.
Teachers
Intended learning outcomes
- Critically evaluate diverse scholarly views on Deep Learning
- 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
- Develop a critical knowledge of Deep Learning
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Deep Learning techniques to develop critical and original solutions for computational problems
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning
- Create synthetic contextualized discussions of key issues related to Deep Learning
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning
- Act autonomously in identifying research problems and solutions related to Deep Learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning
About
This is a course that focuses both on architectural design and practical hands-on learning of advanced cloud-based services. We begin with the serverless computing model and how it is achieved by most cloud providers. We learn to use it for building web applications, data and file processing and analytics applications. We then learn of the architecture of distributed messaging queues and how they can be used for plumbing complex cloud systems with many components and services. Monitoring the resources in your cloud setup is a key to ensure low costs and high availability and the smooth functioning of your overall setup. We learn to use AWS CloudWatch to track various key metrics, trigger alarms, detect anomalous behaviour and act upon them in near real-time. We learn the architecture and design of load balancers and how they play a key role in most horizontally scalable web-applications. Students also learn of the architecture and design of Content delivery networks (CDNs) from Akamai and Amazon. We learn how CDNs can be used to deliver live streaming and website content fast using globally distributed servers and caching. Most of this course involves learning the internal architecture of various cloud systems and using them to solve real world engineering problems.
Teachers
Intended learning outcomes
- Resource management strategies in a cloud setup to ensure low costs and high availability
- Critical evaluations of the architecture and design of load balancers and their role in most horizontally scalable web-applications
- Specialised knowledge of key strategies related to advanced cloud computing
- Ability to autonomously gather material and organise it into coherent plan for solving problems related to advanced cloud computing
- Use content delivery networks (CDNs) to deliver live streaming and website content fast using globally distributed servers and caching
- Develop critical and original solutions to solve real world engineering problems to emerging issues in cloud computing
- Deploy advanced cloud computing systems, and track various key metrics, trigger alarms, detect anomalous behaviour and act upon them in near real-time
- Efficiently manage horizontally scalable web-applications
- Understand the serverless computing model and how it is achieved by most cloud providers in order to configure complex cloud systems
- Demonstrate self-direction, autonomy, and leadership in research and originality in solutions for complex cloud systems with many components and services
About
This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve multiple real world cases and discuss solutions built by various companies and organizations to provide the students a comprehensive understanding of varied systems and design choices.
Teachers
Intended learning outcomes
- Develop a critical knowledge of Productionization of Machine Learning Systems
- Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
- Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
- Critically evaluate diverse scholarly views on Productionization of Machine Learning
- Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent problem sets or presentation
- Apply an in-depth domain-specific knowledge and understanding to technology
- Creatively apply ML systems to develop critical and original solutions for computational problems
- Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
- Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
- Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
- Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
- Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
At the end of this course, students will be prepared, if they desire, to earn such industry desktop certifications as a Tableau Desktop Specialist, a Tableau Certified Associate, or a Tableau Certified Professional.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Acquire knowledge of various methods for telling stories with data across different formats
- Critically evaluate diverse scholarly views on advanced visualisation strategies
- 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 understanding of key data science concepts as implemented in common software packages
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Efficiently manage interdisciplinary issues that arise in connection to advanced visual analytics
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Solve problems and be prepared to take leadership decisions related to data visualisation strategies
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of numerical programming in Python
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle numerical programming in Python
Propose appropriate solutions to complex and changing problems pertaining to numerical programming in Python
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Numerical programming in Python
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Numerical programming in Python
- Critically evaluate diverse scholarly views on Numerical programming in Python
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python
- Autonomously gather material and organize it into a coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create new solutions that are critical to solving computational problems through creatively applying code writing
- Act autonomously in identifying research problems and solutions 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
- 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
- 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
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
Intended learning outcomes
- Develop a critical knowledge of Applied Statistics
- Acquire knowledge of popular discrete and continuous distributions (like Bernoulli, Binomial, Poisson, Gaussian, Exponential, Pareto, and log-normal)
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on Applied Statistics
- Develop a specialised knowledge of key strategies related to Applied Statistics
- Apply an in-depth domain-specific knowledge and understanding of applied statistics
- Creatively apply basic probability theory to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent problem set or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Demonstrate self-direction in research and originality in solutions developed for Applied Statistics
- 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
- Efficiently manage interdisciplinary issues that arise in connection to Applied Statistics
- Create synthetic contextualised discussions of key issues related to Applied Statistics
- Act autonomously in identifying research problems and solutions related to Applied Statistics
About
This course focuses on modelling sequences (text, music, time-series, genes) using deep-learning models. We start with a simple Recurrent Neural Network and its limitations with long-sequences. Students learn LSTMs and GRUs which can handle significantly longer sequences to model sequence data like text, music, gene-sequences and time-series data. We study variations of LSTM like bi-directional LSTMs and encoder-decoder architectures. This is followed by a detailed study of attention mechanism and Transformer based models which are currently the state-of-the-art for NLP and sequence modelling. The module teaches encoder-decoder Transformers, BERT, BERT-variations, GPT-1,2 &3 models from both the architectural and mathematical viewpoints and also a practical viewpoint. Studnets learn to implement many of these complex models from scratch (using TensorFlow 2 and Keras) to gain a deeper understanding of how they work internally. Students will study popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), Semantic search with low-latency etc. For each of these problems, Students will study cutting edge deep-learning models along with code implementations.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for NLP
- 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.
- Assess, analyse, and criticise the various strategies for handling matters arising in the context of Deep Learning for NLP
- Apply an in-depth domain-specific knowledge and understanding to NLP solutions
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to complex and changing problems pertaining to Deep Learning for NLP
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Deep Learning for NLP
- Creatively apply Deep Learning for NLP techniques to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problem sets or presentation
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for NLP
- Create synthetic contextualised discussions of key issues related to Deep Learning for NLP
- Act autonomously in identifying research problems and solutions related to Deep Learning for NLP
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for NLP
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for NLP
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for NLP
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Back End Development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Back Eend Development
Propose appropriate solutions to complex and changing problems pertaining to Back End Development
Teachers





Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Back End Development
- Critically evaluate diverse scholarly views on Back End Development
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of 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
- Creatively apply Back End Development tools to develop critical and original solutions for computational problems
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- 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
- Apply a professional and scholarly approach to research problems pertaining to Back End Development
- Create synthetic contextualised discussions of key issues related to Back End Development
- Demonstrate self-direction in research and originality in solutions developed for Back End Development
- Efficiently manage interdisciplinary issues that arise in connection to Back End Development
- Act autonomously in identifying research problems and solutions related to Back End Development
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Back End Development
About
This course aims to build the core competency of building real world end-to-end ML systems and deploy them into production for a variety of problems and scenarios. Students would learn a variety of ML systems ranging from high throughput and low latency internet scale systems to low compute power and energy constrained IoT devices like smart watches. Students will study the ML lifecycle and various components in detail. We also use real world ML platforms like Google’s KubeFlow, TensorFlow Lite, and Amazon’s SageMaker to implement real world systems and understand the engineering trade-offs and challenges. Students also learn relevant technologies and tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git which are often used extensively in real world scalable ML systems. This course is a hands-on course where we solve multiple real world cases and discuss solutions built by various companies and organizations to provide the students a comprehensive understanding of varied systems and design choices.
Teachers
Intended learning outcomes
- Develop a critical knowledge of Productionization of Machine Learning Systems
- Acquire knowledge of tools like Containerization (Docker) and Container Orchestration (Kubernetes) and Git
- Develop a specialised knowledge of key strategies related to Productionization of Machine Learning
- Critically evaluate diverse scholarly views on Productionization of Machine Learning
- Critically assess the relevance of theories for business applications in the domain of Productionization of Machine Learning
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into coherent problem sets or presentation
- Apply an in-depth domain-specific knowledge and understanding to technology
- Creatively apply ML systems to develop critical and original solutions for computational problems
- Efficiently manage interdisciplinary issues that arise in connection to Productionization of ML Systems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of ML Productionization
- Act autonomously in identifying research problems and solutions related to Productionization of ML Systems
- Apply a professional and scholarly approach to research problems pertaining to Productionization of ML Systems
- Demonstrate self-direction in research and originality in solutions developed for Productionization of ML Systems
- Create synthetic contextualised discussions of key issues related to Productionization of ML Systems
About
This advanced JavaScript course builds on the foundational concepts covered in the JavaScript course, with a focus on more advanced concepts and best practices for building modern, performant web applications. Through hands-on practice and real-world examples, students will learn how to optimize JavaScript code for mobile and desktop devices, work with the DOM and Web APIs, and interact with backend APIs.
The course will begin with an overview of event propagation and optimization techniques, including event bubbling, delegation, and throttling. Students will also learn about lazy loading images, using libraries via CDN, and other performance optimization techniques. Next, the course will cover project infrastructure and web storage, including working with Node.js, npm package management, code modularity, and syntax for ECMAScript modules. Students will learn about Webpack, Babel, and other tools for transpiling and bundling code, as well as code formatting and checking best practices.
The course will also cover asynchrony and date handling in JavaScript, with a focus on the Promise API, async/await syntax, and event loop. Students will learn how to interact with backend APIs, including working with REST APIs, HTTP methods, headers, and response status codes. They will also learn about pagination techniques, including "load more" buttons and infinite scrolling. Finally, the course will cover CRUD operations with asynchronous functions, including working with private APIs and error handling best practices.
Key Intended Learning Outcomes:
Analyze and optimize JavaScript code for mobile and desktop devices, using best practices for performance optimization
Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code
Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques
Develop asynchronous functions and handle errors effectively for CRUD operations
Teachers





Intended learning outcomes
- Develop familiarity with common design patterns used in JavaScript programming, and apply them effectively to solve complex programming problems.
- Develop a comprehensive knowledge and understanding of advanced JavaScript concepts, such as closures, prototypes, higher-order functions, asychnronous programming, and event handling.
- Gain knowledge of JavaScript-specific optimisation techniques, such as minimizing file size, optimising algorithms, lazy loading, and reducing network requests.
- Stay updated with modern JavaScript tools, libraries, and technologies, and gain knowledge of bundlers, package managers, module systems, and transpilers used in modern JavaScript development.
- Acquire a deep understanding of the underlying principles and core features of populare JavaScript libraries and frameworks, such as React, Angular, or Vue.js.
- Utilize design patterns, such as the Module pattern, Observer pattern, Singleton pattern, or Factory pattern, to design and implement modular and reusable code structures, enhancing code organisation, maintainability, and extensibility.
- Use the core features of popular JavaScript frameworks and libraries to create dynamic user interfaces and manage application state.
- Apply knowledge of performance optimisation techniques specific to JavaScript to enhance the performance and efficiency of web applications.
- Use bundlers, package managers, module systems, and transpilers to optimise the development process and create efficient, maintainable code.
- Apply advanced JavaScript concepts to solve real-world programming challenges and to implement complex functionalities in web applications.
- Create modular, reusable code using ECMAScript modules and other tools for transpiling and bundling code, leveraging different frameworks and libraries.
- Apply strategies to optimise the performance of JavaScript code and web applications.
- Develop asynchronous functions and handle errors effectively for CRUD operations.
- Demonstrate a deep understanding of advanced JavaScript concepts, such as functions, objects, closures, asynchronous programming, and the JavaScript event model, and be able to apply this knowledge to develop complex, efficient JavaScript code.
- Interact with backend APIs using REST APIs, HTTP methods, and pagination techniques.
About
This course provides a comprehensive overview of Computer vision problems and how they can be tackled using various Convolutional Neural networks (CNNs). Students start with classical image processing operations like edge detection, convolution, shape detectors and colour space conversions. This is followed by a foundational understanding of Deep-Convolutional Neural networks and how their training and evaluation works. We introduce various CNN specific layers like pooling-layers and upsampling layers. We also introduce various Data Augmentation techniques that are very helpful for image-related problems. This is followed by a dive deep into the internals of popular CNN architectures like: AlexNet, VGGNet, ResNet etc. Students also learn how to use these methods practically for transfer learning. Students will study how various computer-vision related tasks like image segmentation, image-generation, object detection and localization, contrastive learning etc., can be performed using state of the art algorithms for each of these tasks. Most of these techniques would be studied directly from the original research papers and open-source code provided by the authors. Students would also implement some of these algorithms from scratch in this course.
Teachers




Intended learning outcomes
- Acquire knowledge of popular CNN architectures like: AlexNet, VGGNet, ResNet
- Critically evaluate diverse scholarly views on Deep Learning for Computer Vision
- Develop a specialised knowledge of key strategies related to Deep Learning for Computer Vision
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for Computer Vision
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning for Computer Vision techniques
- Autonomously gather material and organise it into coherent problem sets or presentation
- Creatively apply computer vision techniques to develop critical and original solutions for computational problems
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for Computer Vision
- Create synthetic contextualised discussions of key issues related to Deep Learning for Computer Vision
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for Computer Vision
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for Computer Vision
- 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
About
This is a course that focuses both on architectural design and practical hands-on learning of the most used cloud services. The module extensively uses Amazon Web services (AWS) to show real world code examples of various cloud services. It also covers the core concepts and architectures in a platform agnostic manner so that students can easily translate these learnings to other cloud platforms (like Azure, GCP etc.). The module starts with virtualization and how virtualized compute instances are created and configured. Students also learn how to auto-scale applications using load balancers and build fault tolerant applications across a geographically distributed cloud. As relational databases are widely used in most enterprises, students learn how to migrate and scale (both vertically and horizontally) these databases on the cloud while ensuring enterprise grade security. Virtual private clouds enable us to create a logically isolated virtual network of compute resources. Students learn to set up a VPC using virtualized-compute-servers on AWS. The course also covers the basics of networking while setting up a VPC. Students learn of the architecture and practical aspects of distributed object storage and how it enables low latency and high availability data storage on the cloud.
Teachers





Intended learning outcomes
- Acquire knowledge of virtualization and how virtualized compute instances are created and configured
- Develop a specialised knowledge of key strategies related to cloud computing
- Develop a critical knowledge of cloud computing
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on cloud computing
- Creatively apply cloud computing 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 cloud computing services
- Autonomously gather material and organise it into coherent problems sets or presentations
- Act autonomously in identifying research problems and solutions related to cloud computing
- Create synthetic contextualised discussions of key issues 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
- Apply a professional and scholarly approach to research problems pertaining to cloud computing
- Efficiently manage interdisciplinary issues that arise in connection to cloud computing
About
Mobile app design is a rapidly developing field that requires a deep understanding of user needs, technology, and UX design principles. This course aims to provide students with an in-depth understanding of various aspects involved in designing and developing cross-platform mobile applications using React Native. The course covers a wide range of topics, including React Native architecture, UI components, navigation, data management, user engagement, animation, and app store optimization.
Students will learn about the unique features of mobile app design, types of apps and technologies used in this field. The course emphasizes the importance of cross-platform compatibility, ensuring that the mobile apps created can run seamlessly on both iOS and Android platforms. The course will also cover familiarity with key design patterns for mobile apps, user engagement, animation, and preparing the app for publication.
Throughout the course, students will have the opportunity to work on real-world projects and assignments, allowing them to apply their learning to practical situations. They will learn how to analyze and evaluate different types of mobile apps and technologies used in mobile app design, as well as how to apply design principles and design patterns to create mobile app interfaces that are user-friendly and engaging.
In addition, the course covers important topics such as app store submission process and optimizing app performance, enabling students to prepare their mobile apps for publication.
Teachers





Intended learning outcomes
- Develop a comprehensive knowledge and understanding of mobile app design principles, including user-centered design, information architecture, navigation patterns, visual design, and interaction design
- Acquire in-depth knowledge of mobile app development technologies and platforms, including iOS, Android, and cross-platform framework
- Develop a solid understanding of mobile user experience design principles, including user research, personas, user flows, wireframing, prototyping, and usability testing
- Gain knowledge of security and performance considerations specific to mobile app development
- Gain familiarity with industry-standard tools, frameworks, and development environments used in mobile app design and development.
- Apply knowledge of integrating mobile apps with backend services and APIs to enable data storage, user authentication, and real-time functionality
- Apply knowledge of testing methodologies, tools, and best practices to ensure the quality, performance, and reliability of mobile apps
- Apply knowledge of mobile app design principles and user-centered design to create visually appealing and intuitive mobile app interfaces
- Utilize development environments, tools, and frameworks effectively to implement app features, manage data, and ensure compatibility across different platform
- Apply knowledge of mobile UX design principles to optimize the usability and user experience of mobile apps
- Acquire skills to prepare the app for publication, including understanding the process of submitting to app stores and optimizing performance.
- Gain proficiency in integrating mobile apps with backend services and API
- Develop a high level of competence in designing mobile applications, employing user-centered design principles, information architecture, visual design, and interactive elements.
- Apply UX design principles and patterns to create user-friendly and attractive interfaces for mobile apps using the React Native framework
- Apply the principles of cross-platform mobile app design and development with frameworks like React Native
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 Fetch 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of JavaScript
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle JavaScript
Propose appropriate solutions to complex and changing problems pertaining to JavaScript
Teachers





Intended learning outcomes
- Develop a critical knowledge of JavaScript
- Critically assess the relevance of theories for business applications in the domain of technology
- Acquire knowledge of popular style guides and good coding practices to build readable and reusable code which is also highly performant
- Critically evaluate diverse scholarly views on JavaScript
- Develop a specialised knowledge of key strategies related to JavaScript
- Autonomously gather material and organise into a coherent problem sets or presentations
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to JavaScript tools
- Creatively apply JavaScript concepts to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of JavaScript
- Create synthetic contextualised discussions of key issues related to JavaScript
- Apply a professional and scholarly approach to research problems pertaining to JavaScript
- Efficiently manage interdisciplinary issues that arise in connection to JavaScript
- Demonstrate self-direction in research and originality in solutions developed for JavaScript
- Act autonomously in identifying research problems and solutions related to JavaScript
About
This course is aimed at equipping students with skills to architect the high level design (a.k.a. system design) of software and data systems. We start with some of the good to have properties of large complex software systems like scalability, reliability, availability, consistency etc. The module teaches various patterns and design choices we have to satisfy each of these good to have properties. We then go on to understand key components of system design like load-balancers, microservices, reverse-proxies, content-delivery networks etc. Students learn how each of them work internally along with real world implementations of each. We study various NoSQL data stores, their internal architectures and where to use which one with real-world examples. Students also learn popular data encoding schemes like XML and JSON. We learn how to build data pipelines using batch and stream processing systems. We also work on multiple real world cases on architecting on the cloud using popular open-source libraries and tools. Students will study design documents and high-level-design of popular internet applications and services like video-conferencing, recommender-systems, peer-to-peer chat, voice-assistants etc.
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to System Design
- Critically evaluate diverse scholarly views on System Design
- Develop a critical knowledge of 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
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply an in-depth domain-specific knowledge and understanding to System Design solutions
- Autonomously gather material and organise it into coherent problem sets or presentations
- Creatively apply system design components to develop critical and original solutions for computational problems
- Solve problems and be prepared to take leadership decisions related to the methods and principles of System Design
- Apply a professional and scholarly approach to research problems pertaining to System Design
- Act autonomously in identifying research problems and solutions related to System Design
- Efficiently manage interdisciplinary issues that arise in connection to System Design
- Create synthetic contextualised discussions of key issues related to System Design
- Demonstrate self-direction in research and originality in solutions developed for System Design
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
About
This is a hands-on course on designing responsive, modern and light-weight UI for web, mobile and desktop applications using HTML5 and CSS. Throughout the course students will learn 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. We then go on to learn stylesheets based on CSS 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 CSS. 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 appropriate toolkits. We would also study semantic markup, which is an important component of web application development in terms of accessibility and SEO. Students will learn about different types of HTML tags used to describe the structure and content of web pages, allowing browsers and other interpreters to correctly interpret content and improve its readability for people and search engines.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of Front end UI/UX development
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Front end UI/UX development
Propose appropriate solutions to complex and changing problems pertaining to Front end UI/UX development
Teachers





Intended learning outcomes
- Develop a critical knowledge of Front end UI/UX development
- Critically evaluate diverse scholarly views on Front end UI/UX development
- Acquire knowledge of HTML5, CSS and Frameworks like Bootstrap 4
- Develop a specialised knowledge of key strategies related to Front end UI/UX development
- Critically assess the relevance of theories for business applications in the domain of technology
- Apply an in-depth domain-specific knowledge and understanding to technology
- 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
- Autonomously gather material and organise into a coherent problem sets or presentation
- 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
- Apply a professional and scholarly approach to research problems pertaining to 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
- Demonstrate self-direction in research and originality in solutions developed for Front end UI/UX development
About
Every organization is building products to solve the pain points of its customers. Product managers are a critical part of an organization, 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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for improving a product after launch
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to measuring user engagement
Propose appropriate solutions to complex and changing problems of product success or failure in real-world engineering and science contexts
Teachers




Intended learning outcomes
- Develop a specialised knowledge of frameworks for measuring user engagement, such as diagnostics, key performance indicators (KPI), and other metrics
- Acquire knowledge of various methods for testing hypotheses about the viability of a product and about how users engage with it
- Critically assess the relevance of theories of user behaviour for product development
- Develop a critical understanding of product design and development
- Critically evaluate diverse scholarly views on assessing user behaviours
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organise it into a coherent presentation or essay
- Creatively apply various 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 product roadmaps and lifecycles in business
- Create synthetic contextualised discussions of key issues related to product sense, and how to tell whether a product is worth bringing to market.
- Efficiently manage interdisciplinary issues that arise in connection to designing a product and bringing it to market
- Demonstrate self-direction in research and originality in testing and validating hypotheses about a product and its users
- Apply a professional and scholarly approach to research problems pertaining to measuring user engagement
- 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.
- Act autonomously in identifying research problems and solutions related to product analytics
About
This discipline takes students from solid React fundamentals to building production-level front-end applications that meet modern industry standards. It focuses on advanced component architecture, custom and built-in hooks, routing (React Router v6), Redux Toolkit, and TypeScript, while emphasizing real-world, market-driven practice.Students reinforce essential concepts such as local and global state, REST API integration, code-splitting, lazy-loading, and performance optimization. They then complete a comprehensive test project simulating technical hiring challenges: a full SPA with a multi-page structure, catalog filtering, personal backend via mockapi.io, favorites management with persistent state, modal dialogs, validated booking forms, and scalable component-driven architecture. The course emphasizes working with Figma designs, building optimized React codebases, testing, and preparing applications for deployment.
Teachers
Intended learning outcomes
- Complete test-driven projects that meet common hiring requirements and deliver production-ready applications.
- Design and develop SPA applications using modern React patterns (hooks, context, Redux Toolkit with createAsyncThunk).
- Integrate REST APIs, perform CRUD operations, and persist user state (Redux state + persistence).
- Implement React Router v6, code-splitting, lazy-loading, and performance optimizations.
- Apply TypeScript for type-safe components, hooks, and API integrations.
- Build scalable, reusable components with modular styling (CSS Modules, normalization).
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 open source MySQL database and cloud-hosted relational databases (like Amazon RDS) to help students apply the concepts learned on real databases via assignments.
Key Intended Learning Outcomes:
Assess, analyse, and criticise the various strategies for handling matters arising in the context of Relational Databases
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Relational Databases
Propose appropriate solutions to complex and changing problems pertaining to Relational Databases
Teachers





Intended learning outcomes
- Critically evaluate diverse scholarly views on relational databases
- Acquire knowledge of SQL as tool to create, modify, append, delete, query and manipulate data in a relational database
- Develop a specialised knowledge of key strategies related to Relational Databases
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of relational databases
- Apply an in-depth domain-specific knowledge and understanding to Relational Databases
- Creatively apply Relational Databases methods to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into a coherent presentation or essay
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Apply a professional and scholarly approach to research problems pertaining to Relational Databases
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Relational Databases
- Create synthetic contextualised discussions of key issues related to Relational Databases
- Act autonomously in identifying research problems and solutions related to Relational Databases
- Efficiently manage interdisciplinary issues that arise in connection to implementation and query of relational databases
- Demonstrate self-direction in research and originality in solutions developed for Relational Databases
About
This course provides a strong mathematical and applicative introduction to Deep Learning. The module starts with the perceptron model as an over simplified approximation to a biological neuron. We motivate the need for a network of neurons and how they can be connected to form a Multi Layered Perceptron (MLPs). This is followed by a rigorous understanding of back-propagation algorithms and its limitations from the 1980s. Students study how modern deep learning took off with improved computational tools and data sets. We teach more modern activation units (like ReLU and SeLU) and how they overcome problems with the more classical Sigmoid and Tanh units. Students learn weight initialization methods, regularization by dropouts, batch normalization etc., to ensure that deep MLPs can be successfully trained. The module teaches variants of Gradient Descent that have been specifically designed to work well for deep learning systems like ADAM, AdaGrad, RMSProp etc. Students also learn AutoEncoders, VAEs and Word2Vec as unsupervised, encoding deep-learning architectures. We apply all of the foundational theory learned to various real world problems using TensorFlow 2 and Keras. Students also understand how TensorFlow 2 works internally with specific focus on computational graph processing.
Teachers
Intended learning outcomes
- Critically evaluate diverse scholarly views on Deep Learning
- 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
- Develop a critical knowledge of Deep Learning
- Critically assess the relevance of theories for business applications in the domain of technology
- Autonomously gather material and organise it into coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Creatively apply Deep Learning techniques to develop critical and original solutions for computational problems
- Apply an in-depth domain-specific knowledge and understanding to Deep Learning
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning
- Create synthetic contextualized discussions of key issues related to Deep Learning
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning
- Act autonomously in identifying research problems and solutions related to Deep Learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning
About
The course is designed to provide students with a profound understanding of identity and access management (IAM) and its vital role in safeguarding information systems. It also equips students with practical skills for managing both physical and logical access to critical assets. IAM is an essential component of modern organizations' security and access management strategies, and this course empowers students with the knowledge and abilities needed to excel in this domain.
The course begins by exploring the management of physical and logical access to assets. Students will delve into the fundamental concepts of access control, its significance, and the differentiation between physical and logical access control mechanisms.
As the course progresses, students will acquire in-depth knowledge of identity and authentication management. This encompasses the implementation of identity management (IdM) systems, multi-factor authentication (MFA), and session management. They will also understand the processes of registration and identity establishment, including user registration and identity verification. The course further delves into federated identity management, addressing its implementation in cloud, on-premises, and hybrid environments.
Additionally, students will learn about identity data management, emphasizing systems for managing identity data and the principles of identity data management. The management of single sign-on (SSO) and just-in-time (JIT) authentication will be covered as well. The course goes on to elucidate the mechanisms of authorization management. This includes the implementation of access control models, such as Role-Based Access Control (RBAC), Rule-Based Access Control, Mandatory Access Control (MAC), and others. Furthermore, students will gain insights into risk-oriented access control implementation.
Finally, the course delves into the identity and access lifecycle management. This involves access review processes, the analysis of access to accounts (user, system, and service), the provisioning and
de-provisioning of access rights, role definition, and the minimization of privilege escalation.
In conclusion, students will learn about authentication systems, including OpenID Connect (OIDC)/Open Authorization (OAuth), Security Assertion Markup Language (SAML), Kerberos, RADIUS/TACACS+, and their practical implementation. These authentication systems play a crucial role in establishing secure access control in modern information systems.
Teachers




Intended learning outcomes
- Develop expertise in addressing security challenges related to authentication systems
- Develop a comprehensive understanding of the implementation of access control models
- Critically evaluate diverse scholarly views on identity and access management
- Develop practical skills related to identity and access management in cybersecurity
- Apply an in-depth domain-specific knowledge and understanding of identity data management
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Implement authentication systems and understand their practical application in securing access control
- Implement identity management, multi-factor authentication (MFA), and session management
- Autonomously gather material and organize it into a coherent presentation or essay
- Analyze and manage access to accounts, including provisioning, de-provisioning, role definition, and privilege escalation minimization
- Create synthetic contextualised discussions of key issues related to identity and access management
- Solve problems and be prepared to take leadership decisions related to the implementation of security and access management strategies
- Efficiently manage interdisciplinary issues that arise in connection to identity and access management
- Apply a professional and scholarly approach to research problems pertaining to access control
- Act autonomously in identifying research problems and solutions related to identity and access lifecycle management
- Demonstrate a deep understanding of identity and access management (IAM) principles and their application in securing information systems
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.
Key Intended Learning Outcomes:
Assess, analyze, and criticize the various strategies for handling matters arising in the context of numerical programming in Python
Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle numerical programming in Python
Propose appropriate solutions to complex and changing problems pertaining to numerical programming in Python
Teachers



Intended learning outcomes
- Develop a specialised knowledge of key strategies related to Numerical programming in Python
- Acquire knowledge of core Mathematical libraries like NumPy, Scipy and Pandas
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Numerical programming in Python
- Critically evaluate diverse scholarly views on Numerical programming in Python
- Apply an in-depth domain-specific knowledge and understanding to numerical programming in Python
- Autonomously gather material and organize it into a coherent problem sets or presentation
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Create new solutions that are critical to solving computational problems through creatively applying code writing
- Act autonomously in identifying research problems and solutions 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
- 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
- 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
About
The course equips students with a deep understanding of network security and communication protocols. This course goes beyond the surface and provides practical skills for assessing and implementing secure network architecture designs. It's designed to instill essential knowledge and skills required to navigate the intricacies of network security and communication protocols, making it a critical component of contemporary cybersecurity education.
The course begins by establishing the fundamentals of secure network design. Students will explore the OSI and TCP/IP models, delving into the principles and architecture of TCP/IP and examining the pivotal role of security at different layers of these models.
Moreover, students will be introduced to secure network protocols, focusing on the principles and practical implementation of secure protocols, including IPSec, IPv4, and IPv6. As the course progresses, students will delve into the security intricacies embedded within multilayered protocols. They'll learn about the importance of multilayered protocols and gain the knowledge needed to address challenges presented by these protocols. The course also covers micro-segmentation in networks, including virtual and software-defined networks (SDN) and VXLAN, demonstrating how segmentation enhances security.
Additionally, students will explore the security aspects of wireless and mobile networks, such as Wi-Fi, Li-Fi, Zigbee, and satellite networks, along with the security of cellular networks (4G and 5G). The role of security in content distribution networks (CDN) will also be emphasized. Furthermore, the course delves into the realm of secure network components. Students will discover how to safeguard network hardware components, including power redundancy and warranties. Network access control (NAC) tools are introduced, providing insights into their implementation and their role in network access security. Endpoint security measures will be explored to protect devices and software, ensuring a secure connection to the network.
The course concludes by addressing the implementation of secure communication channels. It covers secure voice communication and multimedia interaction, focusing on the security of voice communication and secure multimedia communication principles and methods. Remote access and data transmission security are also explored, including the protection of remote network access and secure data transmission. Virtualized networks and security in virtualized networks and cloud environments are discussed, along with securing network connections with external parties and domains.
By the end of this course, students will possess a comprehensive understanding of network security and communication protocols, along with the practical skills needed to assess and implement secure network designs across various domains.
Teachers


Intended learning outcomes
- Develop a comprehensive understanding of the legal and ethical dimensions of network security and communication protocols
- Develop practical skills related to network security and communication protocols
- Critically evaluate diverse scholarly views on network security and communication protocols
- Develop expertise in addressing security challenges presented by multilayered protocols and micro-segmentation, ensuring robust network security
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to safeguard network hardware components, implement network access control (NAC), and enhance endpoint security for secure network access
- Autonomously gather material and organise it into a coherent presentation or essay
- Apply an in-depth domain-specific knowledge and understanding of network security principles and their application in diverse network environments
- Compare and evaluate the different methodologies recommended to select and implement secure network protocols, including IPSec, IPv4, and IPv6, to enhance network security
- Create synthetic contextualised discussions of key issues related to network security and communication protocols
- Efficiently manage interdisciplinary issues that arise in connection to network security and communication protocols
- Demonstrate the ability to establish secure voice communication, multimedia interaction, and secure data transmission in various network contexts
- Act autonomously in identifying research problems and solutions related to network security and communication protocols
- Apply a professional and scholarly approach to research problems pertaining to network security and communication protocols
- Demonstrate self-direction in research and originality in solutions developed for real-world problems related to network security and communication protocols
- Solve problems and be prepared to take leadership decisions related to the implementation of network security and communication protocols
About
The course is designed to equip students with the knowledge and practical skills required to assess, test, and audit security measures in information systems. It provides a comprehensive understanding of the strategies and methodologies employed to evaluate the security of systems, identify vulnerabilities, and recommend security improvements. In an ever-evolving threat landscape, the ability to conduct effective security assessments and tests is vital in ensuring the confidentiality, integrity, and availability of critical data and systems.
The course begins with knowledge and skills, where students learn to design and validate assessment, testing, and audit strategies. This part of the course covers the development of strategies for internal, external, and third-party assessments, emphasizing planning and strategy validation.
The next part of the course focuses on conducting security control testing. It delves into vulnerability assessment methods, tools, and vulnerability analysis with recommendations for mitigation. Students also acquire the knowledge and skills to prepare for and execute penetration tests, analyze results, and formulate recommendations. Additionally, this part covers event log review for anomaly detection and synthetic transaction creation and analysis.
It also discusses code review and vulnerability testing, along with secure development practices. This part of studies concludes with the examination of abuse case testing, testing coverage assessment, and security interface and integration point evaluations. Students will also learn the collection of data on security processes, including account management, key performance indicators, and risks. Students learn how to gather and analyze data to assess security processes effectively.
In the next part of the course, students become adept at analyzing test results and creating reports. They learn to analyze test findings and recommendations, compile detailed test and assessment reports, handle exceptions and incidents, and adhere to ethical vulnerability disclosure principles.
The course culminates in exploring the execution and organization of security audits. Students learn to prepare for and conduct internal and external security audits, as well as audits of third-party providers.
By the end of the course, students will possess the knowledge and skills to assess, test, and audit the security of information systems effectively.
Teachers
Intended learning outcomes
- Develop practical skills related to conducting security control testing
- Critically evaluate diverse scholarly views on security assessment and testing
- Develop expertise in conducting effective security assessments and tests
- Develop a comprehensive understanding of the processes and requirements for performing security audits effectively
- Analyze test findings and recommendations, generating comprehensive test and assessment reports, handling exceptions and incidents, and adhering to ethical vulnerability disclosure principles
- Perform vulnerability assessments, penetration tests, event log reviews, synthetic transaction creation and analysis, code reviews, and abuse case testing
- Apply an in-depth domain-specific knowledge and understanding of identifying vulnerabilities and recommending security improvements
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Autonomously gather material and organize it into a coherent presentation or essay
- Solve problems and be prepared to take leadership decisions related to the implementation of log reviews for anomaly detection
- Apply a professional and scholarly approach to research problems pertaining to security testing
- Design and validate strategies for internal, external, and third-party security assessments, encompassing planning and strategy validation
- Act autonomously in identifying research problems and solutions related to vulnerability testing
- Efficiently manage interdisciplinary issues that arise in connection to external and internal security audits
- Analyze data on security processes, including account management, key performance indicators, and risks, to effectively assess security processes
- Create synthetic contextualised discussions of key issues related to auditing security measures
About
This course provides a comprehensive, hands-on foundation in cyber risk and resilience management, equipping students with the knowledge and tools needed to assess, mitigate, and govern risks across a wide range of information systems. While rooted in classical risk analysis frameworks (e.g., FAIR, NIST RMF, ALE), the course also addresses the unique challenges of modern systems — including those enhanced by artificial intelligence, data-driven automation, and regulatory complexity.
Through real-world scenarios, students will learn to evaluate vulnerabilities, select appropriate controls, develop incident response strategies, and align cybersecurity posture with legal, organizational, and technological requirements — with special attention to emerging domains such as AI and algorithmic decision-making.
Teachers
Intended learning outcomes
- Explain the core principles and objectives of cyber risk management, including confidentiality, integrity, availability, and extended models such as the Parkerian Hexad.
- Discuss the evolving risk landscape, including AI-specific challenges such as model integrity, bias, explainability, and accountability — and propose mitigation strategies through case-based analysis.
- Identify and analyze common vulnerabilities and threats, and relate them to risk likelihood, impact, and exposure across different layers (data, process, governance).
- Evaluate regulatory and compliance frameworks (e.g., GDPR, HIPAA, PCI DSS, AI Act) and their implications for cyber risk governance.
- Apply quantitative and qualitative risk assessment methods — including ALE and FAIR — to both traditional IT systems and AI-enabled infrastructures.
- Demonstrate competence in incident response planning, business continuity, and disaster recovery as elements of cyber resilience.
- Design control strategies that map to structured frameworks (e.g., NIST, ISO, CRISC), balancing technical, administrative, and organizational measures.
- Monitor and assess residual risks and control effectiveness using continuous monitoring, risk metrics, and data-driven reporting techniques.
About
This course provides a hands-on introduction to modern cryptography and data protection practices, designed for cybersecurity professionals working in both general IT systems and AI-enhanced environments. It focuses on the secure design and application of cryptographic mechanisms — such as encryption, hashing, and key management — alongside policy-level protections and regulatory compliance (e.g., GDPR, NIST, AI Act). Through real world scenarios, students will learn to identify cryptographic vulnerabilities, implement safeguards, and develop organizational policies for secure data handling across a variety of contexts.
Teachers
Intended learning outcomes
- Explain how regulatory frameworks such as GDPR, the AI Act, and NIST standards influence the design and evaluation of secure data systems.
- Demonstrate awareness of how cryptography supports privacy, transparency, and risk reduction in high sensitivity domains — including AI, healthcare, and finance.
- Describe core cryptographic principles, including symmetric/asymmetric encryption, hashing, and digital signatures, and how they are applied to data protection.
- Analyze common cryptographic design flaws (e.g., weak entropy, IV reuse, insecure algorithms) and assess their security implications.
- Evaluate the integration of cryptography into broader data protection policies, including logging, monitoring, key lifecycle management, and incident response.
- Apply encryption, key management, and access control techniques to protect data at rest, in transit, and in processing — both in classical IT systems and data-driven applications.
- Use industry-standard tools (e.g., GnuPG, OpenSSL, Aircrack-ng) to detect and demonstrate cryptographic weaknesses and simulate attacks.
- Design basic data protection policies for organizations, incorporating cryptographic controls, access governance, and auditability.
About
This course is aimed to build a strong foundational knowledge of Data Analytics tools used extensively in the Data Science field. There now are powerful data visualisation tools used in the business analytics industry to process and visualise raw business data in a very presentable and understandable format. A good example is Tableau, used by all data analytics departments of companies and in data analytics companies in various fields for its ease of use and efficiency. Tableau uses relational databases, Online Analytical Processing Cubes, Spreadsheets, cloud databases to generate graphical type visualisations. Course starts with visualisations and moves to an in-depth look at the different chart and graph functions, calculations, mapping and other functionality. Students will be taught quick table calculations, reference lines, different types of visualisations, bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping.
Teachers





Intended learning outcomes
- Develop a critical understanding 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 evaluate diverse scholarly views on advanced visualisation strategies
- Critically assess the relevance of theories of data visualisation for business applications in the realm of software engineering
- Develop a specialised knowledge of such concepts as bands and distributions, parameters, motion chart, trends and forecasting, formatting, stories, performance recording and advanced mapping
- Apply an in-depth domain-specific knowledge and understanding of the importance of data storytelling in software engineering
- Creatively apply various visual and written methods for developing data visualisations
- 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
- Create synthetic contextualised discussions of key issues related to time and space complexity in data science
- Act autonomously in identifying research problems and solutions related to implementing data science visualisations from scratch
- 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
- Apply a professional and scholarly approach to research problems pertaining to data visualisations, including dashboards and storytelling
- Demonstrate self-direction in research and originality in solutions developed for data visualisation
About
This course focuses on modelling sequences (text, music, time-series, genes) using deep-learning models. We start with a simple Recurrent Neural Network and its limitations with long-sequences. Students learn LSTMs and GRUs which can handle significantly longer sequences to model sequence data like text, music, gene-sequences and time-series data. We study variations of LSTM like bi-directional LSTMs and encoder-decoder architectures. This is followed by a detailed study of attention mechanism and Transformer based models which are currently the state-of-the-art for NLP and sequence modelling. The module teaches encoder-decoder Transformers, BERT, BERT-variations, GPT-1,2 &3 models from both the architectural and mathematical viewpoints and also a practical viewpoint. Studnets learn to implement many of these complex models from scratch (using TensorFlow 2 and Keras) to gain a deeper understanding of how they work internally. Students will study popular applications of deep-learning in NLP like parts-of-speech tagging, question-answering systems, conversational engines (chatbots), Semantic search with low-latency etc. For each of these problems, Students will study cutting edge deep-learning models along with code implementations.
Teachers
Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Develop a critical knowledge of Deep Learning for NLP
- 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.
- Assess, analyse, and criticise the various strategies for handling matters arising in the context of Deep Learning for NLP
- Apply an in-depth domain-specific knowledge and understanding to NLP solutions
- Employ the standard modern conventions for the presentation of scholarly work and scholarly referencing
- Propose appropriate solutions to complex and changing problems pertaining to Deep Learning for NLP
- Compare and evaluate the different methodologies recommended in scholarly sources pertaining to how managers should handle Deep Learning for NLP
- Creatively apply Deep Learning for NLP techniques to develop critical and original solutions for computational problems
- Autonomously gather material and organise it into coherent problem sets or presentation
- Apply a professional and scholarly approach to research problems pertaining to Deep Learning for NLP
- Create synthetic contextualised discussions of key issues related to Deep Learning for NLP
- Act autonomously in identifying research problems and solutions related to Deep Learning for NLP
- Demonstrate self-direction in research and originality in solutions developed for Deep Learning for NLP
- Efficiently manage interdisciplinary issues that arise in connection to Deep Learning for NLP
- Solve problems and be prepared to take leadership decisions related to the methods and principles of Deep Learning for NLP
About
The course is designed to provide students with a comprehensive understanding of fundamental security operations and effective incident management in information systems. It aims to develop skills in applying proactive and reactive security measures to ensure information system security.
The course encompasses a range of modules, starting with understanding and compliance investigations, covering the collection and processing of digital evidence, and exploring methods and tactics in digital forensics, including artifact examination.
Students dive into logging and activity monitoring, addressing intrusion detection and prevention systems, Security Information and Event Management (SIEM), constant log monitoring, data leak monitoring, and user and entity behavior analytics (UEBA).
The course also focuses on configuration management, emphasizing automation processes for configuration management, including baselining and provisioning.
Later in the course students study fundamental security operations concepts, such as the principle of least privilege, role separation, privileged account management, task rotation, and Service Level Agreement (SLA) management.
Students also delve into resource protection, covering media management and data protection methods. The course addresses incident management, including detection, response, mitigation, reporting, and recovery from incidents.
Moreover, the course encompasses a broad range of proactive and reactive measures, including firewall usage, intrusion detection and prevention systems, vulnerability and patch management, change management processes, disaster recovery planning, recovery strategy implementation, recovery plan testing, business continuity exercise planning, physical security, and personnel security practices.
By the end of the course, students will have gained the knowledge and skills to effectively manage security operations, respond to incidents, and proactively safeguard information systems.
Teachers



Intended learning outcomes
- Understand and apply automation processes for configuration management, including baselining and provisioning
- Develop practical skills related to disaster recovery planning and implementation
- Critically evaluate diverse scholarly views on security operations and incident response
- Develop a comprehensive understanding of digital forensics methodologies, tools, and tactics, including the examination of artifacts from computers, networks, and mobile devices
- Autonomously gather material and organize 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 of vulnerability and patch management
- Implement logging and activity monitoring
- Create synthetic contextualised discussions of key issues related to auditing security measures
- Efficiently manage interdisciplinary issues that arise in connection to user and entity behaviour analytics
- Apply a professional and scholarly approach to implementing various proactive and reactive security measures
- Solve problems and be prepared to take leadership decisions related to the management of media and the protection of data using various data protection methods
- Act autonomously in managing incidents, from detection and response to mitigation, reporting, and recovery
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





Intended learning outcomes
- Critically assess the relevance of theories for business applications in the domain of technology
- Critically evaluate diverse scholarly views on machine learning
- Acquire knowledge of bias and variance trade-off, and various techniques to avoid overfitting and underfitting
- Develop a critical knowledge of machine learning
- Develop a specialised knowledge of key strategies related to machine learning
- Creatively apply regression models to develop critical and original solutions for computational issues
- Apply an in-depth domain-specific knowledge and understanding to machine learning solutions
- 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
- Create synthetic contextualised discussions of key issues related to machine learning
- Solve problems and be prepared to take leadership decisions related to the methods and principles of machine learning
- Efficiently manage interdisciplinary issues that arise in connection to machine learning
- Apply a professional and scholarly approach to research problems pertaining to machine learning
- Demonstrate self-direction in research and originality in solutions developed for machine learning
- Act autonomously in identifying research problems and solutions related to machine learning
Entry Requirements
Application Process
Submit initial Application
Complete the online application form with your personal information
Documentation Review
Submit required transcripts, certificates, and supporting documents
Assessment
Your application will be evaluated against program requirements
Interview
Selected candidates may be invited for an interview
Decision
Receive an admission decision
Enrollment
Complete registration and prepare to begin your studies
.avif)