C Unleashed
C, one of the most popular programming languages across the world was developed in the year 1972 by Dennis Ritchie. When most of its contemporary computer languages have become obsolete, C is still going strong and its popularity is only increasing day by day. World’s top software company Microsoft Corporation has used C and C++ to develop its best selling software like Windows XP, VC++ etc. Likewise the success stories are many.
The immense popularity of C lies in its simplicity, compactness and reliability. In fact it’s so simple and easy to use that optimising and destroying a system using C can be achieved with equal ease. This very simplicity comes from the fact that it never comes in the way of a programmer and gives him the maximum independence to decide what is best for his task. C is that unique language that provides the dual features of a high as well as a low level language. A good C programmer can do anything and everything on Computers and can very easily adapt to any technology. That is the reason across the globe we find technical syllabuses having C as a subject in it.
In our Training Program, C Unleashed we have tried to comprehensively cover the various aspects of C Programming along with some application area of C relevant for budding practitioners of IT.
The program broadly covers three areas namely
- C – Basics
- Data structure using C
- C – The Advanced Topics
C – Basics
The curriculum below reflects upon the basic minimum topics that a person should know to be called as C Competent.
Module – 1: C – The Conventional
|
|
|
|
Introduction
- Evolution of C
- C Character Set
- Constants and Variables
- C Keywords
- Declarations
- Signed and Unsigned data
- Operators
- Simple I/O Statements
- The First C Program
Anatomy of C Program
- Integrated Development Environment
- C Compilers
- Phases of Compilation
- Comments
- Functions
- Loaders & Linkers
- Pre-processor
- Debugger
- Main ()
- Role of Return
Number System and Its Representation
- Binary representation
- Quick calculations
- Complement
- Hexadecimal Representation
- Octal Representation
- Convention in representation
Operators – The Hooking Elements
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Increment and Decrement Operators
- Bit wise operators
- Assignment Operators and Expressions
- Conditional Expressions
- Comma operator
- Type Conversions
- Precedence and Order of evaluation
Control Structure
- Blocks
- Conditional Control – if else, switch case
- Unconditional Control – go to … label
- Iterative control – while, do … while, for
- Where to use which type of loop
- Goto – should I or shouldn’t I?
Functions – The Building Block of C
- Planning a program
- Prototyping a function
- Defining a function
- Accessing a function
- C Calling Convention
- Pascal Calling Convention implemented in C
- Types of function call
- Passing argument to a function
- Specifying argument data type
- Difference between argument and parameter
|
|
Recursion
- Why recursion
- Memory layout for a recursive function
- Advantages and disadvantages
- Loop or recursion – which one to choose ?
Storage Classes
- Types of storage classes
- Automatic
- Register
- Static
- Where to use which storage class
- Memory mapping for each storage class
Arrays
- Defining an Array
- Array name – whose name is it?
- Static Pointers
- Limitation of arrays
- Processing Array to a function
- Operation on Strings
- Benefits of multidimensional array
- Multidimensional puzzle
Pointers
- Pointers and addresses
- Pointers and function arguments
- Pointers and arrays
- Address Arithmetic
- Array of pointers – pointer to pointer
- Initialisation of pointer arrays
- Pointers Vs. Multi-dimensional arrays
Structures & Unions
- Defining a structure
- Nested structures
- Self referential structures
- Structures and pointers
- Applications of structure
- Union basics
- Cases where union should be used
- Application of union
- User defined datatypes – typedef
- Enums – application and advantage
Console I/O Operations
- Unformatted I/O
- Getch(), Getchar(),getche() and gets()
- Putch(), putchar() and puts()
- More about scanf()
- More about printf()
Disk I/O Operations – File Handling
- Text File – creation, manipulation, printing
- Binary File – creation, manipulation, printing
- Text versus binary mode
- A database illustration
I/O Operations – Extended
- Command Line Arguments – Argc and Argv
- Variable argument passing to functions
- Detecting Errors in Reading/Writing
- Standard I/O Devices
- Low level disk I/O
- I/O Redirection
|
|
|
Top |
Data structure Using C
|
|
Module – 2: Data Structure
|
|
|
|
Stacks and application
- Definition and concepts
- Advantages/ disadvantages
- Implementation in the form of
- Application
Queues and application
- Definition and concepts
- Advantages/ disadvantages
- Implementation in the form of
- Application
Linked list
- Singly linked list
- Operations and Implementation
- Circular linked list
- Doubly linked list
- Application
|
|
Trees
- Terminology
- Binary trees
- Operations and implementations
- Tree traversal
- Application
Sorting
- Selection sort
- Insertion sort
- Merge sort
- Quick sort
- Bubble sort
- Radix sort
- Heap sort
Searching
- Linear Search
- Binary Search
- Fibonacci Search
- Hashing
|
|
|
|
C- The Advanced Topics
|
|
|
|
Module – 3: C Under Linux
|
|
|
|
- Linux and Open Source
- Linux – The OS
- Writing and compiling a C Program under Linux.
- Exception Handling
|
|
- Communication using signals
- Registering a Common handler
- Ignoring signals
- Visual Programming using GTK+
|
|
|
Top |
Module – 4: C – The Classics
|
|
|
|
Pointers Explored
- near pointer
- far pointer
- huge pointer
- normalized and unnormalized pointers
- Pointers to functions
- Complicated declarations
- Pointer – the super power
Memory Models
- Tiny model
- Small model
- Medium model
- Compact
- Large model
- Huge model
Low-Level Programming
- Register Variables
- Bitwise Operations
- One’s Complement
- Left Shift
- Right Shift
- Bitwise AND
- Bitwise OR
- Bitwise XOR
- showbits() function
- Bit Fields
Pre-processors
- Features of C pre-processor
- Triagraph
- Line splicing
- Tokens
- Macro Expansion
- Macro Vs Function
- File Inclusion
- Conditional Compilation
|
|
CPU Architecture
- CPU General purpose registers
- AX,BX,CX,DX ,SI,DI,CFLAG , FLAG
- ah, al , bh, bl, ch, cl, dh, dl
- Application in C
Disk Management with C
- Booting Procedure
- Exploring Floppy and Hard Disk
- Reading BIOS
Interrupt Handling
- Interrupts and IVT
- Hardware interrupts
- Software Interrupts
- Invoking ROM-BIOS functions
- Know your base memory size
- Screen manipulation
Errors – The Terrors
- Types of errors
- Method to handle error
- Trapping errors
Exception Handling in C
- Exceptions – the runtime hurdles
- Handling exceptions in C
Tools with C
- Reading Executable files like command.com, tc.exe etc.
- Reading Boot sector
- Compressing and Decompressing
- Hiding and un-hiding files
- File copy Utility
|
|
|
Top |
Module – 5: C Under Windows
|
|
|
|
Basics of Win32 API Programming
- The windows environment
- Programming in DOS Vs. Windows
- Windows programs
- Static and Dynamic linking
- Message Driven architecture
- Win32 Programming environment
- CPU Time
- Structure of a Windows program
Structure of Windows Program
- Data Types
- Hungarian Naming Convention
- Message Loop
- Common API Functions
- Commonly processed messages
- Creating Resource
Text, Output, Font and Bitmaps
- Character mode vs. Graphics Mode
- Device Independence
|
|
- Graphics Device Independence
- Device Context
- API functions working with Device Context
- Device Context Setting
- Windows RGB Color Model
- Character set functions
- Caret Management Functions
- Keyboard message processing
- Implementing keyboard interface
- Fonts
Mouse Interactions and Stock Objects
- User Interaction with mouse device
- WM_MOUSEMOVE Messages
- Client and Screen coordinates
- Hello World application
- Changing the mouse cursor
- GDI Objects – Pen, Brush
- Win32API drawing routine
- Rubber band effect
- Raster operation
|
|
|
Top |
Module – 6: C – The Charisma
|
|
|
|
TSRs
- How TSR works?
- Interrupt function modifier
- Variables in TSRs
- Time bound TSRs
- Tinkering with the keyboard
- Play with your printer
C Graphics
- Drawing lines
- Drawing and filling images
- Patterns
- Filling shapes
- Outputting the text
- Animation
|
|
- Drawing with mouse
- Building mouse cursors
- Freehand drawing using mouse
- Menu using mouse
C & Database
- Connectivity of Database with C
- Passing SQL through C
Working with Assembly Language
- Assembly language Application
- Looping and comparison
- Shifting Bits
- Calling a C routine from Assembly
|
|
|
Top |
Module – 7 : C – Googlies
|
|
|
|
- Traps & Pitfalls
- Tips to approach C Questions
|
|
- Sample Test Papers for Campus
|
|