IITM BS DBMS and PDSA: How to Prepare for Exams and OPPE
By Editorial TeamLast reviewed
5 min readData ScienceOn this page
DBMS and PDSA are two 4 credit courses in the IITM BS Diploma in Programming, and both are listed as programming courses. To handle them, you need hands-on practice every week: writing SQL queries for DBMS, and coding data structures and algorithms in Python for PDSA. Reading slides will not be enough. Before any programming exam, add timed practice with no notes.
Where these courses sit
- Database Management Systems (BSCS2001) and Programming, Data Structures and Algorithms using Python (BSCS2002) are part of the Diploma in Programming.
- Their course pages list no extra prerequisites. Like all diploma courses, they open only after you pass all 8 foundation courses.
- DBMS is a corequisite of Modern Application Development I, so take DBMS before MAD 1 or with it.
- The DS academics page expects about 15 hours a week for each diploma course. Both together is about 30 hours a week.
More on the diploma in the Diploma in Programming post.
About the OPPE
The DS academics page says some courses add programming exams to the usual assignments, quizzes and end term. The handbook does not list which courses have an OPPE or what it is worth. Your grading document for DBMS and PDSA each term does, so read it in week 1. If a course has an OPPE and you miss or fail it, the handbook's retake fee at the diploma level is Rs 2,000 for the OPPE alone. The general rules are in what OPPE is.
What DBMS covers
| Weeks | Topics from the course page |
|---|---|
| 1 to 3 | Course overview, relational model, basic to advanced SQL |
| 4 to 6 | Query languages, database design, functional dependencies, normal forms |
| 7 | Application development |
| 8 to 9 | Storage, indexing and hashing |
| 10 to 12 | Transactions, backup and recovery, query optimisation |
The course page suggests a database textbook by Silberschatz, Korth and Sudarshan.
How to practise DBMS
Build a tiny database of your own. Three tables are enough: students, courses and enrolments. Write 20 queries that get harder: a filter, a join, a group by, a having clause, a subquery. Run every one and check the result by hand.
Do normal forms on paper. Take a relation R(A, B, C, D) where A decides B and B decides C. The closure of A is A, B and C. A alone is not a key, because it does not reach D. A and D together reach everything, so AD is a candidate key.
Watch for these SQL mistakes:
- Putting a condition on a group total in WHERE instead of HAVING.
- Selecting a column that is neither grouped nor inside an aggregate.
- Writing "= NULL" instead of "IS NULL".
- Using an inner join when you need every row from one table. That silently drops rows.
- Mixing up COUNT(*) and COUNT(column). The second skips NULL values.
What PDSA covers
| Weeks | Topics from the course page |
|---|---|
| 1 to 3 | Python refresher, complexity, sorting and searching, arrays, lists, stacks, queues, hashing |
| 4 to 6 | Graph algorithms, union-find, priority queues, heaps, binary search trees |
| 7 to 9 | Balanced search trees, greedy algorithms, divide and conquer, dynamic programming |
| 10 to 12 | String matching, network flows, linear programming, summary |
How to practise PDSA
Code each structure yourself once. A stack, a queue, a heap and union-find. Use a library version only after you have built your own.
Trace algorithms by hand. Binary search on 8 sorted numbers needs at most 4 checks, since each check halves what is left. Run Dijkstra on a 5-node graph and keep a table of distances after each step.
Write the recurrence in words for dynamic programming. How many ways can you climb n stairs taking 1 or 2 steps at a time? The ways to reach n equal the ways to reach n-1 plus the ways to reach n-2. Starting from 1 way for 1 stair and 2 ways for 2 stairs, you get 3, 5 and then 8 ways for 5 stairs.
Know the cost of your code. Two nested loops over n items take about n^2 steps. Halving each time takes about log n steps. Check the cost before you submit.
Timed practice before the exams
- From week 4, spend one session a week solving two old practice problems from a blank file, with a timer and no notes.
- For DBMS, practise in a real SQL environment so you can see errors, not only on paper.
- Read the input and output format twice before you start. Test empty input, one item and repeated values.
- In the last two weeks, do mixed sets across all weeks under time.
Do your graded work yourself. Sharing or copying assignment or OPPE solutions breaks the honour code.
Common questions
Should I take DBMS or PDSA first?
Either works, as neither lists a prerequisite. If you plan to start the app development track soon, take DBMS first or alongside MAD 1. Our MAD projects guide explains why good database design helps.
Is PDSA hard if my Python is weak?
It starts with a Python refresher, but then moves fast into data structures. Revise lists, dictionaries and functions before the term. Our Python practice guide has a plan.
What if I fail the OPPE in one of them?
If the rest of your score is fine, you may get an I_OP grade and retake only the OPPE next term. See failed the OPPE.
How many hours should I plan for both?
The academics page says about 15 hours a week per diploma course. So plan around 30 hours a week if you take both in one term.
Official sources
Read next
- Building a Portfolio From Your IITM BS Projects
- IITM BS Machine Learning Courses: MLF, MLT and MLP Explained
- IITM BS MAD 1 and MAD 2 Projects: Scope and Common Mistakes
- Python in IITM BS: How to Practise for GrPAs and OPPE
- IITM BS Business Data Management (BSMS2001): Syllabus and Tips
- IITM BS Machine Learning Practice (BSCS2008): Syllabus and Tips