CIS 450/550: Database & Information Systems (Spring 2019)

Time: 1:30-2:50 pm, Tuesdays and Thursdays

Location: Skirkanich Hall, Berger Auditorium

Instructor:
    Mayur Naik, mhnaik@cis.upenn.edu

    Office hours: 11 am - noon, Monday (or by appointment)
    Location: Room 610, Levine Hall
Teaching Assistants:
  • Garvit Gupta, garvit@seas
  • Anant Maheshwari, anantm95@seas
  • Shilpi Bose, shilpib@seas
  • Gayatri Manavi, gayatrim@seas
  • Swachhand Lokhande, swachhal@seas
  • Sam Leavitt, leavitts@wharton
  • Vatsalya Prakash, vatsalya@seas
  • Digvijay Chauhan, dchauhan@seas

  • Office hours: 5-7 pm weekdays (announced each week on Piazza)
    Location: Room 612, Levine Hall
Course Description:

Structured information is the lifeblood of commerce, government, and science today. This course provides an introduction to the broad field, covering a range of topics relating to structured data, ranging from data modeling to logical foundations and popular languages, to system implementations. We will study the theory of relational and XML data design, the basics of query languages, databases' role in the Web, information integration, object-to-relational mappings, the connections between databases, key-value stores and "big data", database tuning and internals, and recent "cloud" data processing techniques.

The course project will exercise students' knowledge of database design, AJAX Web programming, and information integration, to build a social network photo sharing site.

Topics:

Database design, relational algebra and calculus, query languages (SQL, Datalog, XQuery), views, object and XML mappings, indexing, consistency, database tuning, servlet programming with AJAX, Map/Reduce and its relationship to SQL, basics of information retrieval and recommendation systems.

Format:

The format is two 1.5-hour lectures per week, plus assigned readings. There will be regular homework assignments, two midterm exams, and a team project.

Prerequisites:

At least 12 months' programming experience, with at least 6 months' experience in the Java language (CIS 120, CIT 591, or equivalent). Familiarity with logic and logical reasoning.

Schedule: See Canvas