CS1113: Introduction to Programming

Announcements:
  • Welcome to CS1113 Course page

  • The Class will strat from 28th July 2025 (Monday) in 5305.

  • Attendance is Mandetory in the Course.

  • IMPORTANT: Any malpractice will lead to F grade without any explanation.

Instructor

  • Dr. Chandan Karfa

Class Timing and Venue:

  • Slot F in timetable

  • Monday: 12PM-12:55PM, Tuesday: 12PM-12:55PM, Friday: 11AM-11:55AM

  • Venue: 5305, Core 5

Syllabus

  • Lexical Elements: Identifiers, keywords, integer constants, character constants, special characters, floating constants, enumeration constants, string literals, punctuations, separates, white spaces, comments;

  • Basics, data types, operators and expressions: Variable names, declarations, data types and sizes, arithmetic operations, Relational and logical operations, incremental and decremental operators, bitwise operators, assignment operators and expressions, Conditional expressions, Precedence and Order evaluation;

  • Data type Conversions: Conversion of characters and integers, conversion of floats and doubles, conversion of floating and integral types, conversion of unsigned integers, arithmetic conversions;

  • Control Flow: Statements and Blocks, If-Else, Else-if, nested if … else, Switch, ?: operator;

  • Loops: While, for, Do-While, Break, Continue, goto and labels;

  • Managing standard Input and standard output: Reading various data types through input, output various data types, formatted input, formatted output;

  • Arrays: Introduction, declaration of one-dimensional arrays, initialization of one-dimensional arrays, accessing of elements of one-dimensional arrays, declaration of two dimensional arrays, initialization of two-dimensional arrays, accessing of elements of two-dimensional arrays, declaration of Multi-dimensional arrays, initialization of multi-dimensional arrays, accessing of elements of multi-dimensional arrays;

  • Character arrays and String: Declaration and initialization of string variables, reading strings from standard input, writing strings to standard output, string functions, command line arguments;

  • Functions: Function Declarations, Function Definitions, Calling functions, function parameters, variable length parameter list functions, the main function, recursive functions, static functions, nested functions;

  • Structures and Unions: Defining, declaring structures, accessing elements of structures, structure within structure, structures and function, Unions, Size of structures, bit fields;

  • Pointers Introduction: Declaring pointer variables, initialization of pointer variables, accessing the address of a variable, accessing a variable through its pointer, chain of pointers, pointer expressions, pointer arithmetic;

  • Dynamic memory allocation: Allocating block of memory using malloc, allocating memory using calloc, releasing used space using “free”, Dangling Pointers;

  • Pointes and Arrays: Pointer notion and arrays, using malloc, using realloc, pointers and single dimensional arrays, pointers and multi-dimensional arrays, dynamically allocating memory for two dimensional array;

  • Pointers and Strings: String fundamentals, standard string operations, passing strings to functions, returning of strings;

  • Pointers and Structures: Introduction, memory allocation, deallocation, Using pointers to support data structures;

  • Pointers and Functions: Passing & returning by pointers, function pointers;

  • Linked Lists: Types of linked lists, creating a linked list, inserting an item, deleting an item, traversing linked list, deleting entire linked list;

  • Pre-processors: Overview, Header files, include syntax, include operation, search path, only-once headers; Macros: object-like macros, function-like macros, macro arguments, concatenations, varadic macros, and macro pitfalls, conditional macros;

  • File management: Defining and opening a file, closing a file, inputoutput operations on files, error handling during IO operations, Random access to files;

  • Standard libraries: character handling, string and array utilities, search and sorting, pattern matching, input/output, mathematics, variable argument functions;

  • Introduction to Problem Solving and Flowchart;

Text Books

  • [Ritchie] Brian W. Kernighan, Dennis M. Ritchie, “C Programming Language”, Prentice Hall Software Series, Second edition, 2015.

  • The GNU C Reference Manual

References

  • [Balaguruswamy] E. Balaguruswamy, “Programming in ANSI C” McGraw Hill, 9th edition, 2024.

  • [Kanetkar] Yashavant Kanetkar, “Let Us C: Authentic guide to C programming language”, 20th edition, bpb publication.

  • A. Kelly and I. Pohl, “A Book On C”, 4TH Edition, Pearson Education, 1999.

  • Stephen Kochan, Programming in C, Pearson Education (India), 2015, ISBN: 978-9332554665

