Skip to content
September 2026 qualifier: applications close Sun 27 Sep · Week 1 starts Fri 2 Oct
Qualifier Hub

IITM BS DBMS and PDSA: How to Prepare for Exams and OPPE

By Editorial TeamLast reviewed

5 min readData Science
On 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

WeeksTopics from the course page
1 to 3Course overview, relational model, basic to advanced SQL
4 to 6Query languages, database design, functional dependencies, normal forms
7Application development
8 to 9Storage, indexing and hashing
10 to 12Transactions, 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

WeeksTopics from the course page
1 to 3Python refresher, complexity, sorting and searching, arrays, lists, stacks, queues, hashing
4 to 6Graph algorithms, union-find, priority queues, heaps, binary search trees
7 to 9Balanced search trees, greedy algorithms, divide and conquer, dynamic programming
10 to 12String 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

All posts in Study tips and courses

Was this page helpful?

Share with your study group:WhatsAppTelegram