🚀 Conquer BPTs in 10 Simple Steps:

Alok GuptaAlok Gupta
4 min read

So, you’ve started your journey in the IIT Madras BS in Data Science & Applications program, and now the BPTs — Biweekly Practice Tests — are here.

You open the announcement that says:

“Submit your solutions via SSH…”

And you're like,

“Wait, what? I just learned cd yesterday. What’s chmod now?!”

Take a breath — you’re not alone.
This guide will walk you through everything you need to know to crack your BPT submissions confidently in 10 beginner-friendly steps. Whether you're new to the terminal or just need a refresher, you’re covered.


💡 What is a BPT?

BPT = Biweekly Practice Test
They’re not full-fledged exams, but they test your understanding regularly. Most BPTs involve writing small bash scripts or commands using tools like grep, awk, cut, etc.


🛠 Step 0: Open Command Prompt (CMD)

On Windows:

  • Press Win + R, type cmd, and press enter.

  • Alternatively, use Git Bash or WSL if you're comfortable.

This is where the magic begins.


🔐 Step 1: Login via SSH

Type this command:

ssh iitm_roll_no@se2001.ds.study.iitm.ac.in

🔁 Example:

ssh 24f200XXXX@se2001.ds.study.iitm.ac.in

Enter your password (If asked only)(shared via Moodle/email). You'll see:

Last login: Fri May 23 13:28:42 2025 from 194.XXX.XXX.XX

🎉 Boom — you’re inside the IITM server!


📁 Step 2: Navigate to the Question Directory

cd /opt/se2001
ls

You’ll find folders like:

BPT1_problem_1  BPT1_problem_2  BPT1_problem_3  BPT1_problem_4

This is the “question bank” for your current BPT set.


📦 Step 3: Create Your Personal Workspaces

Make a folder for each problem:

cd ~
mkdir BPT1_problem_1 BPT1_problem_2 BPT1_problem_3 BPT1_problem_4

This keeps your solutions organized and separate from the system files.


🧩 Step 4: Start Solving a Problem

Jump into your workspace:

cd BPT1_problem_1

You’re now ready to read the problem and start working on it.


📝 Step 5: Read the Problem Statement

Use this command:

synchro show

Use arrows or space to scroll. Press q to quit if the content is long.

🔍 Real example: One of my BPTs asked to filter rows where the age is numeric from a CSV — not complicated, but easy to misinterpret if you skim!


✍️ Step 6: Write Your Script

Use the built-in editor:

nano script.sh

Type your solution script. To save and exit:

  • Ctrl + O → Save

  • Enter → Confirm filename

  • Ctrl + X → Exit

✨ You can test locally first and paste here — just make sure it's UNIX-style (LF) line endings, not Windows (CRLF).


🔒 Step 7: Make the Script Executable

Before running it, give permission:

chmod +x script.sh

This lets the server “run” your script.


🧪 Step 8: Evaluate Your Solution

Let’s test it!

synchro eval

You’ll see:

✅ Test Case 1 Passed
❌ Test Case 2 Failed

💡 Debug, tweak, and re-evaluate until you pass all test cases. It’s perfectly okay if it takes a few tries.


🔁 Step 9: Move to the Next Problem

After solving one:

cd ..
cd BPT1_problem_2

Repeat the process. Each BPT usually has 3–4 problems, so pace yourself well.


✅ Summary: The 10-Step Cycle

StepWhat You Do
0Open CMD
1SSH login
2Navigate to /opt/se2001
3Create workspace folders
4cd into one of them
5View question with synchro show
6Write script.sh using nano
7Make executable via chmod +x
8Run synchro eval
9Repeat for other problems

📚 Bonus Tips for Shell Success

  • Use cat, head, tail, and grep to explore test files.

  • Practice awk, cut, sort, and uniq on local dummy data.

  • Try commands in small parts first:

      head -n 10 sample.csv | grep "Age"
    

🧠 Example

In BPT1, I had a problem where I had to remove all rows in a CSV where age wasn’t numeric. I overcomplicated it with awk filters. But all it needed was a simple grep with regex:

grep -E '^[^,]*,[0-9]+$' file.csv

The lesson? Don’t panic, simplify. Break the problem into what you need to extract, and what you need to ignore.


🙏 Final Disclaimer

This blog is written purely from my personal experience in the IIT Madras BS program. It does not share any confidential exam content. The goal is to help new students get comfortable with the terminal and submission process while maintaining academic integrity.


💬 Want More?

If you’d like:

  • a cheat sheet for commonly used BPT shell commands, or

  • a blog on how to practice locally with test files before evaluation

Drop a comment or message me on GitHub or Linkedin. Let’s make terminal learning friendly and fun ✌️

0
Subscribe to my newsletter

Read articles from Alok Gupta directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Alok Gupta
Alok Gupta

I’m an aspiring web developer keen on learning new things. I’m dedicated to keeping up to date with the latest stuffs in web development. I always lookout for chances to grow and learn. When I’m not coding, I enjoy reading about India’s fascinating history. It helps satisfy my curiosity and teaches me about the diverse India.