Systems for Data Science

COMPSCI 532

In this course, students will learn the fundamentals behind large-scale systems used for data science. We will cover the issues involved in scaling up (to many processors) and out (to many nodes) parallelism in order to perform fast analyses on large datasets. These include locality and data representation, concurrency, distributed databases and systems, performance analysis and understanding. We will explore the details of existing and emerging data science platforms, including map-reduce and data analytics systems like Hadoop and Apache Spark, graph databases, stream processing systems, and systems for machine learning.

Class meetings: Tuesday/Thursday 2:30pm-3:45pm, Morrill Science Center Building II, 222

TA: Nathan Ng (kwanhong@umass.edu); Office hours: Tuesday 4.30-5.30 PM @ CS 207

Graders: Ajay Venkitaraman (avenkitarama@umass.edu); Vashistha Sriram Jayapati (vjayapati@umass.edu).

Prerequisites: COMPSCI 311, COMPSCI 345, and COMPSCI 377.

Credits: 3

Required Texts: This is an emerging topic so we will read and review recent technical papers, which represent the reading material for the exams. The course slides will be made available before exams.

Course Format

The course consists of two meetings per week. Each meeting includes a lecture. Readings will be assigned as preparation for each class meeting. Two-three projects will be assigned during the course. The projects provide students with an opportunity to explore the topics in more depth and in a specialized domain. A midterm exam and a final exam will be given. Attendance is mandatory. Exams and projects will be prepared assuming that students have attended all classes.

Course grades will be distributed as follows (subject to change):

  • Midterm: 20%
  • Final exam: 30%
  • Projects: 50%

In order to pass the exam, you will need to show to show sufficient performance in all these activities.

Projects

There will be three coding projects assigned. Projects will be performed in groups of two people.

Project 1: - due October 10, 11:59PM In this project, you will implement a mockup of the core functionality of a Web search engine. You will be provided a set of text files (converted from webpages), alongside with a list of corresponding URL links. You are required to use the Hadoop File System (HDFS) to store the data on a single node cluster. After you have stored the data using Hadoop, you should use Spark to build an inverted index.

Project 2 - due November 14, 11:59PM Wordcount is famously the “Hello, world!” of many data science platforms (e.g., MapReduce and Spark). This project is to implement a distributed, fault tolerant version of wordcount in Java.

Project 3 - due December 10, 11:59PM In this project, you will have to implement a simple image classification server. You will use a pre-trained model and build a container to use the model for inference.

Exams

The exams will contain questions about the papers read during the course and the in-class discussions. The slides contain only a subset of the material and are alone not sufficient to answer the questions in the exams.

Midterm: October 22 at 7-9pm in ILC S331

Final: December 18 at 3:30-5:30 PM, Location TBA

Accommodation Statement

The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.

Academic Honesty Statement

Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent (http://www.umass.edu/dean_students/codeofconduct/acadhonesty/).