Syllabus
Download the syllabus (Farsi) or Online
Home
Topics Covered
- Principles and Basic Concepts
- The Relational Data Model, Relational Algebra, and Relational Calculus
- Structured Query Language (SQL)
- The Entity-Relationship Data Model
- Database Design Theory
- Introduction to PostgreSQL
- Introduction to NoSQL (comparing and contrasting MongoDB with relational systems)
- Python database integration (connecting Python programs to both SQL and NoSQL databases)
Structure of the course
- Meets Twice Weekly
- Saturday, Monday (17:00 - 18:30)
- There will be several assignments throughout the course for students to practice the material covered.
- There will be a summative final project, in which students will integrate the tools and techniques they have learned into a cohesive whole.
Homework Assignments
Throughout the course, students will complete several homework assignments aimed at reinforcing the concepts covered in lectures and reading materials (See the homework page, which will be updated during the course). The due dates for these assignments will be posted on this website.
Please follow the instructions to turn in your homework:
- Homeworks must be submitted electronically as PDF files.
- Files should be named according to the following scheme:
- HW<2-digits homework number>_<LastName>_<FirstName>.pdf.
- For instance, my first homework would be called HW01_Vazan_Milad.pdf.
- Email your homework to vazan.sbu@gmail.com
Exams
The course will include two exams. Both exams will assess the required readings and topics covered in class. The first exam will be an “in-class” midterm, while the second will be a final exam scheduled during the University’s final examination period at the end of the semester.
If you need to miss the midterm test due to illness or a family affliction, please contact me by email. A make-up exam for the midterm might be organized.
Attendance and Participation
Attendance is required, and exceeding four absences may result in a penalty of up to 2 points off your total grade. Active participation in both in-class activities and the online message board is highly encouraged.
Grading
- Class attendance and participation: 2 points
- Homeworks: 4 points
- Final project: 3 points
- Midterm exam (1404/02/13): 4 points
- Final exam (1404/04/02 - 14:00-16:00): 7 points
Seeking Assistance
Here are the available help resources, organized by the urgency of your issue:
Messaging
Our course will utilize a Telegram group (link to be provided in class) as the primary communication platform for announcements and discussions. This is an ideal space for asking questions that can be answered by anyone. It’s best to use this resource for non-urgent inquiries.
Talk with the Instructor
For any issues at all, please reach out to the instructor:
- Speak with me before class
- Raise your hand or speak up during class
Collaboration Policy
You are encouraged to discuss the content of this course with anyone you like; however, it is essential to maintain academic integrity in your work. All homework assignments, projects, and exams must be completed independently, meaning you are not permitted to copy any part of another student’s solution, collaborate with others on your assignments, or use solutions from unauthorized sources, including the Internet. Therefore, the solution you submit for each assignment must be solely your own, reflecting your understanding and effort.
Generative AI Usage Guidelines
You are encouraged to use Generative AI tools like ChatGPT for general coding-related queries. However, refrain from asking these tools to directly solve problems from the course problem sets. Below are examples of acceptable questions:
- How can I remove duplicates in a SQL query?
- How do I handle database connection errors in Python?
- What are the differences between INNER JOIN and LEFT JOIN in SQL?
- What libraries are available for connecting Python to PostgreSQL?
Textbooks/Materials
My lecture notes are sufficient for students to successfully pass the examination.
There is no single textbook for this class. Instead, the material will be drawn from various texts and sources. For a general book that aligns with the course level, I recommend:
Other books which might be useful for some parts of the course are:
- Database Concepts by David M. Kroenke, David J. Auer, Scott L. Vandenberg, and Robert C. Yoder, 9th Edition, 2020.
- Database Principles: Fundamentals of Design, Implementation, and Management by Carlos Coronel, Steven Morris, Keeley Crockett, and Craig Blewett, Cengage, 3th Edition, 2020.
- Concepts of Database Management by Lisa Friedrichsen, Lisa Ruffolo, Ellen Monk, Joy L. Starks, and Philip J. Pratt, Cengage Learning, 2020.
- Grokking Relational Database Design by Dr. Qiang Hao and Dr. Michael Tsikerdekis, No Starch Press, 2024.
- Practical SQL: A Beginner’s Guide to Storytelling with Data by Anthony DeBarros, No Starch Press, 2nd Edition, 2022.
- SQL for Data Science: Data Cleaning, Wrangling and Analytics with Relational Databases by Antonio Badia, Springer Nature Switzerland AG, 2020.
- SQL for Data Scientists: A Beginner’s Guide for Building Datasets for Analysis by Renée M. P. Teate, Wiley, 2021.
- SQL for Data Analytics: Perform Fast and Efficient Data Analysis with the Power of SQL by Upom Malik, Matt Goldwasser, and Benjamin Johnston, Packt Publishing, 2019.
- Learn PostgreSQL: Build and Manage High-Performance Database Solutions Using PostgreSQL 12 and 13 by Luca Ferrari and Enrico Pirozzi, Packt Publishing, 2020.
- SQL Cookbook: Query Solutions and Techniques for All SQL Users by Anthony Molinaro and Robert de Graaf, O’Reilly Media, 2020.
- Mastering MongoDB 6.x: Expert Techniques to Run High-Volume and Fault-Tolerant Database Solutions Using MongoDB 6.x, 3rd Edition by Alex Giamas, Packt Publishing, 2022.
Lecture notes, homework assignments and their solutions, and other supplementary materials will be made available on this website throughout the course.
Related Courses
Other Databases courses
- New York University - Database Design & Implementation
- UC Berkeley - Introduction to Database Systems
- CARNEGIE MELLON UNIVERSITY - Database Systems
- University of Washington - Introduction to Database Systems
- The University of Chicago - Introduction to Database Systems
- University of Waterloo - CS 348: Introduction to Database Systems
- NTHU - CS 471000 Introduction to Database Systems
- The Ohio State University - Introduction to Database Systems
A note on self care.
Please take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.
Copyright © 2025. All rights reserved.