Transformer-based neural architectures have fundamentally transformed artificial intelligence, enabling the development of large language model (LLM) families, including GPT (which powers ChatGPT), Gemini, and Llama 3, as well as generative tools like DALL·E and Sora. This graduate-level course delves into the design and deployment of LLM-based systems, with a focus on both technical foundations and societal impact. Topics include optimization algorithms, scalability, real-world applications, and use in domains like healthcare, education, and productivity. Ethical considerations are addressed, along with advanced topics such as robustness, domain adaptation, and reducing bias and hallucinations in model outputs. [Course Outline].
This course introduces the key principles and techniques of data science to prepare students for scientific work and advanced courses related to data analysis, machine learning and computational social science. It is Python-based hands-on course covering topics that span the entire data science life cycle including data collection, data exploration, visualization, statistical inference, causal inference, foundations of machine learning, and data ethics
Data structures are the key abstractions for organizing data in computer systems and thus form an essential building block for efficient algorithms. They are used in the design of a wide variety of applications today (e.g., cryptocurrencies, social networking, and big data processing frameworks). This course introduces the fundamentals of data structures and aims to provide a deep understanding of how different ways of structuring information in computer systems lead to different tradeoffs in terms of time and memory.
This is a graduate-level course on computer networking research. It involves lectures, paper readings, discussions, and a semester-long research project. Each year the course focuses on 4-5 hot topics in networking research. In the last edition, we covered the modules on (i) Edge Computing and Systems for Machine Learning, (ii) Cellular Networks, (iii) Web, Video Streaming, and ICT for Development, (iv) Internet Censorship & Privacy
A course that presents a critical view of the role of privacy in the modern age. It aims to provide a broad and varied understanding of economic (e.g., new business models), policy (e.g., balancing societal needs and individual rights), ethical, legal (e.g., data privacy regulations) and technical (e.g. privacy-enhancing technologies) perspectives about the role of privacy in the era of big data, cloud computing and AI.
This course deals with the nature, formulation, and analysis of probabilistic situations and introduces the fundamentals of probability with special emphasis on applications. It provides a rigorous understanding of probability concepts including random variables, expectations, joint distributions, limit theorems, and stochastic processes (including Markov Chains). In addition, it covers two applications areas where probability is extensively used: (a) queuing theory and (b) machine learning.
An introductory course on the foundations of large-scale networked systems. The first half of the course covers networking fundamentals, with the Internet as the case study. The second covers the fundamental concepts involved in designing scalable and fault tolerant distributed applications. It provides students with hands-on experience with applying the learnt concepts through multiple programming assignments.