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
  • Use our Slack Message Board! (Join here)
  • Check the syllabus for a sense of what is to come!

Schedule

Week Content
Week 1 Wednesday 1/18/23: Intro to DB - Slides
- Lab 1: HTML+CSS
- HW1: Due Tues 1/24
Week 2 Monday 1/23/23: DBMS and Course Outline - Slides
Wednesday 1/25/23: Relational Model Lecture - Slides
- Lab 2: Python + Flask
- HW2: Due Fri 2/3
Week 3 Monday 1/30/23: SQL DDL Slides
Wednesday 2/1/23: SQL DML Slides
- Lab 3: SQLite
- HW3 : Due Tues 2/7 11:59PM
Week 4 Monday 2/6/23: ER Model - Slides
Wednesday 2/8/23: Normalization - Slides
- Lab 4: DB Design - Replit Due Sat 2/11 11:59PM
Week 5 Monday 2/13/23: Functional Dependencies - Slides
Wednesday 2/15/23: Decomposition and BCNF
- Lab 5: Flask + SQL by Sun 2/19
- HW 5: Normalization due Tues 2/21 - Normalization Reference Sheet
Week 6 Monday 2/20/23: Presidents Day - No Class
Wednesday 2/22/23: Web Apps - Slides
- Lab 6: Sessions - Exercises
- Shopping Cart Mini Project due 3/21
Week 7 Monday 2/27/23: Exam Review - Slides
Wednesday 3/1/23: EXAM
- Lab: EXAM
Week 8 Monday 3/6/23: Cloud Scale Apps - Slides
Wednesday 3/8/23: Project Overview - Slides
- Lab 7: Sessions - Gwordle Lab
Week 9 Spring Break!
Week 10 Monday 3/20/23: Agile Development - Slides
Wednesday 3/22/23: Team Work
- Lab 8: Gitting Started - Phase 1 Git Rep
Week 11 Monday 3/27/23: DB Internals - Slides
Wednesday 3/29/23: Lab: Sqlite to MySQL
- Mentor Meeting
Week 12 Monday 4/3/23: RDBMS Challenges - Slides
Wednesday 4/5/23: Lab
- Mentor Meeting
Week 13 Monday 4/10/23: NoSQL
Wednesday 4/12/23: Phase 1
- due in class
Week 14 Monday 4/17/23: Relational Algebra
Wednesday 4/19/23: Lab
- Mentor Meeting
Week 15 Monday 4/24/23: Indexes / Optimization
Wednesday 4/26/23: Mentor Meeting
- (Designated Monday)
Finals Week Phase 2 Due!

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