Programming in “C” (with Project)
Total Calendar Days : 15 Days
Instructor Led Training (ILT) : 8 Days
Project (with Instructor) : 3 Days
Assignment / Project (Self ) : 4 Days
Course Objectives:
* Understand the ‘C’ Philosophy
* Appreciate the finer points of ‘C’
* Program to the ‘C’ Philosophy
* Develop maintainable programs
* Make programs efficient
* learn data type, variables, operators
-- lvalue and rvalue
-- sequence point
* learn pointers in depth
* learn functions, parameter passing, return, stack frame, callbacks
* learn arrays, structures and combinations of arrays and strucures
* learn lists as an ADT dynamic memory management lists - linked lists and array lists
Project Objectives:
* understand the concept of interface and implementation
* understand test case development before coding
* understand version control
* understand iterative development
Course Outline:
Introduction to C Language
Language philosophy
o Efficiency
o Trust programmers
o Safety : onus of the programmer
Program structure
Process structure
Variables
o Storage class
Effect on allocation in data segment, stack and heap
o Qualifiers
o Initialization and assignment – uninitialized variables
KnowledgeWorks IT Consulting Pvt. Ltd.,
www.knowledgeworksindia.com
Operators and expressions
o Lvalue and Rvalue
o Order of evaluation of operators
o Order of evaluation of operands (not defined !)
o Sequence points
o Agreement points
Selection and looping
pointers
Functions
o Declaration
o Definition
o Fn call mechanism
Name
Order of evaluation of arguments
Order of stacking
Cleaning of stack
o Separation into interface and implementation
o Parameter passing
o Return
o Variable # of arguments
o Inline fn
o Life and scope
o Recursion
o callback
Macros
o Generic programming
o Generate overloaded fns (using ##)
Preprocessor directives
o Ifndef
o Define
Array & pointer
o Compile time and runtime models
o Array layout
o Access
o Index out of bounds problems
o Multidimensional array
o Passing an array as argument to fn
o Initialization of an array
Designated initialization
o Searching
o Sorting
Structure
o Layout
o Padding
o Access
o OO based programming
KnowledgeWorks IT Consulting Pvt. Ltd.,
www.knowledgeworksindia.com
Union
o Layout
o Access
o Free and discriminated unions
Combinations of arrays and structures
Dynamic Memory management
o Allocation & deallocation
o Book keeping information
o Alias
o Dangling pointer
o Garbage and memory leak
Introduction to Data structures
o Data structure is an interface
o List
Implement using linked list
Implement using an array
Head node concept
o Stack
o Queue
o Doubly linked List
o Tree
o Graph
o List of trees
Hoffman Coding
o State Space Search
KnowledgeWorks IT Consulting Pvt. Ltd.,
www.knowledgeworksindia.com