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
- You must complete this short welcome survey
- Use our Discord Server! (Join here)
- Check the syllabus for a sense of what is to come!
Technical Resources
- Please find a git cheatsheet to help you with
gitcommands. - Python 3.x https://www.python.org/downloads/
- Flask https://flask.palletsprojects.com/en/stable/installation/
- SQLite Guide to setting up SQLite for VSCode
- SQLite Guide to setting up SQLite on the terminal
- Class requirements for how to conduct group work
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 members.
| Week 1 | Monday 1/12/26: Intro to DB and Web Slides Wednesday 1/14/26: DBMS and Course Outline Lecture and Lab Slides - Lab 1: HTML+CSS - Student Bios from lab: Due Fri 1/16 - HW1: Due Fri 1/23 |
| Week 2 | Monday 1/19/26: MLK Day - no class Wednesday 1/21/26: Relational Model Lecture and Lab Slides - Lab 2: Python + Flask - Due Thu 1/22 - HW2: Due Fri 1/30 |
| Week 3 | Monday 1/26/26: SQL DDL Slides Wednesday 1/28/26: SQL DML Lecture and Lab Slides - Lab 3: SQLite- See the guide to install SQLite before the lab - HW3: Due Fri 2/6 |
| Week 4 | Monday 2/2/26: ER Model Slides Wednesday 2/4/26: Normalization Lecture and Lab Slides - Lab 4: DB Design - HW4 - Normalization: Due Fri 2/20 - Normalization Reference Sheet |
| Week 5 | Monday 2/9/26: Functional Dependencies Slides Wednesday 2/11/26: Decomposition and BCNF Lecture - Lab 5: Flask + SQL Slides - Due Thu 2/12 |
| Week 6 | Monday 2/16/26: President’s Day - No Class Wednesday 2/18/26: Web Apps Lecture slides - Lab 6: Sessions - Due Thu 2/19 - HW5 - Shopping Cart: Due Fri 3/6 |
| Week 7 | Monday 2/23/26: Exam Review Wednesday 2/25/26: EXAM Lecture and Lab Slides - Lab: EXAM |
| Week 8 | Monday 3/2/26: Team Work for the Project Wednesday 3/4/26: Project Overview Slides - Lab 7: Gitting Started- Due Thu 3/5 - Project active! - Team form |
| Week 9 | Monday 3/9/26: Spring Break Wednesday 3/11/26: Spring Break - |
| Week 10 | Monday 3/16/26: Agile Development Slides Wednesday 3/18/26: Cloud Data Lecture and Lab Slides - Lab 8: Sqlite to MySQL. RDS. |
| Week 11 | Monday 3/23/26: AI, Jobs, future of software Wednesday 3/25/26: AI, Jobs, future of software - Mentor Meeting |
| Week 12 | Monday 3/30/26: DB Internals Slides Wednesday 4/1/26: Phase 1 Demos - Due in class |
| Week 13 | Monday 4/6/26: RDBMS Challenges Slides Wednesday 4/8/26: Phase 2 push - Mentor Meeting |
| Week 14 | Monday 4/13/26: NoSQL Wednesday 4/15/26: Phase 2 push - Mentor Meeting |
| Week 15 | Monday 4/20/26: Mentor Meeting Wednesday 4/22/26: Focus Group - Focus group |
| Week 16 | Monday 4/27/26: Performance / Indices Slides Wednesday 4/29/26: 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