knowledge-kitchen / courses / course-notes

Database Design & Implementation

Department of Computer Science

New York University

Schedule

Date Class Topics Notes Helpful resources Quiz due Exercise due
9/5 1 Welcome Course intro Syllabus    
9/7 2 Python - Discord for Education
- Python
Videos:
- Python crash course
- Set up Visual Studio Code for Python programming

Python for Everyone (py4e):
- Variables
- Conditionals
- Functions
- Iterations
- Strings
- Lists
- Dictionaries
- Tuples
Intake - Complete consent form
- Join Discord
- Create GitHub account
9/12 3 Plain text data formats Plain text data formats - Video: Plain-text data formats
- py4e: - Files
- Text files code examples
Python - Set up Python
- Contemporary issues exercise
9/14 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  
9/19 5 Workshop - raw data munging Workshop - raw data munging   Data munging  
9/21 6 Spreadsheets Spreadsheets      
9/26 7 Workshop - spreadsheets Workshop - spreadsheets Vicky Rampin’s slides   Workshop - raw data munging
9/28 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  
10/3 9 SQL joins - SQL joins
- SQL inner joins
- SQL left, right, and reflexive joins
SQL joins example code SQL CRUD Workshop - spreadsheets
10/5 10 Workshop - SQL Workshop - SQL   SQL joins  
10/10 n/a no class (Legislative Day)        
10/12 11 Normalization Normalization - A Simple Guide to Five Normal Forms in Relational Database Theory
- Database Design, Chapter 12
   
10/17 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
10/19 n/a no class (Prof. out)        
10/24 13 Workshop - database design Workshop - database design   Entity-Relationship Diagrams  
10/26 14 Review Exam 1 review Exam Practice:
- Quiz
- GitHub Repository
   
10/31 15 Exam 1       Workshop - database design
11/2 16 MongoDB CRUD - MongoDB setup
- MongoDB CRUD
Video: MongoDB setup

NYU CIMS documentation:
- MongoDB Database Management on CIMS
- Accessing MongoDB on CIMS

MongoDB documentation:
- MongoDB CRUD Operations
- MongoDB db.collection.find()
   
11/7 17 MongoDB CRUD MongoDB aggregation MongoDB documentation:
- MongoDB Data Model Design
- MongoDB Data Model Examples and Patterns
   
11/9 18 Workshop - MongoDB Workshop - MongoDB   MongoDB CRUD  
11/14 19 Web apps - The Web
- Intro to HTML
     
11/16 20 Web apps - Pymongo & flask
- Example web app
Flask & pymongo documentation:
- Flask Quickstart
- Pymongo tutorial
  Workshop - MongoDB
11/21 21 Workshop - web apps Workshop - Web app   Web apps  
11/23 n/a no class (Thanksgiving)        
11/28 22 Jupyter notebooks Jupyter Notebooks      
11/30 23 Pandas - Pandas
- Example Jupyter notebooks
10 minutes to Pandas    
12/5 24 Data visualization       Workshop - web app
12/7 25 Workshop - pandas Workshop - pandas   Pandas  
12/12 26 Review Exam 2 review     Workshop - pandas
(No late work accepted beyond this date.)
12/14 n/a no class (Prof out)        
12/21 @12:00 - 13:50 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