Syllabus
Course Description
Database management systems are powerful tools for storing, managing, and querying data. This course provides an introduction to database systems, with a focus on system design principles and techniques. Topics to be covered include:
- Database system architecture, storage, and indexing
- Query execution and optimization
- Transactions, recovery, and concurrency control
- Relational algebra and SQL
- Data models, data normalization, and database design
Textbook: Database Management Systems 3rd Edition, by Ramakrishnan and Gehrke
Course Aims and Objectives
This course aims to:
- Provide a solid background in database management system design principles
- Promote understanding of these principles through hands-on exercises implementing the internals of a relational database management system
- Further develop students' ability to reason about algorithm and software design, optimization, and tradeoffs generally applicable in computer science
By the end of this course, students will be able to:
- Apply principles and techniques from this course to design or modify a database management system
- Design databases and queries for new applications
- Describe the levels of abstraction in the relational model and how these abstractions influence system design
- Discuss data consistency challenges in a database management system, as well as describe tradeoffs between various approaches to these challenges
Course Format
This course meets twice a week for lecture; students are expected to attend, assuming they are feeling well enough (please let me know about missed classes due to illness). The course calendar will include the topics covered in each lecture as well as the corresponding textbook chapter(s). Students can read the listed material before or after class, based on preference. The calendar may shift slightly if necessary (exam dates will remain fixed).
Coursework includes five significant programming labs using Java and SQL, in addition to shorter weekly problem sets. Students should work with a partner for the programming labs (and may discuss general ideas with other students). For the problem sets, students may again discuss general ideas but should complete the problems on their own. There will be one midterm and one final exam. The final will be cumulative, but have more emphasis on material covered during the latter half of the semester.
Grading
Evaluation of student performance in this course will be based on labs, problem sets, exams, and participation/attendance:
Labs | 40% | 200 pts |
Problem sets | 15% | 75 pts |
Midterm | 20% | 100 pts |
Final | 20% | 100 pts |
Participation | 5% | 25 pts |
Late Policy
Each student will be allowed four total "slip" days that can be used on the assignments. For example, you could hand in one assignment four days late, or four assignments each one day late, or two assignments each two days late, etc. Each day can only be used in its entirety (you cannot use "half" a day to turn in an assignment twelve hours late). You cannot use slip days on lab intermediate deadlines. If working in teams, slip days are deducted from each team member's allotment. After slip days are exhausted, any assignment handed in late will be marked off 25% per day.
In the case of emergency or other special circumstances, we can discuss extensions on assignments in consultation with the Dean for Student Health and/or the Dean for Academic Affairs.
Accessibility and Accommodations
HMC is committed to providing an inclusive learning environment and support for all students. Students with a disability (including mental health, chronic or temporary medical conditions) who may need accommodations in order to fully participate in this class are encouraged to contact the Office of Accessible Education at access@g.hmc.edu to request accommodations. Students from the other Claremont Colleges should contact their home college's Accessible Education officer.Honor Code
Students enrolled in this course are expected to adhere to the Harvey Mudd College Honor Code. A s per the Student Handbook, students suspected of academic dishonesty will be reported to the Judiciary Board.