IIT Indore · Autumn 2026

Programming Laboratory.

Everything needed to enter the CITC lab, set up the assigned computer, find your assignment repository, and test C++ code before you submit it.

Upcoming IC151 lab Checking the Autumn 2026 schedule… Device clock · Asia/Kolkata

Batch timetable

Autumn 2026 lab schedule.

Loading the twelve regular labs and final examination dates from the course schedule.

The schedule is tentative. A scheduled lab is dropped whenever the lectures have not reached the required material, and whenever the institute holiday schedule takes the slot. Treat every date below as planned rather than fixed, and follow the announcements for the week.

··Loading…

Loading…

Loading the batch slots…
Loading batch dates…
IC151 final lab examinationLoading final examination dates…
  • ··Loading…

The course data records institute breaks and timetable exceptions. Official announcements supersede this schedule.

Before coding

Set up the lab computer safely.

Check off each step as you complete it. This checklist is stored only in a first-party cookie in this browser.

Submission workflow

Find your assignment repository.

The assignment portal builds the GitHub address from your assignment, lab batch, and roll number. It only constructs a link and stores no roster data — GitHub permissions protect the private repository.

Open the IC151 assignment portal

  1. 01
    Sign in to GitHub

    Use the account whose username you submitted on the registration form, not a second personal account.

  2. 02
    Accept the repository invitation

    GitHub emails it to you, and it also waits at github.com/notifications. A 404 means your account has no access yet, or the invitation is still pending.

  3. 03
    Fill in the portal

    Choose the assignment named in the course announcement, select your lab batch, and enter your roll number exactly as issued. Surrounding spaces are ignored.

  4. 04
    Open the generated repository

    Every repository lives in the IC151Jul2026 organization and is named assignment-batch-roll, for example helloworld-A2-260000000.

Option A · straight on GitHub

Edit straight on GitHub.

  1. Open main.cpp in your repository and click the pencil.
  2. Replace REPLACE_WITH_YOUR_ROLL_NUMBER with your roll number, and make any other change the assignment asks for.
  3. Keep the branch as main and press “Commit changes”.

Your edit is committed the moment you press the green button, so this submits your work by itself.

Option B · check on your machine

Download, check, upload.

  1. Click “Code”, then “Download ZIP”. Unzip it and keep the folder name exactly as it is.
  2. Edit main.cpp in any editor, then compile, run, and check it in a terminal — the commands are below.
  3. Back on the repository page, choose “Add file” → “Upload files”.
  4. Drag in your edited main.cpp, leave “Commit directly to the main branch” selected, and press “Commit changes”.

Confirm the submission

Editing locally submits nothing.

Check GitHub itself

After committing, open main.cpp on GitHub and confirm your own code is there.

Only the repository counts

The last commit on main at the deadline is what gets graded. A file that exists only on your laptop is not a submission.

Seeing a 404?

Work through these in order.

  1. Wrong account. Check the avatar in GitHub’s top-right corner. If it is not the account you registered, sign out and back in with the right one.
  2. Invitation not accepted. Open github.com/notifications or the invitation email, then accept.
  3. Wrong or misspelled username on the form. Submit the registration form again with the correct username; your latest response replaces the earlier one, and access is fixed in the next update.
  4. Not released yet. Repositories are created batch by batch, so the link 404s until your lab batch is released.

GitHub shows the same 404 whether the repository is missing or you simply cannot see it. Still stuck? Contact your lab TA with your roll number and your GitHub username.

Run before committing

Compile and check with g++.

Every repository ships a check.sh that reads your roll number from the folder name, so do not rename the unzipped folder. The chmod line is needed once, because unzipping removes the executable bit.

Ubuntu terminal
# go into the folder you unzipped
# (tip: drag the folder onto the terminal window)
cd ~/Downloads/helloworld-A2-260000000-main

# compile it and run it yourself
g++ -std=c++17 -Wall -Wextra -pedantic main.cpp -o main
./main
# 260000000

# run the official check
chmod +x check.sh
./check.sh
# PASS: output contains roll number 260000000
Windows terminal
# same flags, .exe output
g++ -std=c++17 -Wall -Wextra -pedantic main.cpp -o main.exe
main.exe

# check.sh is a shell script:
# run it from WSL or Git Bash

A FAIL: line means the program did not print what the assignment expects — fix main.cpp and run ./check.sh again. If g++ is not found, install the compiler for your system first.

Terminal reference

Basic Linux commands.

Use these to inspect and move through files without guessing where your program is.

pwdShow the current folder.
lsList files in the current folder.
cd folderEnter a folder.
cd ..Move to the parent folder.
mkdir nameCreate a folder.
cp from toCopy a file.
mv from toMove or rename a file.
clearClear the terminal display.

Before leaving

Leave no account behind.

  • Log out of Gmail and GitHub.
  • Confirm that the browser saved no passwords.
  • Remember your passwords for the next lab.
  • Ask a TA when blocked; help nearby classmates after completing your own setup.
  • Expect a second assignment during the lab and follow the same workflow.