Course syllabus for ICS421 Spring 2018

a. Course alpha and number, and course title.

ICS 421 Database Systems

b. Instructor name and contact information.

Lipyeow Lim

lipyeow@hawaii.edu

c. Course description.

This course covers advanced database systems including parallel and distributed database systems and big data systems.

d. Course objectives.

To teach students:

  1. to conceptualize and design data-intensive applications.
  2. how large data management system works.
  3. how to use and implement big data systems like parallel database systems.
  4. how to evaluate different data management technologies and applications.

e. Student Learning Outcomes

At the end of this course the successfull student should

  1. know how to design and implement large data-intensive applications using relevant data management technology (eg. parallel databases, noSQL key-value stores etc.)
  2. have gained a deeper understanding of data management technologies including more advanced topics such as performance tuning, data warehousing, parallel and distributed databases.
  3. know how to parallelize data storage and query processing.
  4. know how to evaluate different types of parallel data management systems..

f. Number of credit hours

3.

g. Prerequisites

ICS321 Data Storage and Retrieval

h. Textbooks, required readings

  1. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. 1st Edition. Martin Kleppmann. O’Reilly Media. ISBN-13: 978-1449373320 ISBN-10: 1449373321

  2. Big Data: Principles and best practices of scalable realtime data systems 1st Edition. Nathan Marz and James Warren. Manning Publications. ISBN-13: 978-1617290343 ISBN-10: 1617290343

  3. Principles of Distributed Database Systems (3rd Ed.). M. Tamer Ozsu and Patrick Valduriez. Springer. ISBN: 978-1-4419-8833-1

i. Grading and Student Evaluation

Writing is an essential part of the course and constitutes 40% of the course grade. (Hallmark 3)

There will be three programming assignments that are logically one big assignment split into three parts. The student will design and implement a parallel query processing system in the three assignments. Half of the points of the assignments will be allocated to organizing and writing of the documentation of the system which includes the design of the system and the user manual of the system. The documentation of the system will be posted on a wiki-like system and both instructor and peers will provide feedback on the writing (Hallmark 2). The student is required to make at least one revision of the documentation based on the instructor and peer feedback. The student must write at least 3 pages of documentation for each assignment for a total of 9 pages (Hallmark 4).

The course project requires the student to compare and evaluate the system they implemented in the programming assignments with an existing open-source or commercial system. The project will be graded based on a 10-minute oral presentation and an 8-page written report (Hallmark 4). A draft of the report must be submitted by week 15. After the instructor has provided feedback on the draft, the student must submit a final report by the project due date (Hallmark 2).

j. Classroom policies

Standard classroom policies of the College of Natural Science apply.

Late policy: work submitted past due date and time will receive zero credits.

Examinations: No make-up exams will be given.

Student Conduct: All students are expected to conduct themselves above and beyond the standard set forth in UH Systemwide Student Conduct Code.

Disability: Any student who feels s/he may need an accommodation based on the impact of a disability is invited to contact the instructor privately. The instructor would be happy to work with you, and the KOKUA Program (Office for Students with Disabilities) to ensure reasonable accommodations in the course. KOKUA can be reached at (808) 956-7511 or (808) 956-7612 (voice/text) in room 013 of the Queen Liliuokalani Center for Student Services.

k. Weekly schedule of topics and readings, including exam dates.

Week 1: Introduction. Virtualization & Docker. Client-Server programming.

Week 2: Parallel Database Systems.

Week 3: Storage systems. Assignment 1 due.

Week 4-5: Parallel Query Processing.

Week 6: Designing Data-Intensive Applications. Assignment 2 due.

Week 7: Data Warehousing. NoSQL systems.

Week 8: Indexing, Storage, Encoding, Evolution

Week 9: Replication and Partitioning. Assignment 3 due.

Week 10: Transactions & Concurrency Control. Project proposal due.

Week 11: Reliability, Consistency and Consensus.

Week 12: P2P systems.

Week 13: Lambda Architecture: Batch Layer, Map-Reduce/Hadoop, Spark, Serving Layer

Week 14: Lambda Architecture: Speed Layer, Stream Processing.

Week 15: Big Data Ethics. Draft of project report due.

Week 16: Presentation of Course Projects. Final project report due.