Syllabus

  • Class hours: Tuesdays and Thursdays 3:30 – 4:45 PM, WWH Room 102
  • Office Hours: Mondays 4:00-5:00; Thursdays 1:30-3:30 in WWH Room 422 and by appointment
  • Tutoring – 5-8 PM on Tuesdays and Thursdays;   4-8 PM on Fridays in the ITS / 4th Street Lab
  • Tutoring Email Address: You can reach Matt Lee at f300601t@cs.nyu.edu - Please note that Matt will answer emails during his regular tutoring hours. Matt can also be available on Skype by appointment during regular tutoring hours.
  • Exam Schedule:
    • Midterm Exam – 10/17/2013 in class
    • Final Exam – 12/19/13 – 4:00pm – 5:50pm, Meyer Hall, Room 122 (changed: 12/2/2013)

CSCI-UA.60 can be used as one of the four courses which make up the Web Programming and Applications Minor.

This course introduces principles and applications of database design. Students learn to use a relational database system; implement a Web interface for the users; and write applications using SQL. Students explore principles of database design and apply those principles to computer systems in general and to their respective fields of interest in particular. Students will also become acquainted with other implementations such as SQLite with Python and NoSQL (MongoDB).

Help:

If at any time you feel that you are falling behind or are overwhelmed by the material, let me know: I will be very happy to help you.


Prerequisites:

For non-majors: Web Design and Computer Principles ( CSCI-UA.4) or equivalent and Introduction to Computer Programming (CSCI-UA.2) or experience programming in Java, Python or an equivalent programming experience such as in C or C++.

Required Text Books:

book_learningMySQL Learning MySQL by Tahaghoghi and WilliamsPublished by O’Reilly
http://shop.oreilly.com/product/9780596008642.do
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
book_beginningDesign Beginning Database Design: From Novice to Professional [Paperback]
By Clare Churcher
Publisher: Apress;
http://www.apress.com/9781590597699 ISBN-10: 1430242094
ISBN-13: 978-1430242093
book_mongoDB_definitiveGuide MongoDB: The Definitive Guide, 2nd Edition (added 8/5/2013)
By Kristina Chodorow
Publisher: O’Reilly Media, Released: May 2013
http://shop.oreilly.com/product/0636920028031.do
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 Text Books:

book_Learning_PHP_MySQL

Note 8/3/2013: This book is no longer in print and will not be used in class (but it can be a helpful book to buy “used” for students especially interesting in PHP/MySQL projects.).

Learning PHP and MySQL: Step-by-Step Guide for Creating Database Driven Web Sites
By Michele E. Davis, Jon A. Phillips
Publisher: O’Reilly Media
http://shop.oreilly.com/product/9780596101107.do
Print ISBN: 978-0-596-10110-7 | ISBN 10: 0-596-10110-4
Ebook ISBN: 978-0-596-10582-2 | ISBN 10: 0-596-10582-7

book_mangoDB MongoDB and Python: Patterns and processes for the popular document-oriented database [Paperback]By Niall O’HigginsPublisher: O’Reilly Media
http://shop.oreilly.com/product/0636920021513.do
ISBN-10: 1449310370 … ISBN-13: 978-1449310370

 

book_bigData
Big data : a revolution that will transform how we live, work, and think
Viktor Mayer-Schönberger
Houghton Mifflin Harcourt
ISBN: 0544002695
on reserve at the Bobst Library

Help Options:

Whenever you have a question about the course material, please feel free to drop by during my office hours or write me an email message. If at any time you feel that you are falling behind or are overwhelmed by the material, let me know and I will be very happy to help you. In addition, a tutor will be available to work with this class.

Homework Policy:

  • Ten percent of the grade will be deducted for each week late, with a possible maximum deduction of 30%.
  • Homeworks will not be accepted past the third week after their due date without the instructor’s permission.
  • You should save all of your programs and back them up or store copies of the files for the entire semester.
  • You may submit *one* homework up to one week late without penalty. In that case, please be sure to advise the instructor before the due date & time (midnight of the due date) that you will be using your “freebie extension”.
  • Please make sure to read the CS department statements on Academic Integrity for more details and let me know if you have any questions.

Grading: 

This course will require one mid-term exam (20% of the final grade); one final exam (20% of the final grade); and approximately eight homework assignments (accounting for 60% of the final grade). Three of the assignments together constitute a final project. All students work individually and the data / content of the database project(s) may reflect students’ major or minor studies or other special interest(s).

Unix account:

All students will be assigned a UNIX account on a university web server for this class to use for their own web sites.

Software:

The primary software for this course will be available on the web server that we use in class. Any additional software that you need (e.g. Adobe’s Photoshop) will be available to you at no cost through the ITS computer labs.

Topics

  • Working with a variety of data sources; using Python to write programs to “scrub” or prepare data for use in a database.
  • Database theory and design for relational databases
  • 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 use MangoDB.
  • Concepts in database management

Schedule

(Note: This is a proposed schedule and may be subject to change depending on extenuating circumstances … such as hurricanes etc … )

# Date Topic
1 9/3 Introduction to the Class
Using Python to clean up and modify data files
2 9/5 No class – reading assignment. This session will be made up later in the semester as an optional additional workshop for students as they complete their final projects.
3 9/10 Python: “Scrubbing” a data file for data analysis. Part 1
Excel / Open Office Calc: using database functions for data analysis
4 9/12 Python: “Scrubbing” a data file for data analysis. Part 2
5 9/17 Python – obtaining data directly from a website. Part 3.
“Data in the Wild” – lecture on obtaining data and an overview of the many formats we will see: CSV; JSON; XML; and more.
6 9/19 MySQL #1 – working with single tables for data analysis
7  9/24 MySQL #2 – working with single tables for data analysis
8 9/26 MySQL #3 – working with single tables for data analysis
9 10/1 Database Design #1; introduction to normalization; introduce first design problem
10 10/3 Design #2; Topics in  Normalization.
Design problem #2
11 10/8 Design #3; Further discussion on normalization and topics in data integrity.
Design problem #3.
Building/Using ER diagrams.
12 10/10 Design #4: Reverse engineering Example; Discussion on the project life cycle with respect to database applications; overview of a database project
Using software to draw ER diagrams and generate MySQL scripts for implementation on the web.
Review for midterm.
10/15 Academic / Fall Holiday
13 10/17 Midterm Exam
14 10/22 Return midterm exams and discuss. MySQL #4 – Using MySQL as a relational database
15 10/24 MySQL #5 – Using MySQL as a relational database
16 10/29 MySQL #6 – Using MySQL as a relational database
17 10/31 Wrap up MySQL and introduction to PHP.
18 11/5 PHP & MySQL #1
19 11/7 PHP & MySQL #2
20 11/12 PHP & MySQL #3
21 11/14 PHP & MySQL #4
22 11/19 Python / SQLite – #1
23 11/21 Python / SQLite – #2
24 11/26 Using MongoDB for data analysis – #1
11/28 Thanksgiving
25 12/3 Using MongoDB for data analysis – #2
26 12/5 Using MongoDB for data analysis – #3
27 12/10 Topics in Databse Administration
28 12/12 Review for final exam
Discussion on careers in database technologies and what to expect in technical interviews; interview practice.