Database Design Syllabus

From Knowledge Kitchen
Jump to: navigation, search


Overview

In this course, we introduce principles and applications of database design. 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 learn to build web apps that allow users to view and manipulate the data through web or mobile interfaces.

One class project will use a MySQL database to manage data along with PHP to present a user-friendly web interface. In addition, we explore using Python and SQLite for smaller portable applications. We broaden our understanding of contemporary databases by delving into the field of NoSQL databases, using MongoDB as our example. Students are encouraged to explore specific database issues and data complexities in their own fields of study and expertise.


Instructor

Prerequisites

Prerequisite courses

You are expected to have already taken the following courses, or their equivalents:

Requisite knowledge

You are welcome to take this course, even if you haven't completed the above courses, so long as you have mastered all the common web page layouts using HTML & CSS, and the computer programming concepts listed below.


Computer programming concepts you must understand before taking this course

Books

Required

Learning MySQL

Author: Tahaghoghi and Williams
Publisher: O'Reilly
Print ISBN: 978-0-596-00864-2
ISBN 10: 0-596-00864-3
Ebook ISBN: 978-0-596-10526-6
ISBN 10: 0-596-10526-6

PHP, Mysql,JavaScript, & CSS

Author: Robin Nixon
Publisher: O;Reilly
Publication Date: September 3, 2012, Second Edition
ISBN-10: 1449319262
ISBN-13: 978-1449319267

MongoDB: The Definitive Guide, 2nd Edition

Author: Kristina Chodorow
Publisher: O'Reilly Media
Released: May 2013
Print ISBN: 978-1-4493-4468-9
ISBN 10:1-4493-4468-2
Ebook ISBN: 978-1-4493-4467-2
ISBN 10:1-4493-4467-4

Optional

MongoDB and Python: Patterns and processes for the popular document-oriented database

Author: Niall O'Higgins
Publisher: O'Reilly Media
ISBN-10: 1449310370
ISBN-13: 978-1449310370

Big Data : a revolution that will transform how we live, work, and think

Author: Viktor Mayer-Scheinberger
Publisher: Houghton Mifflin Harcourt
ISBN: 0544002695
on reserve at the Bobst Library

Assignments

  • due before the due date indicated on the schedule
  • you lose a 10% penalty for every 24 hours an assignment is late, up to a maximum penalty of 30%
  • late homework will not be accepted after a week
  • submit assignments to db-homework [at] onepotcooking [dot] com
  • include your name and the assignment in the subject of your email
  • if submitting multiple files, send them as a single zip file
  • unless you have good reason to do otherwise, follow best-practices for all basic file names and file extensions

Grading

Grades are calculated according to the following formula:

  • 60% assignments
  • 20% midterm
  • 20% final exam

The Tentative Plan

  • Scrubbing and massaging data using Python
  • Database theory and relational database design
  • SQL programming; We will use MySQL in class and also discuss Oracle and PostGreSQL
  • Implementation of a database application on the web using MySQL for the data and PHP to build the user interface (Note: PHP is not a pre-requisite; we will study PHP tools available for working with MySQL in class.)
  • An overview of SQLite and Python
  • NoSQL: We will study MangoDB
  • Data Visualization
  • Concepts in database management


Getting help

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

Tutoring

Tutoring with Hashim (db.design.web.impl [at] gmail.com) and Muaz (ma3585 [at] nyu.edu). Tutoring takes place in WWH room 412, unless otherwise noted:

Monday

  • 9:30 - 11:00 AM (Hashim)

Tuesday

  • 11:00 - 12:00 PM (Hashim)

Wednesday

  • 10:00 - 11:00 AM (Hashim)
  • 2:00 - 6:00 PM (Muaz)

Thursday

  • 1:00 - 3:30 PM (Hashim, by appointment only; please email for a Skype or in-person meeting)
  • 2:00 - 6:00 PM (Muaz)

Friday

  • 10:00 AM - 12:00 PM (Muaz, by appointment only; please email for a Skype or in-person meeting)

Saturday

  • 9:00 - 2:00 PM

Talk with the professor

  1. see me before class
  2. see me after class
  3. 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.

Credits

Parts of this syllabus have been plagiarized from syllabi by Professor Deena Engel.