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

1:30-3:00 pm, Tuesdays and Thursdays

Section 450: Towne Building, Room 315
Section 550: Skirkanich Hall, Berger Auditorium

Instructors:
  • Mayur Naik, mhnaik@cis.upenn.edu
    Office hours: TBD
    Location: Room 610, Levine Hall
  • Abdussalam Alawin, alawini@cis.upenn.edu
    Office hours: TBD
    Location: Room 571, Levine Hall
Teaching Assistants:
  • Shivendra Pandey, pshiv@seas.upenn.edu
  • Raunaq Abhyankar, raunaq@seas.upenn.edu
  • Nidhi Angle, vnidhi@seas.upenn.edu
  • Digvijay Chauhan, dchauhan@seas.upenn.edu
  • Garvit Gupta, garvit@seas.upenn.edu
  • Kashish Gupta, kashishg@wharton.upenn.edu
  • Hari Parameswaran, harip@seas.upenn.edu

  • Office hours: 4-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, plus a team project, a midterm, and a final exam.

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