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

IITM BS Programming in C (BSCS3005): Syllabus and Tips

By Editorial TeamLast reviewed

5 min readData Science
On this page

Programming in C (BSCS3005) is a 4 credit elective at the degree level of the IITM BS in Data Science. It is a practical course on writing, compiling and debugging C programs on Linux, and on how programs use memory and the operating system. It has no prerequisite. It is also the prerequisite for the Minor in Computer Systems, so it is the first step if you want that minor.

Programming in C at a glance

CodeCreditsLevelPrerequisites
BSCS30054Degree (level 3)None

The instructor is Prof. Nitin Chandrachoodan of IIT Madras, who also teaches the two Modern Application Development courses. The course page lists the type as "Elective". The handbook table tags it "BP", with 4 credits and no prerequisite, so the two sources agree. The table (updated 18 March 2026) marks it as offered in May 2026, September 2026 and January 2027.

What you learn in Programming in C

This is a shorter course: 8 weeks of coursework instead of the usual 12, for the same 4 credits.

  • Weeks 1 and 2: getting started. Writing, compiling and running C programs in a Linux setup, and using debugging tools from day one. Then variables, built-in data types, operators, if statements and loops.
  • Weeks 3 and 4: structure and files. Splitting programs into functions, how variable scope works, reading input, printing output and working with files.
  • Weeks 5 and 6: memory. Pointers, arrays and strings. Then arrays with more than one dimension, allocating memory at run time, and the problems that come with it, such as memory leaks.
  • Weeks 7 and 8: beyond your own code. The standard library and common extras (maths, time and so on). Then how compilation and execution work, the heap and the stack, and how a running program talks to the operating system.

The suggested books are The C Programming Language by Kernighan and Ritchie, and Practical C Programming by S. Oualline.

How it is assessed

The course page lists weekly online assignments, 2 in-person invigilated quizzes and 1 in-person invigilated end term exam. It does not list an OPPE or a project.

Where it counts

  • Computer Systems minor. Programming in C is the listed prerequisite of the Minor in Computer Systems. The minor's three courses build on it.
  • Other courses. It is a corequisite of Computer Systems Design (BSCS3031), so you can take the two together. It is a prerequisite of Computer Networks (BSCS4024).
  • Elective credits. It is a level 3 course by its code. It can fill BSc elective credits. The BS level asks for level 4 or higher courses in each stream, so it does not fill those slots. See the full list of DS electives.

Who finds it hard and how to prepare

If Python is your only language, weeks 5 and 6 are the hardest part. In Python you never think about where data lives in memory. In C you must, and one wrong pointer can crash the program with little explanation.

  • Set up Linux before the term. Have a working terminal, a compiler and an editor ready. The System Commands (BSSE2001) course from the diploma is good revision.
  • Learn a debugger early. Week 1 introduces debugging tools. Get used to stepping through code and printing variable values before your programs get big.
  • Draw memory boxes. For every pointer exercise, draw boxes for variables and arrows for pointers. Most pointer bugs become obvious on paper.
  • Compile with warnings on. Treat every warning as an error until you understand it.
  • Rewrite old PDSA code in C. A stack, a queue or a linked list in C forces you to manage memory yourself.

Common questions

Can I take Programming in C and Computer Systems Design in the same term?

Yes. Programming in C is a corequisite of Computer Systems Design, which means you can take them together or do C first. Computer Networks is different: there, C is a prerequisite, so you must finish C first.

Why is it only 8 weeks but still 4 credits?

The course page lists 8 weeks of coursework and 4 credits, and the handbook also gives 4 credits. Neither explains the reason. The weekly load may feel denser than in a 12 week course.

I learnt C in college. Do I still need this course for the minor?

The handbook lists Programming in C (BSCS3005) as the prerequisite for the Computer Systems minor. It does not mention any other way to meet it, so ask support before you skip it.

Is this the same as the C course in Electronic Systems?

No. Electronic Systems students have their own foundation course, Introduction to C Programming (CS1101), with a separate lab. See the ES C programming page. BSCS3005 is a degree level course in the DS programme.

20 C Programming handwritten and PDF notes by students

Official sources

All posts in Course guides

Was this page helpful?

Share with your study group:WhatsAppTelegram