Skip to the content

Useful for ISS · APPSC

On this page
  1. Why this course exists
  2. Course objectives (verbatim)
  3. Course outcomes
  4. Units in this Course

Why this course exists

You will spend your career in Python and R, not C. So why start here?

Because C hides nothing. When you write x = y in Python, an enormous amount happens that you never see. In C you allocate the memory, you free it, you pass the address. Every abstraction that Python gives you free, C makes you build — and having built it once, you understand what Python is doing on your behalf for the next three years.

The two ideas that matter most for later are pointers (Unit 4) and manual memory management (Unit 5). When a Pandas operation is unexpectedly slow because it copied a dataframe instead of viewing it, this course is why you will know what happened.

Course objectives (verbatim)

  1. Understand the fundamentals of computer programming; apply structured problem-solving approaches using algorithms, flowcharts and C constructs.

  2. Develop efficient logic using decision-making, loop and jump control statements.

  3. Utilize derived data types like arrays and strings for modular program design.

  4. Design and implement modular solutions using functions, recursive logic, pointer operations and dynamic memory management.

  5. Handle complex data structures including structures, unions and text file operations.

Course outcomes

At the end of the course you should be able to:

  1. Understand basic computing concepts and programming paradigms, and write structured C programs.

  2. Apply control flow statements to solve logical and repetitive tasks.

  3. Implement arrays and string operations to manage and manipulate data.
  4. Design modular code using functions, recursion and appropriate parameter passing.

  5. Use pointers and memory operations effectively; demonstrate competence in dynamic memory allocation and text file processing.

Units in this Course

UNIT 1

Introduction to Computer Programming

Types of software, compiler vs interpreter, algorithms and flowcharts; C tokens, data types, operators and I/O.

UNIT 2

Control Statements

if, if-else, else-if ladder, switch; while, for, do-while; break, continue and goto.

UNIT 3

Derived Data Types: Arrays and Strings

One- and two-dimensional arrays, memory representation, row-major order; strings and string handling functions.

UNIT 4

Pointers, Functions and Storage Classes

Pointers and pointer arithmetic; functions, recursion, call by value and by address; auto, extern, static and register.

UNIT 5

Dynamic Memory, Structures, Unions and Files

malloc, calloc, realloc, free; structures and unions; text file operations.

PRACTICE

Practice

Exam-style questions with fully worked solutions.

LAB

Lab

Every prescribed lab experiment, with code and expected output.

Next course in learning order: Python Programming and Data Structures Computing foundations