Embedded C Training Program

1. Introduction to C
   a. What is the fuss about C and Embedded-C
   b. Evolution of C
   c. How does a C program look like?
   d. Discipline of writing code in C language
   e. What makes C so powerful?

2. How to compile C program on Linux
   a. What is compilation, what happens in this process
   b. Difference between precompiler, compiler, assembler and interpreter
   c. Try your first 'Hello World' and understand what really happens in the process.

3. Introduction to Data-types, Constants, Variables, special data types - ENUM

4. Introduction to various operators (logical, arithmetic, relational, conditional, bitwise, expressions etc).

5. Scope of the variables - what does it mean and how it influences the program

6. Input-Output operation handling in C & different types of format specifiers in C

7. Decision-making, branching, looping

8. Arrays & string processing

9. Functions
   a. What is call by value?
   b. What is call by reference?

10. Structures & Unions

11. Explicit Type-casting

12. Pointers

13. File operations in C

14. Dynamic memory Allocations - malloc, calloc, realloc, free
   a. What is a dangling pointer?
   b. What is a null pointer?
   c. Effects of mis-managing a pointer in your program (memory leaks)

15. An Overview of Dynamic link-linked - what is linked-list, how to use it.

16. Types of preprocessors & bitwise operations used in Embedded systems

17. Importance of coding guidelines