This course will expose students to design and implementation of Database systems and team software development. The course introduces relational database design, query languages including SQL, theory behind the design of relational schemas and normal forms, database application development, and team software development. It introduces Not just SQL (NoSQL) database systems, types of NoSQL databases, and design of NoSQL databases. A semester long team project requiring the design and implementation of a relational database system and full stack development. As part of the Writing in the Disciplines (WID) requirement, a number of written reports will be assigned (in this class and in CS2501) and classroom discussions will be required.

Note: Students taking this course are also expected to be taking CS2501 to meet the degree requirements.

WARNING: This version of the site is from 2021 - perhaps you want a newer version?

Announcements

Schedule

Week Content
Week 1 Monday 1/11: Intro to Databases and the Web Lecture Slides - Video (see Slack for password)
Wednesday 1/13: More DB Intro and Course Logistics Lecture Slides - HTML/CSS Lab Slides - Lecture+Lab Video
DUE: Lab Activity 2 on Friday 1/15 - submit by registering here
Week 2 No classes.
DUE: Python Training and Assignment by Sunday 1/24 11:59PM
Week 3 Monday 1/25: Relational Model Lecture Slides - Video (see Slack for password)
Wednesday 1/27: Relational Algebra Lecture Slides - Python Flask Web Development Lab Slides - Lab/Lecture Video (see Slack for password)
Suggested: Read Building Queries with Relational Algebra
DUE: Lab 2 on Tuesday 2/2 11:59PM - submit here
Optional: Resubmit RPS HW by Friday 2/5 (see #course-announcements on slack)
Week 4 Monday 2/1: SQL DDL Lecture Slides - Video
Wednesday 2/3: SQL DML Lecture/Lab Slides - Video
DUE: SQL Lab on Tuesday 2/9 11:59PM - submit here
DUE: Relational Algebra HW on Monday 2/15 11:59PM
Week 5 Monday 2/8: Entity-Relationship Model Lecture Slides - Video
Wednesday 2/10: Normalization Slides - Flask + SQL Lab Slides - Lecture + Lab Video
DUE: Flask+SQL Lab due Tuesday 2/16 11:59PM - submit here
Week 6 Monday 2/15: NO CLASS
Wednesday 2/17: More Normal Forms Lecture Slides - Lecture Video
AWS Lab Slides - Lab Video (sorry, first few minutes were not recorded) - AWS Installation Guide
Suggested: Read Dr. Simha’s Normalization Notes
Note: This week’s lab does not need to be submitted, but you will use the code for a later HW
Week 7 Monday 2/22: Project Overview & Shopping Cart Lecture Slides - Video - Shopping Cart ER Diagram
Wednesday 2/24: Exam Review Slides - Video
DUE: SQL HW due 2/24 before class
DUE: Normalization HW due 2/24 before class
Week 8 Monday 3/1: MIDTERM! - Exam Info Page
Wednesday 3/3: Git and Project Prep Lab Slides - Lecture/Lab Video
Due: Shopping Cart HW due Monday 3/8 before class March 14th (UPDATED)
Get VS Code set up!
Project Details
Week 9 Monday 3/8: Agile Development Lab Slides - Video
Wednesday 3/10: Mentor Meetings and DBMS Internals Slides - Video
Due 3/10: Each team must complete their team charter with their Git (Lab 8) and Agile development (Lab 9) plans.
Due 3/10: All team members must complete the Team Feedback Form
Week 10 SPRING BREAK!
Project 5 Questions due Wednesday March 17 - submit as git issue
Week 11 Monday 3/22: Programming tips and Limitations of RDBMS Lecture Slides - Video
Wednesday 3/24: Python Data Structures Lab Slides - Video and Mentor Meetings
Week 12 Monday 3/29: NoSQL Lecture Slides - Video
Wednesday 3/31: NoSQL Part 2 Lecture Slides - Data Analytics in Pandas Lab Slides - Video (starts ~7:00)
Week 13 Monday 4/5: Project Phase 1 Preliminary Demo - Team Feedback Form
Wednesday 4/7: Indexing Slides - Security Slides - Video
Week 14 Monday 4/12: Project Phase 1 DUE
Wednesday 4/14: Phase 2 Intro Video and Sophomore Focus Group
Week 15 Monday 4/19: Web App Architecture Slides - Video
Wednesday 4/21: Web Services Lab Slides - Video and Mentor Status Checks
Week 16 Monday 4/26: No-Grade Quiz + Course Evals - Video
Wednesday 4/28: Web Tech + Mentor Meetings Slides - Video
Thursday 4/29 (GW Monday): Course Summary Slides - Video

Topics

  • Course Overview and Introduction to Database Systems
  • Introduction to the Relational Model and Relational Algebra
  • SQL and programming in SQL (MySQL)
  • Theory of relational schema design and normal forms
  • Entity Relation Model and ER to Relational mapping
  • Database Management System Design
  • Views, Security in SQL
  • Introduction to NoSQL and Data Analytics
  • Web Application Development
  • Team Software Development