CS-300 / 6 credits

Teacher(s): Ailamaki Anastasia, Kashyap Sanidhya

Language: English


Summary

This course covers the data management system design concepts using a hands-on approach.

Content

We will cover topics such as database architecture, data models, query optimization and planning, query engine and system programming, and storage systems. As our field is evolving rapidly, the list below is not exhaustive and will be adapted to reflect current technology trends.

  • Entity-relationship and relational model
  • Relational Algebra, Calculus, and SQL
  • Memory and storage hierarchy
  • Sorting and Indexing
  • Query operators and optimization
  • Basic synchronization mechanisms: locking and latching, task coordination
  • Transaction management and concurrency control

Learning Prerequisites

Required courses

CS-202 Computer Systems

CS-302 Parallelism and concurrency in software

Recommended courses

CS-200 Computer architecture

Important concepts to start the course

  • Excellent C/C++ programming skills
  • Undergraduate computer science course(s) on algorithms and data structures

Learning Outcomes

By the end of the course, the student must be able to:

  • Identify and manage key components of database and operating systems
  • Choose or critique design choices for DB and OS system software
  • Express application information requirements and model the data of an application
  • Create and design a database with a practical application in mind while justifying choices
  • Explore how a DBMS works
  • Report performance and possible optimizations for applications utilizing a DBMS

Teaching methods

Lectures, exercices,  and projects

Expected student activities

  • Attend the lectures to ask questions and interact with the professor
  • Attend the exercises session to solve and discuss exercises about the recently taught material
  • Complete a team project that covers the practical side of the course, e.g., build a set of key components in a DBMS
  • Study all the material provided and recommended during classes
  • Take a midterm and a final exam

Assessment methods

  • Labs (30%)
  • Midterm (25%)
  • Final exam (45%)

Supervision

Office hours Yes
Assistants Yes

Resources

Moodle Link

In the programs

  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: mandatory
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Labs: 2 Hour(s) per week x 14 weeks
  • Type: optional

Reference week

Related courses

Results from graphsearch.epfl.ch.