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
  • Coding 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

  • 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

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

Manipulating Bits in C

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

Controlling Program Flow

  • Beyond simple sequencing
  • Utilizing the goto statement

Reading and Writing Data

  • Review of Input/Output functions
  • Improving output readability

Developing Cross-Platform Code

  • Understanding compiler directives
  • Conditionally compiling code

Enhancing Program Performance

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

Dynamic Memory Allocation

  • Advantages of pointers: execution speed
  • Function pointers
  • Accessing memory and manipulating addresses

Debugging C Programs

  • Advanced techniques for checking, detecting, and correcting errors
  • Using 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 vs. shared (dynamic) libraries
  • How a shared library is 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 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.

Running C Programs in Parallel

  • Executing different parts of a program concurrently via multithreading
  • Writing threads

Advanced Networking Programming

  • Review of TCP, UDP, IP, and other dominant protocols
  • Serving multiple ports, handling abrupt network disruptions, etc.
  • Developing robust 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

Target Audience

  • Programmers
  • Developers
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories