Course Code Programming in C L T P C
Version 1.0 3 0 0 3
Pre-requisites/Exposure Elementary knowledge of Computer
Co-requisites Problem Solving
Course Objectives
1. Introduce students to the basic principles and concepts of programming.
2. Develop students' ability to solve programming problems by applying the fundamental
concepts of C programming.
3. Teach students how to design and develop structured programs using modular
programming techniques.
4. Enable students to apply their C programming skills to develop small-scale applications.
Course Outcomes
On completion of this course, the students will be able to
CO1. Demonstrate a high level of proficiency in writing correct and efficient C code.
CO2. Acquire the skills to debug and troubleshoot C programs efficiently.
CO3. Expertise in designing structured programs using modular programming techniques.
CO4. Understanding of file and memory management techniques.
CO5. Acquire the ability to apply their C programming skills to develop practical applications.
Catalog Description
This course is designed to introduce undergraduate students to the fundamentals of C
programming. Students will learn the basics of programming using the C language, including data
types, variables, control structures, functions, and arrays. Through hands-on coding exercises and
projects, students will develop a solid foundation in C programming and gain practical experience
in solving real-world problems.
Course Content
Unit-1 Introduction to Computing 4 Hours
Basic computer organization, Evolution of programming languages, Data representation and
storage, Basics of programming environment: editors, debuggers, translators, basics of program
design and execution, Algorithms, Pseudocode, and Flowcharts.
Unit-2 C Programming Fundamentals 6 Hours
Data types and type conversion, variables (declaration vs. definition, local vs. global), keywords,
header files, structure of a C program. Operators: types of operators (arithmetic, relational, logical,
bit-wise, increment/decrement, assignment, sizeof, ternary), operator precedence, and
associativity. Conditional statements: if, else, switch-case, break, continue, goto, label. Loops: for,
while, and do-while.
Unit-3 Array and Function 4 Hours
Array, Multi-dimensional arrays, Strings, Function, Pass and Return by value, Pass and Return by
Reference, Recursion, Scope Rules.
Unit-4 Structures and Pointers 6 Hours
Structure, typedef, Union, enum, Bit-Fields, Pointer, Pointer to Arrays, Pointer Arrays, Pointer to
Pointers, Address Arithmetic, Pointer to Structures, Pointer to functions, Bit-wise operator.
Unit-5 File handling, Memory management 4 Hours
Data Organization, File Operations. Dynamic Memory Management: malloc(), calloc(), realloc(),
and free (), Garbage Collection.
Unit-6: Preprocessor, Macro, Static, and Shared Library 8 Hours
Preprocessor & Directives, Macro, Macro vs Functions, C standard library: stdio.h, ctype.h,
stdlib.h, assert.h, stdarg.h, time.h etc., Compilation of a C Program, Static Library, Shared Library.
Unit-7: Multithreading and Optimization 4 Hours
Multithreaded programming. Sockets and Asynchronous I/O. Linux Inter-Process
Communication, Optimization and Debugging. Unit Testing.
Text Books
1. Kernighan, B.W. and Ritchie, D.M. (1988). The C programming language. Prentice Hall
(2nd ed.).
Reference Books
1. Byron Gottfried, Schaum's Outline of Programming with C, McGraw-Hill.
2. H. M. Deitel, P. J. Deitel, C: How to program, 7th edition, Pearson Education.
Modes of Evaluation: Quiz/Assignment/Class-Tests/Presentation/Written Examination