Get in Touch

Course Outline

Introduction

  • Overview of C Features and Applications

Setting Up the Development Environment

  • Selecting an IDE
  • Configuring the compiler

Writing a Sample Program

  • Defining the problem
  • Implementing code according to requirements

Defining Variable and Function Scope

  • Understanding scope, visibility, and lifetime
  • Working with storage classes: auto, extern, register, static

Managing Data in C Programs

  • Exploring beyond primitive data types
  • Working with advanced data types: structures, linked lists, etc.
  • Storing different data types in the same memory location

Modifying Variable Properties

  • Exploring beyond type modifiers
  • Working with type qualifiers: constant, volatile, etc.

Bit Manipulation in C

  • Working with data sizes smaller than a byte
  • Using bit manipulation operators

Controlling Program Flow

  • Exploring beyond sequential execution
  • Utilizing the goto statement

Input and Output Operations

  • Recap of Input/Output functions
  • Improving output readability

Developing Cross-Platform Code

  • Understanding compiler directives
  • Implementing conditional compilation

Optimizing Program Performance

  • Macros versus functions
  • Defining macros to execute program fragments

Dynamic Memory Allocation

  • Performance benefits of using pointers
  • Function pointers
  • Memory access and address manipulation

Debugging a C Program

  • Advanced techniques for detecting, checking, and correcting errors
  • Working with gdb (Gnu Debugger)

Creating a Static Library

  • How static libraries are linked into executable files
  • Creating a static library

Creating a Shared Library

  • Static libraries versus shared libraries (dynamic libraries)
  • How shared libraries are linked and loaded into memory at runtime
  • Creating a shared library

Abstracting Data in Programs

  • Overview of interface, specification, and implementation
  • Creating an abstract data type
  • Regression testing for abstract data types

Searching and Sorting Data

  • Searching arrays using linear search, binary search, etc.
  • Sorting arrays using selection sort, insertion sort, bubble sort

Interprocess Communication and Signals

  • Understanding processes, sockets, and signals
  • Implementing IPC using shared files, shared memory, pipes, message queues, sockets, semaphores, etc.

Enabling Parallel Execution in C Programs

  • Running different program parts concurrently via multithreading
  • Writing threads

Advanced Networking Programming

  • Recap of TCP, UDP, IP, and other key protocols
  • Handling multiple ports and managing sudden network disruptions
  • Writing robust socket APIs

Aiming for High-Quality Code

  • Peer code review and parallel programming
  • The importance of iterative coding (refactoring)

Summary and Conclusion

Requirements

  • Experience with C programming

Audience

  • Programmers
  • Developers
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories