Get in Touch

Course Outline

Introduction

  • Overview of C Features and Applications.

Preparing the Development Environment

  • Selecting an IDE.
  • Configuring the compiler.

Writing a Sample Program

  • Defining the problem.
  • Coding according to requirements.

Defining the Scope of Variables and Functions

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

Managing Data in a C Program

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

Modifying the Properties of a Variable

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

Manipulating Bits in C

  • Working with data smaller than a byte.
  • Working with bit manipulation operators.

Controlling the Flow of Your Program

  • Beyond sequencing.
  • Using the goto statement.

Reading and Writing Data

  • Recap of Input/Output functions.
  • Improving output readability.

Developing Cross-Platform Code

  • Understanding compiler directives.
  • Compiling code conditionally.

Enhancing Program Performance

  • Macros vs functions.
  • Defining macros to run program fragments.

Dynamically Allocating Memory

  • Advantage of using pointers: execution speed.
  • Pointers to functions.
  • Accessing memory and manipulating the address.

Debugging a C Program

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

Creating a Static Library

  • How a static library is linked into an executable file.
  • Creating a static library.

Creating a Shared Library

  • Static libraries vs shared libraries (dynamic libraries).
  • How a shared library is linked and loaded into memory at runtime.
  • Creating a shared library.

Abstracting Data in Your Program

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

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.

Making Your C Program Run in Parallel

  • Running different parts of a program concurrently through multithreading.
  • Writing a thread.

Advanced Networking Programming

  • Recap of TCP, UDP, IP, and other dominant protocols.
  • Serving multiple ports, surviving abrupt network disruptions, etc.
  • Writing powerful socket APIs.

Towards 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