CMPUT 291: Introduction to File and Database Management¶
At a glance
- Units: 3
- Prerequisites: CMPUT 175 or 274, and 272.
- Corequisites: one of CMPUT 201 or 275.
- Offered: Now: Fall 2026; Scheduled: Winter 2027
- Difficulty: Medium
- Workload: Moderate
- Languages and tools: SQL, Python
Basic concepts in computer data organization and information processing; entity-relationship model; relational model; SQL and other relational query languages; storage architecture; physical organization of data; access methods for relational data. Programming experience (e.g., Python) is required for the course project. Credit may be obtained in only one of CMPUT 291, BTM 415, or MIS 415.
Official catalogue entry ยท facts synced 2026-10-01
What Students Say¶
Imported from the original course reviews page, which mixed student contributions with summarized Reddit discussion. Tips aren't term-stamped yet; if you've taken this course recently, add your experience.
SQL, relational models, NoSQL (MongoDB), query optimization basics. Two big assignments and two group projects in most sections (a Python SQLite project and a MongoDB project). Students generally find the course reasonable; it's considered significantly lighter than 229.
"Most of the hate is for the course, not the prof. The course is pretty difficult and quite unique compared to other CS courses, meaning you probably need to put in more time than usual."
Instructor notes: - Davood Rafiei: works many examples in class and exams are considered fair. Students have wanted more practice material before the midterm and final.
Student tips: - The group projects are actually interesting and involve real tools (Python+SQLite, MongoDB). Engage with them. - Start the SQL assignment early; multiple students report it being very time-consuming. - Pairs well with 229 (manageable combined workload, and 291's disk content connects to 229's memory hierarchy).