Courses » Introduction to Programming in C

Introduction to Programming in C


This is a course in programming in C. No prior programming experience is assumed; however, mathematical maturity at the level of a second year science or engineering undergraduate is assumed.
We emphasize solving problems using the language, and introduce standard programming techniques like alternation, iteration and recursion. We will briefly glimpse the basics of software engineering practices like modularization, commenting, and naming conventions which help in collaborating and programming in teams. 
Given a problem, we pay attention to the following questions:

  • What is an algorithmic solution to the problem?
  • How do we translate the algorithm into C code?
  • How efficient is the code?
  • How maintainable is the code?
  • It is expected that by the end of the course, students will be comfortable in :-
  • Attempting algorithmic solutions to problems
  • Designing and coding moderate sized programs running to the order of a few hundred lines of code, and
  • Reading, understanding and modifying code written by others.

    Important For Certification/Credit Transfer:

    Weekly Assignments and Discussion Forum can be accessed ONLY by enrolling here

    Scroll down to Enroll

    Note: Content is Free!

    All content including discussion forum and assignments, is free

    Final Exam (in-person, invigilated, currently conducted in India) is mandatory for Certification and has INR Rs. 1100 as exam fee

    No prior programming required; mathematical maturity of a second level UG student in science or engineering.

    69184 students have enrolled already!!


     Prof. Satyadev Nandakumar is an Associate Professor at the Department of
     Computer Science & Engineering, IIT Kanpur. He specializes in
     Computable Analysis, Algorithmic Information Theory, and Symbolic Dynamics.

     His research interests lies in the areas of:

     ● Algorithmic Information Theory, Kolmogorov complexity, and effective
     fractal dimension.
     ● Effective symbolic measure-theoretic and topological dynamical systems
     ● Normal numbers, continued fractions, finite-state dimension.
     ● Computability and complexity in analysis
     ● Computational complexity theory, pseudorandomness.


    The course slides have been prepared by Prof. Sumit Ganguly, who has generously 
    provided the material for the online NPTEL course.

    1. Introduction. Straight-Line Code. Variables, Operators, Expressions and Conditionals.
    2. Loops
    3. Functions
    4. One-Dimensional Arrays and Pointers
    5. Recursion
    6. Multi-dimensional Arrays, Linked Lists.
    7. Operating on Files
    8. Organizing C projects, working with multiple source directories, makefiles.
    • The exam is optional for a fee.
    • Date of Exams : October 28 (Sunday)
    • Time of Exams : Morning session 9am to 12 noon; Afternoon session: 2pm to 5pm
    • Exam for this course will be available in both morning & afternoon sessions.
    • Registration url: Announcements will be made when the registration form is open for registrations.
    • The online registration form has to be filled and the certification exam fee needs to be paid. More details will be made available when the exam registration form is published.

    • Final score will be calculated as : 25% assignment score + 75% final exam score
    • 25% assignment score is calculated as 25% of average of  Best 6 out of 8 assignments
    • E-Certificate will be given to those who register and write the exam and score greater than or equal to 40% final score. Certificate will have your name, photograph and the score in the final exam with the breakup.It will have the logos of NPTEL and IIT Kanpur.It will be e-verifiable at nptel.ac.in/noc.