Python in IITM BS: How to Practise for GrPAs and OPPE
By Editorial TeamLast reviewed
5 min readData ScienceOn this page
The way to do well in IITM BS Python is to write code yourself every week, test it on tricky inputs, and practise under a timer before the OPPE. Watching lectures is not enough. GrPA is the name students use for the weekly graded programming assignments, and OPPE is the proctored programming exam. Both reward the same habit: solving small problems on your own, often.
What the Python course covers
Programming in Python (code BSCS1002) is a 4 credit foundation course. You need Computational Thinking before you can take it. The official course page lists these weeks:
| Weeks | Topics |
|---|---|
| 1 | Introduction to algorithms |
| 2 to 3 | Conditionals |
| 4 to 5 | Iterations and ranges |
| 6 to 8 | Basic collections (lists, tuples, dictionaries) |
| 9 to 10 | File operations |
| 11 | Python modules |
| 12 | Basic Pandas and NumPy |
The suggested book is Python for Everybody by Charles R. Severance. The course page says its PDF is freely available. For the ideas behind this course, see our Computational Thinking guide.
What the handbook says about OPPE
The academics page says some courses add programming exams to the usual assignments, quizzes and end term. The handbook's OPPE rules work like this:
- A course with OPPE has two sittings, called OPPE1 and OPPE2.
- Each course sets its own OPPE cut-off.
- If you miss the OPPE or score below the cut-off, you may get an I_OP grade. You then retake only the OPPE next term, and your other marks carry over. At the foundation level this costs Rs 1,000.
- You must be "OPPE eligible" to sit it. Your grading document explains how.
The handbook does not list which courses have OPPE or how much it counts. Your Python grading document for the term does, so read it in week 1. The full rules are in what OPPE is.
A weekly practice plan
- Type every lecture example yourself. Then change one thing and guess the output before you run it.
- Do the practice assignment first. It comes with solutions, so compare your approach, not just your answer.
- Before you submit a GrPA, write your own tests. Try a normal case, an empty input, a single item, a negative number and a tie.
- Keep a small file of patterns you should know by heart: reading input, splitting a line, converting to int, counting with a dictionary, sorting with a key.
- From week 4, do one 30-minute drill a week with no notes and no searching. Pick two old practice problems and solve them from a blank file.
Here is the kind of small function worth writing from scratch until it takes two minutes:
def count_vowels(word):
total = 0
for ch in word.lower():
if ch in "aeiou":
total += 1
return total
Test it: an empty string should give 0, and "IITM" should give 2. If you did not think of the empty string, add it to your list of standard tests.
Timed practice before the OPPE
- Three weeks before: redo practice problems from weeks 1 to 8, 20 minutes each, with a timer.
- Two weeks before: do mixed sets of 3 or 4 problems in one sitting, with no notes and no search.
- One week before: do one full run in exam-like conditions, with a strict timer and no breaks.
After each session, write down what slowed you down. Look for patterns, such as reading the question too fast or getting the output format wrong.
Common mistakes in GrPAs and the OPPE
| Mistake | Example | Fix |
|---|---|---|
| Treating input as a number | "5" + "3" gives "53" | Convert with int() |
| Extra text in output | Printing "Answer: 7" when only 7 is asked | Print exactly what the question shows |
| Printing instead of returning | A function that prints returns None | Return the value |
| Off-by-one in range | range(1, n) stops at n-1 | Check the first and last values |
| Wrong division | 7/2 is 3.5, 7//2 is 3 | Pick the one the problem needs |
| Comparing digit strings | "10" < "9" is True | Convert before comparing |
| Stray newlines from files | Lines end with a newline character | Use strip() |
Also avoid changing a list while you loop over it, and do not name variables list or str.
Before the exam: system check
The handbook asks every student to take the system compatibility test on the dates the admin team sets. For proctored exams it lists the latest Chrome, a phone with a front camera and good internet, and a mic and speaker. Do the check early, not on the morning of the exam. Our laptop requirements post has the full list. Read the instructions for your term's OPPE and follow them exactly.
Keep it honest
Never share or copy GrPA or OPPE solutions, and never post OPPE questions online. It breaks the honour code, and IITM publishes data on malpractice cases. See malpractice rules.
Common questions
I have never coded before. Can I still pass Python?
Yes. The DS FAQ says prior coding knowledge is not needed, and Computational Thinking comes first. Plan more than the usual hours in weeks 4 to 8, where loops and collections come together.
What if I fail the OPPE but do well in everything else?
If the rest of your course score is fine, you may get I_OP instead of a fail. You then retake only the OPPE next term. See failed the OPPE for the cases.
Should I use an AI tool or a solution site to practise?
Use them to explain an error after you have tried, not to write your answer. The OPPE tests what you can do alone under a timer.
Does Python help in later courses?
Yes. The course page says Python is used throughout the programme. Diploma courses such as PDSA build on it, as our DBMS and PDSA guide shows.
Official sources
Read next
- IITM BS DBMS and PDSA: How to Prepare for Exams and OPPE
- A 4-Week Study Plan for the IITM BS Data Science Qualifier
- Computational Thinking After the IITM BS Qualifier (Weeks 5 to 12)
- Computational Thinking in the IITM BS Qualifier: How to Approach It
- English 1 in the IITM BS Qualifier: How Not to Lose Easy Marks
- How to Score 9+ CGPA in the IITM BS Foundation Level