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.
Announcements
- The course will meet on Zoom for the first week! The link is posted on Blackboard
- You must complete this short welcome survey
- Use our Slack Message Board! (Join here)
- Check the syllabus for a sense of what is to come!
Schedule
Week | Content |
---|---|
Week 1 | Monday 1/10/22: Intro to DB and Web Slides - Video Wednesday 1/12/22: DBMS and Course Outline Lecture and Lab Slides - Video - Lab 1: HTML+CSS - HW1: Due Tues 1/18 |
Week 2 | Monday 1/17/22: MLK Day - No Class Wednesday 1/19/22: Relational Model Lecture and Lab Slides - Video - Lab 2: Python + Flask - HW2: Due Fri 1/28 |
Week 3 | Monday 1/24/22: SQL DDL Slides - Video Wednesday 1/26/22: SQL DML Lecture and Lab Slides - Video - Lab 3: SQLite - HW3 - Due Tues 2/1 11:59PM |
Week 4 | Monday 1/31/22: ER Model Slides - Video Wednesday 2/2/22: Normalization Lecture and Lab Slides - Video - Lab 4: DB Design Slides - submit Replit Due Sat 2/5 11:59PM |
Week 5 | Monday 2/7/22: Functional Dependencies Slides - Video Wednesday 2/9/22: Decomposition and BCNF Lecture - Video - Lab 5: Flask + SQL Slides - submit Lab 5 Replit by Sun 2/13 - HW 5: Normalization due Tues 2/15 - Normalization Reference Sheet |
Week 6 | Monday 2/14/22: Web Apps Slides - Video Wednesday 2/16/22: Exam Review Lecture slides - Video - Lab 6: Sessions - submit Lab 6 replit by Friday 2/25 - Shopping Cart Mini Project due 3/8 |
Week 7 | Monday 2/21/22: Presidents Day - No Class Wednesday 2/23/22: EXAM - Lab: EXAM |
Week 8 | Monday 2/28/22: Cloud Scale Apps Slides - Video Wednesday 3/2/22: Project Overview Slides - Video - Lab 7: Sessions - Gwordle Lab: Frontend, Backend, Integrated Replits |
Week 9 | Monday 3/7/22: Agile Development Slides - Video Wednesday 3/9/22: Team Work - Video - Lab 8: Gitting Started - Phase 1 Git Rep - Create a board on Trello |
Week 10 | Spring Break! |
Week 11 | Monday 3/21/22: DB Internals Slides - Video Wednesday 3/23/22: Lab: Sqlite to MySQL - Video - Mentor Meeting |
Week 12 | Monday 3/28/22: RDBMS Challenges Slides - Video Wednesday 3/30/22: Lab - Video - Mentor Meeting |
Week 13 | Monday 4/4/22: NoSQL Slides - Video Wednesday 4/6/22: Phase 1 Demos - due in class |
Week 14 | Monday 4/11/22: Guest Lecture - Michael Trotter on Data Streaming Wednesday 4/13/22: Start Phase 2 - Mentor Meeting |
Week 15 | Monday 4/18/22: Indexes / Optimization Slides Wednesday 4/20/22: Security Lecture and Lab Slides - Mentor Meeting |
Week 16 | Monday 4/25/22: The End Slides Wednesday 4/27/22: Mentor Meeting - (Designated Monday) |
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