CSC 296/576 - Big Data Computer Systems (Fall 2013)

Class time: Tuesday, Thursday 4:50pm-6:05pm.
Class location: CSB 601.

Instructor: Kai Shen (
Office hours: Tuesday 6:05pm-7:05pm, Thursday 2:00pm-3:00pm at CSB 714.

TA: Brian Gernhardt (
Office hours: Monday 1:00pm-2:00pm, Friday 11:00am-noon at CSB 625.


Computer systems are increasingly driven by large, diverse data sets in a variety of domains including the web, business and finance, health care, social networking, civil engineering, and earth and environment sciences. This seminar course will discuss and explore computer systems issues for the big data era. Tentative topics will include the big data applications, big data programming (such as mapreduce), warehouse-scale data centers, big data storage, sustainable (energy-efficient) data processing, data reliability, durability, security, and privacy, as well as specific case studies for big data computer systems in the real world.

Big data is a broad concept that covers many aspects of computer science. This course will focus on the computer systems aspect---for instance, how various parts of a big data computer system (hardware, system software, and applications) are put together? What are the appropriate approaches to realize high performance, scalability, reliability, and security in practical big data computer systems? If you are hoping to learn about algorithmic design and theoretical/mathematical foundations for machine learning and data mining, please consider attending artificial intelligence and data mining courses in the computer science course offerings.


There is no formal prerequisite for this course but CSC252 or equivalent programming experience is desired. Please contact the instructor if you are not sure whether you possess the necessary programming experience. The course is open to undergraduates as well as graduate students.

To CS PhD Students:

You are certainly welcome to attend the class. But in case you wonder, this course will not count in meeting the breath course requirements in systems.

Text and References:

There is no required text for this course. We will use numerous online references and research papers in classes. They will be posted in advance of respective classes.

Assignments and Grading:

There will be a few (programming as well as writing) assignments and a final project. The assignments will be based on materials discussed in class. The final project will be chosen (by you) from a variety of topics related to big data computer systems (including those that are not discussed in class). The instructor will help you devise a concrete scope for your project. You will be asked to submit a project proposal several weeks before the final project due time. The project proposal should include a survey of past work and existing systems related to your project. You should also be prepared to make a presentation of your final project. Your grade will be based on a combination of your assignments and the final project. No exams will be administered for this course.

A tentative grade division is listed below.
       15% - assignment #1
       15% - assignment #2
       15% - assignment #3
       15% - assignment #4
       40% - final project

Given that the success of this seminar course will depend very much on lively discussions in classes, the instructor will consider assigning extra credits to those who make significant contributions to class discussions.