1. Introduction to IT, Computers and Programming Language
1.1 Data and Information
1.2 Information storage, Transportation and Processing
1.3 Components of Computer Architecture
1.4 Diffrent types of Languages
1.4.1 Machine, Assembly, High Level
2. C Development Environment
2.1 Editor
2.2 Compiler
2.3 Linker and Dynamic Linking
2.4 Loader and Dynamic Loading
2.5 Libraries (Static and Dynamic)
2.6 Debugger
2.7 Profiler
2.8 IDE (Integrated Development Environment)
3. Functions, functional decomposition and parameters
3.1 Function Decomposition Paradigm
3.2 Function Cohesion and Coupling
3.3 Prolog, Epilog and Stack Frame.
3.4 Anatomy of a function
3.5 Parameterized functions
4. Variables, types, operators & expressions
4.1 Different Intrinsic types like int, float etc.
4.2 Different types of operators and their precedence.
4.3 Expression and sub-expressions
4.4 Bit-operators
4.5 Variable Declaration, Definition and Initialization
5. Pointers
5.1 Anatomy of a pointer
5.2 Using Pointers
6. Procedural Programming
6.1 Difference between functions and procedures
6.2 Different ways of passing parameter
6.3 Communication patterns between functions
6.4 Understanding auto, static, register & extern
7. Arrays (one dimensional and multidimensional)
7.1 Why Arrays?
7.2 Declaring and initializing arrays
7.3 Using Arrays
7.4 Bubble sort and Selection sort.
8. Strings
8.1 Declaring and using strings
8.2 Different type of operations on strings
8.3 Command line parameters
8.4 Standard ANSI library string functions(string.h).
9. Data structures- stack & queue
9.1 Implementation of stack
9.2 Implementation of queue
9.3 Implementation of circular queue
10. User defined structures
10.1 Anatomy of Structure
10.2 Anatomy of Union
10.3 Anatomy of Enum
10.4 Defining and using Structures, Union and Enums
10.5 typedef
10.6 Applying structures, unions and Enums to solutions
11. Advanced Pointers
11.1 Pointers with One-dimensional Arrays
11.2 Pointers with N-dimensional Arrays
11.3 Structure Pointers
11.4 Function Pointers
12. Dynamic Data Structures
12.1 Simple Linked List
12.2 Doubly Linked List
12.3 Implementing Stack using Dynamic Memory Allocation
12.4 Implementing Queue using Dynamic Memory Allocation
13. Recursion
13.1 Power of Recursion
13.2 Recursion v/s Iteration
13.3 Tower Of Hanoi
13.4 Sorting Algorithms
14. File Handling
14.1 Opening and Closing Files
14.2 Reading, Writing, Appending
14.3 ANSI library for File Handling
14.4 Using dir.h
15. Studying Header Files
15.1 Graphics.h
15.2 Time.h
15.3 Math.h
16. Preprocessing
16.1 Different type of preprocessing directives in C
16.2 Applying preprocessor.
17. Modular Programming
17.1 Difference between Functional and Modular Programming
17.2 Defining Modules in .c Files and using them in application
17.3 Separate Compilation and Role of Header files
17.4 Member access across Files
18. Projects in C using Design Patterns
18.1 Game Programming (Implemented during the course)
18.1.1 Tic-Tac-Toe (Using MVC Pattern)
18.1.2 Pacman (In Graphics Using Source-Listener Pattern)
18.2 System Programming (Assignment)
18.2.1 A Simple Database
18.2.2 Parser
18.2.3 Simulators