Data Systems Specialization


The Data Systems specialization is a track in the MSc in Computer Science at ITU. It teaches you to evaluate the performance of data science applications, to design and implement components of production-grade, open-source data-intensive systems, and to analyze state-of-the-art techniques for data management and processing on modern hardware.

Career prospects

Every organization runs on data, and people who understand how data systems work are in high demand. Graduates of the specialization work as software engineers building data platforms and backend infrastructure, as data scientists and data engineers turning large datasets into decisions, as product managers shaping data products, and in technical sales, helping customers adopt data technologies. They find these roles at large tech companies, at consultancies that design data solutions for clients across industries, and in government, where public agencies increasingly rely on data to deliver their services.

Courses offered

The specialization consists of five courses of 7.5 ECTS each: two in the spring and three in the fall. The courses assume introductory knowledge of systems programming, operating systems, and database systems, e.g., from the courses C & Operating Systems, Introductory Programming, and Introduction to Database Systems.

Spring

Computer Systems Performance
Pınar Tözün, Omar Shahbaz Khan
Learn how to investigate and improve the performance of a system. You design experiments and avoid common pitfalls, profile (perf), benchmark, and plot results, and learn to interpret them across the system layers, from memory and storage to GPUs and the cloud. Two group projects, guest lectures from Oracle and Snowflake, and an individual oral exam.

Computing & Data in Extreme Environments
Sebastian Büttrich
From embedded systems and sensors, through wireless networks (Wi-Fi, MQTT, LoRaWAN), to data stacks, edge computing, and TinyML, all the way to IoT in space with satellites and balloons. You can also join DISCOSAT, ITU’s student satellite program. Weekly hands-on exercises; the exam is a submission followed by an oral exam.

Fall

How to Build Data Systems
Martin Hentschel, Omar Shahbaz Khan
Learn how data systems work by building one: a fully working SQL database from scratch in Java, with a SQL parser, partitioned storage with min/max statistics, copy-on-write transactions, hash joins, and a join optimizer. Weekly exercises are bundled into three projects, each ending with a report that benchmarks your engine, with DuckDB as the reference. The exam is a project submission followed by an oral exam.

Big Data Management
Zoi Kaoudi, Maria Astefanoaei
The big data lifecycle: collecting, storing, processing, and analyzing data. The first half covers machine learning pipelines with scikit-learn, experiment tracking and deployment with MLflow, and scalable machine learning; the second half covers partitioning and replication, MapReduce and Hadoop, and Spark under the hood. Two assignments (wind power forecasting with MLflow, and Spark on Yelp data in Databricks) and a written exam.

Evaluating Data Systems
Zoi Kaoudi, Pınar Tözün
A seminar on modern data systems. Each week covers one topic, such as OLTP and OLAP systems, query optimization, learned database components, modern and cloud storage, ML data pipelines, spatial data, or multimedia retrieval, with an overview lecture and research papers that students present and discuss. You also reproduce the results of a systems research paper. Oral exam, including a presentation of your results.

Projects and theses

We supervise BSc theses, research projects, and MSc theses in these areas:

  • Data systems on modern hardware: GPUs, SSDs, and storage for databases and AI workloads
  • AI for data management: learned query optimization, LLM-driven optimization, and training data generation
  • Scalable and energy-efficient big data processing with Apache Wayang
  • Environmental sensing, IoT, edge AI, and student CubeSats
  • Spatial and multimedia data analytics: urban mobility, accessibility maps, and embeddings

Open project proposals →