Programming Fundamentals and 'C' Programming
0%
Course Title: Programming Fundamentals and 'C' Programming
Course No: CSIT.115
Nature of the Course: Theory + Lab
Semester: 1
Full Marks: 60 + 20 + 20
Pass Marks: 20 + 10 + 10
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1.1. Fundamentals of algorithms
- Notion of an algorithm
- Pseudo-code conventions like assignment statements and basic control structures
1.2. Algorithmic problems
- Exchange the values of two variables with and without temporary variable
- Counting positive numbers from a set of integers
- Summation of set of numbers
- Reversing the digits of an integer
- Find smallest positive divisor of an integer other than 1
- Find G.C.D. and L.C.M. of two as well as three positive integers
- Generating prime numbers
1.3. Different approaches in programming
- Procedural approach
- Object Oriented approach
- Event Driven approach
1.4. Structure of C
- Header and body
- Use of comments
- Compilation of program
1.5. Data Concepts
- Variables
- Constants
- data types like: int, float, char, double and void
1.6. Qualifiers
- Short and long size qualifiers
- signed and unsigned qualifiers
- Declaring variables
- Scope of the variables according to block
- Hierarchy of data types
2. Basic of C
4 hrs
2.1. Types of operators
- Arithmetic
- Relational
- Logical
- Compound Assignment
- Increment and decrement
- Conditional or ternary
- Bitwise and Comma operators
- Precedence and order of evaluation
- Statements and Expressions
2.2. Type Conversions
- Automatic and Explicit type conversion
2.3. Data Input and Output function
- Formatted I/O: printf(), scanf()
- Character I/O format: getch(), getche(), getchar(), getc(), gets(), putchar(), putc(), puts()
2.4. Iterations
- Control statements for decision making: (i) Branching: if statement, else.. If statement, switch statement (ii) Looping: while loop, do… while, for loop. (iii) Jump statements: break, continue and goto
3.1. Arrays
- (One and multidimensional)
- declaring array variables
- initialization of arrays
- accessing array elements
3.2. Strings
- Declaring and initializing String variables
- Character and string handling functions
3.3. Sorting Algorithms
- Bubble, Selection, Insertion and Merge sort
- Efficiency of algorithms
- Implement using C
4.1. Functions
- Global and local variables
- Function definition
- return statement
- Calling a function by value
- Macros in C
- Difference between functions and macros
4.2. Storage classes
- Automatic variables
- External variables
- Static variables
- Register variables
4.3. Recursion
- Definition
- Recursion function algorithms for factorial, Fibonacci sequence, Tower of Hanoi
- Implement using C
5.1. Structure
- Declaration of structure
- reading and assignment of structure variables
- Array of structures
- arrays within structures
- within structures
- structures and functions
5.2. Unions
- Defining and working with union
6.1. Pointer
- Fundamentals
- Pointer variables
- Referencing and dereferencing
- Pointer Arithmetic
- Chain of pointers
- Pointers and Arrays
- Pointers and Strings
- Array of Pointers
- Pointers as function arguments
- Functions returning pointers
- Pointer to function
- Pointer to structure
- Pointers within structure
6.2. File Handling
- Different types of files like text and binary
- Different types of functions fopen(), fclose(), fputc(), fscanf(), fprintf(), getw(), putw(), fread(), fwrite(), fseek()
6.3. Dynamic Memory Allocation
- malloc(), calloc(), realloc(), free() and size of operator
7. Link Lists
4 hrs
7.1. Linear Link lists
- Representation of link list in memory
- Algorithms for traversing a link list
- searching a particular node in link list
- insertion into link list (insertion at the beginning of a node, insertion after a given node)
- deletion from a link list
- Implement using C
8. Stacks
3 hrs
Laboratory Works
- 1.Assignment to demonstrate use of data types, simple operators (expressions)
- 2.Assignment to demonstrate decision making statements (if and if-else, nested structures)
- 3.Assignment to demonstrate decision making statements (switch case)
- 4.Assignment to demonstrate use of simple loops
- 5.Assignment to demonstrate use of nested loops
- 6.Assignment to demonstrate menu driven programs
- 7.Assignment to demonstrate writing C programs in modular way (use of user defined functions)
- 8.Assignment to demonstrate recursive functions
- 9.Assignment to demonstrate use of arrays (1-d arrays) and functions
- 10.Assignment to demonstrate use of multidimensional array (2-d arrays) and functions
- 11.Assignment to demonstrate use of pointers
- 12.Assignment to demonstrate concept of strings (string & pointers)
- 13.Assignment to demonstrate array of strings
- 14.Assignment to demonstrate use of bitwise operators
- 15.Assignment to demonstrate structures (using array and functions)
- 16.Assignment to demonstrate structures and unions
- 17.Assignment to demonstrate command line arguments and pre-processor directives
- 18.Assignment to demonstrate file handling (text files)
- 19.Assignment to demonstrate file handling (binary files and random access to files)
- 20.Assignment to demonstrate graphics using C
Text Books
- 1.Introduction to Algorithms (Second Edition): Cormen, Leiserson, Rivest, Stein, PHI (Chapter 1, 2, 3, 10).
- 2.Data Structures (Schaum's outline series in computers): Seymour Lipschutz McGraw-Hill book Company (Chapter 2, 5, 6, 9).
- 3.Programming in ANSI C (Third Edition): E Balguruswamy TMH (Chapters 2 to 13).
Reference Books
- 1.Fundamental Algorithms (Art of Computer Programming Vol. I: Knuth Narosa Publishing House.
- 2.Mastering Algorithms with C, Kyle Loudon, Shroff Publishers.
- 3.Algorithms in C (Third Edition): Robert Sedgewick, Pearson Education Asia.
- 4.Data Structures A Pseudo code Approach with C: Richard F. Gilberg, Behrouz A. Forouzan, Thomas.
- 5.Let us C by Yashwant Kanetkar, BPB.
- 6.Programming in ANSI C by Ram Kumar, Rakesh Agrawal, TMH.
- 7.Programming with C (Second Edition): Byron S. Gottfried. (Adapted by Jitender Kumar Chhabra) Schaum's Outlines (TMH).
- 8.Programming with C: K.R. Venugopal, Sudeep R. Prasad TMH Outline Series.
- 9.Unix and C: M.D. Bhave and S. A. Pateker, Nandu Printer and publishers private limited.
- 10.Deitel, C.: How to Program, 2/e (With CD), Pearson Education.
- 11.Al Kelley, Ira Pohl: "A Book on C", Pearson Education.
- 12.Brian W. Keringhan & Dennis M. Ritchie: "The C programming Language", PHI.
- 13.Bryons S. Gotterfried: "Programming with C," TMH.
- 14.Stephen G. Kochan: "Programming in C", CBS publishers & distributors.
- 15.Yashavant Kanetkar: "Let us C", BPB Publications.
- 16.Herbert Schildt - Complete C Reference.
- 17.Forouzan and Gilberg: Structured Programming approach using C, Thomson learning publications.