Grade Calculation

  • Attendance: Mandetory

  • Quizzes: 20% (There will be two quizzes)

  • Mid-Sem: 30%

  • End-Sem: 50%

Teaching Assistants

Classes

Lecture No Date Topic Resources
1. 28th July 2025 Introduction to Computer Systems Slides
2. 29th July 2025 The First Program in C: Hello World Ritchie, Ch 1
3. 1st August 2025 The Second Program in C: Fahrenheit to Celsius - V-1 Ritchie, Ch 1
4. 4th August 2025 The Second Program in C: Fahrenheit to Celsius - V-2, V-2, V-4 Ritchie, Ch 1
5. 5th August 2025 The Third Program in C: Managing text stream Ritchie, Ch 1
6. 8th August 2025 The Third Program in C: Word count, character count, line count Ritchie, Ch 1
7. 11th August 2025 The Fourth Program in C: Arrays Ritchie, Ch 1
8. 12th August 2025 The Fifth Program in C: Function - Power Ritchie, Ch 1
9. 14th August 2025 The Sixth Program in C: Function - Swap Class notes
10. 18th August 2025 The Sixth Program in C: Pointers - Call by Reference, Introduction to Pinters Class notes
11. 19th August 2025 The Seventh Program in C: Pointers and Arrays Class notes
12. 22nd August 2025 The Eighth Program in C: Character Strings Class notes
13. 23rd August 2025 The Eighth Program in C: More on Pointers Class notes
14. 25th August 2025 Practice makes perfect Class notes
15. 26th August 2025 Practice makes perfect Class notes
16. 27th August 2025 Types, Operators and Expressions Ritchie, Ch 2
17. 28th August 2025 Quiz 1
18. 1st September 2025 Discussion on Quiz 1 Solution and return the copies
19. 2nd September 2025 Types, Operators and Expressions Ritchie, Ch 2
20. 8th September 2025 Control Flow Ritchie, Ch 3
21. 9th September 2025 Practice session for Mid-Sem
22. 12th September 2025 Practice session for Mid-Sem
23. 22th September 2025 Discussion on Mid-Sem Paper
24. 26th September 2025 Multi-dimentional Array
25. 8th October 2025 Structure Ritchie, Ch 6
26. 8th October 2025 Structure and Pointer Ritchie, Ch 6
27. 10th October 2025 Structure vs Union Ritchie, Ch 6
28. 13th October 2025 Dynamic Memory Allocation Classnotes
29. 14th October 2025 Linked List with Dynamic Memory Allocation Classnotes
30. 17th October 2025 Insert, Delete in Linked List Classnotes
31. 21st October 2025 Doubly Linked List, Typedef, define Classnotes
32. 24th October 2025 Input-Output Ritchie, Ch 7
33. 25th October 2025 File in C Ritchie, Ch 7
34. 27th October 2025 Binary File Access in C and Command Line Argument Ritchie, Ch 7
35. 28th October 2025 Recursive function in C Ritchie, Ch 4
36. 31st October 2025 Recursive function in C Ritchie, Ch 4
37. 3rd November 2025 Pointers in C Ritchie, Ch 5
38. 4rd November 2025 Pointers and Arrays Ritchie, Ch 5, Class notes
39. 7th November 2025 Pointers and Arrays Ritchie, Ch 5, Class notes
40. 10th November 2025 Pointers, Multi dimentional arrays and Strings Ritchie, Ch 5, Class notes
41. 11th November 2025 Library Functions in C
42. 14th November 2025 Discussions

Evaluation Schedule

Date Time Examination Topic
29th August 2025 3PM to 4PM Quiz 1 Topic covered till 22nd August 2025
14th September 2025 9 AM to 11 AM Mid-Sem Topic covered till 12th September 2025
29th October 2025 3PM to 4PM Quiz 2 Topic covered till 25th October 2025
16th November 2025 9 AM to 12 PM Mid-Sem All