Open main menu

Database Design Syllabus


Contents

Overview

In this course, we introduce principles and applications of databases. We begin by studying issues related to data collection and discovery, and techniques for prepping and munging the raw data to shape it into a form that is ready for database storage. Studying the design of relational databases, we learn how to craft databases to model "real-world" data in a way that lends itself to the types of manipulation and analysis that we have in mind. Once we have a clear understanding of these issues in relational database design, we look at more advanced topics in data, such as data analysis in Python, NoSQL databases like MongoDB, web APIs, blockchain, and building simple web apps that publish data held in databases.

Instructor

Prerequisites

You are expected to understand the computer programming concepts listed below, whether via coursework or some other means:


Computer programming concepts you must understand before taking this course

Books

All books are available online:

  • via "Online Access" through NYU Libraries / O'Reilly Safari
  • free html / ebook versions supplied by author or publisher
  • database platform's documentation

Readings will be selected from the following books:

Assignment policy

Unless you have good reason to do otherwise, follow best-practices for all basic file names and file extensions

Late penalty

  • assignments are due before class on the due date indicated on the schedule
  • for every 24 hours that an assignment is late, we will apply a 10% penalty on the grade, up to a maximum penalty of 30%.
  • after 1 week, we will no longer accept the assignment.

Individual exercises

You are automatically granted two extensions for late work up to one week overdue. You can use these for either individual exercises or quizzes, but not for any work involving a team or group. You must notify the graders when you submit late work if you would like to use one of these extensions. Please do not ask for further extensions.

Group exercises

Work on group projects will not be accepted late.

Grading

Grades are calculated according to the following formula:

  • 10%: Quizzes
  • 40%: Assignments & Workshops
  • 25%: Midterm exam
  • 25%: Final exam

The Tentative Plan

  • Using python to prepare datafiles; explorations of "data in the wild"
  • Scrubbing and massaging data
  • Database theory and relational database design
  • SQL programming; We will use SQLite in class
  • An overview of Python integration
  • Implementation of a database application on the web using SQLite for the data and python to build the user interface
  • NoSQL: Using MongoDB to build a web-based python interface to your MongoDB data for your users
  • Introduction to data visualization; using python to build charts and graphs.
  • Concepts in database management

Getting help

Help resources available to you are listed in order of “seriousness” of your problem:

FAQ

Students are expected to consult the Student FAQ prior to asking questions of the tutors, professor, or other students. This allows us to focus our time on questions of greater significance.

Slack

Slack is a messaging system that is popular for teams. We will share a link to join the class's Slack workspace.

Tutoring

Our tutors are waiting to help you! All tutoring takes place in WWH Room 412 according to the following schedule:

  • TBD

Talk with the professor

  1. see me before class
  2. raise your hand during class
  3. see me after class
  4. come to my open office hours

Additional tutoring resources

Academic Integrity

Working with others and leveraging all resources available to you is a prerequisite for success. This is different from copying, cheating, plagiarism, and mental laziness. All submitted work must be your own. There are very reliable systems we use to detect plagiarism in computer code. If you submit any work that is not your own, you risk failure or worse.

Please read the Computer Science department policy on academic integrity.