Short-term Courses
Programming
C Programming
C++ Programming
C/C++ with Data structures
Objective C
Microcontroller
8051 Microcontroller
ARM
AVR
Pic
Device Drivers
Device Drivers For ARM9
Device Drivers For PC
Operting Sys / RTOS
Linux Internals
Embedded Linux
VxWorks
RT Linux
RTX51
Moblie Applications
Iphone
Android
Windows Mobile
Blackberry
VHDL
Verilog
System Verilog
Summer Training
Workshops



C Basics

  • History of C
  • Characteristics of C
  • C Program Structure
  • Variables
      Defining Global Variables
      Printing Out and Inputting Variables
  • Constants
  • Arithmetic Operations
  • Comparison Operations
  • Logical Operators
  • Order of Precedence

Conditionals

  • Conditionals
  • The if statement
  • The? Operator
  • The switch Statement

Looping and Iteration

  • The for statement
  • The while statement
  • The do-while statement
  • Break and continue

Arrays and Strings

  • Defining, initializing and using arrays
  • Single and Multi-dimensional Arrays
  • Arrays of Characters and Strings
  • Arrays and pointers
  • Strings

Functions

  • Role of Functions
  • Passing arguments to functions
  • Returning values from functions
  • Recursive functions
  • Call back functions
  • Implications on Stack
  • Pass by value / reference
  • Passing Arrays to functions

String Handling : <string.h>

  • Basic String handling functions
  • String Searching
  • Character Conversions and testing : <ctype.h>
  • Memory Operations: <memory.h>

Structures and Unions

  • Structures
  • Nested Structures
  • Array of Structures
  • Allocation of memory and holes
  • Unions

Further Data Types

  • Coercion or Type-Casting
  • Enumerated Types
  • Static Variables

Dynamic Memory Allocation & Dynamic Structures

  • Malloc, Sized, and Free
  • Calloc and Realloc

Advanced Pointer Topics

  • The purpose of pointers
  • Defining pointers
  • The & and * Operators
  • Pointer Assignment
  • Pointers with functions
  • Pointer Arithmetic
  • Advanced pointer types
  • Pointers to functions
  • Pointers to String
  • Pointers and Dynamic memory
  • Pointers and Structures
  • Common Pointer Pitfalls
      Not assigning a pointer to memory address before using it
      Illegal indirection

Storage Classes

  • Scope
  • Internal
  • External
  • Automatic
  • Static
  • Scope and extent of parameters

Low Level Operators and Bit Fields

  • Bitwise Operators
  • Bit Fields
       Bit Fields: Practical Example
      A note of Caution: Portability

The C Processor

  • #define
  • #undef
  • #include
  • #if – conditional inclusion
  • Preprocessor Compiler Control
  • Other Preprocessor Commands

Integer Functions, Random Number

  • String Conversion : <stdlib.h>
  • Arithmetic Functions
  • Random Numbers
  • String Conversion

Mathematics: <math.h>

  • Math Functions
  • Math Constants

Input and Output (I/O) : <stdio.h>

  • Reporting Errors
      perror()
      errno
      exit()
  • Streams
      Predefined Streams
      Redirection
  • Basic I/O
    Formatted I/O
      Printf
  • Scanf
  • Files
      Reading and writing files
  • Sprintf and sscanf
      Stream Status Enquiries

Data Structures

  • Linked Lists
  • Stacks & Queues
  • Binary Tree

Sorting & Searching Techniques

  • Insertion Sort
  • Merge Sort
  • Quick Sort

Writing Larger Programs

  • Header Files
  • Advantages of Using Several Files
  • How to Divide a Program between Several Files
  • Organization of Data in each file
  • The Make Utility
  • Make Programming
  • Creating a make file
  • Make Macros
Apply Online