Introduction to Problem Solving, Algorithms, Programming, and C Language: Problem
Solving, a brief review of Von-Neumann Architecture., The C Programming Language, Pseudocode, Concept of Variable, Data types in Pseudo-code, The C Standard Library and Open Source,
Input/Output, Arithmetic expressions, Assignment statement, Operator precedence, Concept of
Integer division, Flowchart and its notations, Typical C Program Development Environment,
Role of Compiler and Linker, Test Driving C Application. Introduction to C Programming: A
Simple C Program: Printing Text, Adding Two Integer, Memory Concepts, Arithmetic in C,
Operators. Decision Making: Equality and Relational Operators. Structured Program
Development: The if, if…else, while Nested Control Statements. Program Control: for,
switch, do…while, break, continue, Logical Operators. Functions: Modularizing Program in
C, Math Library Functions, Function Definitions and Prototypes, Function-Call Stack and Stack
Frames, Stack rolling and unrolling, Headers, Passing Arguments by Value and by Reference,
Random Number Generation, Scope Rules, Recursion, Recursion vs Iteration. Arrays: Defining
Arrays, Character Arrays, Static and Automatic Local Arrays, Passing Arrays to Function, Sorting
and Searching Arrays, Multidimensional and Variable Length Arrays. Pointers: Pointer
Definitions and Initialization, Pointer Operators, Passing Arguments to Function by Reference,
Using the const and sizeof Operator, Pointer Expressions and Arithmetic, Pointers and Arrays,
Array of Pointers, Function Pointers. Characters and Strings: Strings and Characters, Character
Handling Library, String Functions, Library Functions. Formatted Input/Output: Streams,
Formatted Output with printf, Formatted Input with scanf. Structures: Defining Structures,
Accessing Structure Member, Structures and Functions, typedef, Unions. Bit Manipulation and
Enumeration: Bitwise Operators, Bit Fields, Enumeration Constants. File Processing: Files and
Streams, Creating, Reading and Writing data to a Sequential and a Random-Access File.
Preprocessor: #include, #define, Conditional Compilation, #error and #pragma, # and ##
Operators, Predefined Symbolic Constants, Assertions. Other Topics: Variable Length Argument
List, Using Command Line Arguments, Compiling Multiple-Source-File Programs, Program
Termination with exit and atexit, Suffixes for Integer and Floating-Point Literals, Signal
Handling, Dynamic Memory Allocation calloc and realloc, goto. Advance Topics: SelfReferential Structures, Linked Lists. Efficiency of Algorithms, Selection and Insertion Sort