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 traditional relational databases, along with NoSQL database systems. 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 and classroom discussions will be required.

Announcements

Schedule

All deadlines for the class are found below. Deadlines might not be completely accurate until the work is assigned. Lab work is due the next day (Thursday night) unless otherwise noted. All deadlines are at 11:59pm unless otherwise noted. For teamwork, remember to fill out the form to tell us your team name and members.

Week Content
Week 1 Monday 1/15/24: MLK Day - No Class
Wednesday 1/17/24: Intro to DB and Web Lecture and Lab Slides
- Lab 1: HTML+CSS
- Student Bios from lab: Due Fri 1/19
- HW1: Due Fri 1/26
Week 2 Monday 1/22/24: DBMS and Course Outline Slides
Wednesday 1/24/24: Relational Model Lecture and Lab Slides
- Lab 2: Python + Flask
- Advanced Routes and Templates from lab: Due Thurs 1/25
- HW2: Due Fri 2/2
Week 3 Monday 1/29/24: SQL DDL Slides
Wednesday 1/31/24: SQL DML Lecture and Lab Slides
- Lab 3: SQLite
- HW3 - Due Tues 2/6
Week 4 Monday 2/5/24: ER Model Slides
Wednesday 2/7/24: Normalization Lecture and Lab Slides
- Lab 4: DB Design
Week 5 Monday 2/12/24: Functional Dependencies Slides
Wednesday 2/14/24: Decomposition and BCNF Lecture
- Lab 5: Flask + SQL Slides - submit Lab 5 Activities by Sun 2/18
- HW 5: Normalization due Tues 2/20 - Normalization Reference Sheet
Week 6 Monday 2/19/24: President’s Day - No Class
Wednesday 2/21/24: Web Apps Lecture slides
- Lab 6: Sessions - submit Lab 6 github by Friday 3/1
- Shopping Cart Mini Project due 3/12
Week 7 Monday 2/26/24: Exam Review
Wednesday 2/28/24: EXAM Lecture and Lab Slides
- Lab: EXAM
Week 8 Monday 3/4/24: Cloud Scale Apps Slides
Wednesday 3/6/24: Project Overview Slides
- Lab 7: Sessions - Gwordle Lab Due Thursday 3/7
Week 9 Monday 3/11/24: Spring Break
Wednesday 3/13/24: Spring Break
-
Week 10 Monday 3/18/24: Agile Development Slides
Wednesday 3/20/24: Team Work
- Lab 8: Gitting Started- Phase 1 Git Repo
- Create a board on Trello
Week 11 Monday 3/25/24: DB Internals Slides
Wednesday 3/27/24: Lab: Sqlite to MySQL
- Mentor Meeting
Week 12 Monday 4/1/24: RDBMS Challenges Slides
Wednesday 4/3/24: Lab
- Mentor Meeting
Week 13 Monday 4/8/24: NoSQL Slides
Wednesday 4/10/24: Phase 1 Demos
- due in class
Week 14 Monday 4/15/24: AI and you
Wednesday 4/17/24: Phase 2 push
- Mentor Meeting
Week 15 Monday 4/22/24: Mentor Meeting
Wednesday 4/24/24: Focus Group
- Focus group
Week 16 Monday 4/29/24: Performance / Indices Slides
Wednesday 5/1/24: Security Lecture and Lab Slides
-

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