Teaching

Database Management Systems | code: COSI 127B | term: Spring 2024 | ongoing ...
This class presents a comprehensive introduction to the fundamental concepts of database systems. We will start by discussing the classical approaches to database design and the fundamental building blocks and operating principles of database systems. The primary focus of the course will be on the core concepts of the internals of database systems, covering entity-relationship and relational data models, commercial relational query languages (SQL and relational algebra), file organization, storage and memory management, indexing and hashing, query optimization, query processing, transaction processing, concurrency control, and recovery. Finally, we will cover the new trends in data management in the era of big data and data management in the cloud to highlight the evolution of database systems over the years.

@ Boston University

Data Systems Architectures | code: CS 561 | term: Spring 2023 | students: 27
This graduate seminar course focuses on how to design data systems for the new hardware, workloads, and performance requirements. The students will learn about the internal design and workflow of several data management areas including relational systems, distributed database systems, key-value stores, newSQL and NoSQL systems, data systems for machine learning (and machine learning for data systems), interactive analytics, and data management as a service. In a fast moving industry and research landscape, these skills and the knowledge of state-of-the-art data systems are essential for any engineer/researcher.
Fundamentals of Computing Systems | code: CS 350 | term: Spring 2020 | students: 95
This course is designed to provide students with the fundamental notions in "systems". The concept of system is willfully made generic as one of the main objectives of this course is to cover reasoning approaches, mathematical tools, and modeling techniques that can be applied to a multitude of system instances, and to develop the ability to map new problems onto existing solutions. This course will help the students realize that many system instances have a common denominator of challenges and issues that can be approached using well established techniques and abstractions.