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

Python in IITM BS: How to Practise for GrPAs and OPPE

By Editorial TeamLast reviewed

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

WeeksTopics
1Introduction to algorithms
2 to 3Conditionals
4 to 5Iterations and ranges
6 to 8Basic collections (lists, tuples, dictionaries)
9 to 10File operations
11Python modules
12Basic 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

  1. Type every lecture example yourself. Then change one thing and guess the output before you run it.
  2. Do the practice assignment first. It comes with solutions, so compare your approach, not just your answer.
  3. 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.
  4. 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.
  5. 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

MistakeExampleFix
Treating input as a number"5" + "3" gives "53"Convert with int()
Extra text in outputPrinting "Answer: 7" when only 7 is askedPrint exactly what the question shows
Printing instead of returningA function that prints returns NoneReturn the value
Off-by-one in rangerange(1, n) stops at n-1Check the first and last values
Wrong division7/2 is 3.5, 7//2 is 3Pick the one the problem needs
Comparing digit strings"10" < "9" is TrueConvert before comparing
Stray newlines from filesLines end with a newline characterUse 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

All posts in Study tips and courses

Was this page helpful?

Share with your study group:WhatsAppTelegram