knowledge-kitchen / courses / course-notes

Database Design & Implementation

Department of Computer Science

New York University

Schedule

Welcome

Date Class Topics Notes Helpful resources Quiz due Exercise due
1/23 1 Welcome - Course intro
- Syllabus
- Discord for Education
     
1/25 2 Python Python Python for Everyone (py4e):
- Variables
- Conditionals
- Functions
- Iterations
- Strings
- Lists
- Dictionaries
- Tuples
Intake - Complete consent form
- Join Discord
- Create GitHub account

Plain text data

Date Class Topics Notes Helpful resources Quiz due Exercise due
1/30 3 Plain text data formats Plain text data formats py4e: - Files
- Text files code examples
Python - Set up Python
- Contemporary issues exercise
2/1 4 Data munging - Text files in Python
- Example Python code
Accessing O’Reilly Safari e-books

Big Data Handbook (bdh):
- Does This Data Smell Funny?
- Data Lurking in Plain Sight
Text files  
2/6 5 Workshop - raw data munging Workshop - raw data munging   Data munging  

Spreadsheets

Date Class Topics Notes Helpful resources Quiz due Exercise due
2/8 6 Spreadsheets Spreadsheets   Plain text data feedback  
2/13 7 Workshop - spreadsheets Workshop - spreadsheets Vicky Rampin’s slides   Workshop - raw data munging

SQL

Date Class Topics Notes Helpful resources Quiz due Exercise due
2/15 8 SQL CRUD SQLite intro Using SQLite:
- What is SQLite?
- Uses of SQLite
- Building and Installing SQLite (only Precompiled Distributions and An sqlite3 Primer)
- The SQL Language
- The SELECT Command
- Spreadsheets
- Spreadsheets feedback
 
2/20 9 SQL joins - SQL joins
- SQL inner joins
- SQL left, right, and reflexive joins
SQL joins example code SQL CRUD Workshop - spreadsheets
2/22 10 Workshop - SQL Workshop - SQL   SQL joins  

Relational database design

Date Class Topics Notes Helpful resources Quiz due Exercise due
2/27 11 Normalization Normalization - A Simple Guide to Five Normal Forms in Relational Database Theory
- Database Design, Chapter 12
SQL feedback  
2/29 12 Entity-relationship diagrams Entity-Relationship Diagrams Relational Database Design and Implementation:
- Chapter 3 - Why Good Design Matters
- Chapter 4 - Entities and Relationships
- Chapter 5 - The Relational Data Model
Normalization Workshop - SQL
3/5 13 Workshop - database design Workshop - database design   Entity-Relationship Diagrams  

Exam 1

Date Class Topics Notes Helpful resources Quiz due Exercise due
3/7 14 Review Exam 1 review Exam Practice:
- Quiz
- GitHub Repository
Relational database design feedback  
3/12 15 Exam 1       Workshop - database design

MongoDB

Date Class Topics Notes Helpful resources Quiz due Exercise due
3/14 16 MongoDB CRUD - MongoDB setup
- MongoDB CRUD
MongoDB documentation:
- MongoDB CRUD Operations
- MongoDB db.collection.find()
Exam 1 feedback  
3/26 17 MongoDB CRUD MongoDB aggregation MongoDB documentation:
- MongoDB Data Model Design
- MongoDB Data Model Examples and Patterns
   
3/28 18 Workshop - MongoDB Workshop - MongoDB   MongoDB CRUD  

Web app implementation

Date Class Topics Notes Helpful resources Quiz due Exercise due
4/2 19 Web apps - The Web
- Intro to HTML
  MongoDB feedback  
4/4 20 Web apps - Pymongo & flask
- Example web app
Flask & pymongo documentation:
- Flask Quickstart
- Pymongo tutorial
  Workshop - MongoDB
4/9 21 Workshop - web apps Workshop - Web app   Web apps  

Pandas & Jupyter notebooks

Date Class Topics Notes Helpful resources Quiz due Exercise due
4/11 22 Jupyter notebooks Jupyter Notebooks   Web app feedback  
4/16 23 Pandas - Pandas
- Example Jupyter notebooks
10 minutes to Pandas    
4/18 24 Data visualization       Workshop - web app
4/23 n/a No class (Prof out)        
4/25 25 Workshop - pandas Workshop - pandas   Pandas  

Exam 2

Date Class Topics Notes Helpful resources Quiz due Exercise due
4/30 26 Review Exam 2 review Exam Practice:
- Quiz
- GitHub Repository
Pandas feedback Workshop - pandas
(No late work accepted beyond this date.)
5/2 27 Exam 2        

Addenda

Material that is not currently included in the course, but may be of interest to some:

Date Class Topics Notes Helpful resources Quiz Exercise due
n/a n/a Blockchain Blockchain slides - Cryptography code examples Blockchain