Course Code: advancedc
Duration: 28 hours
Prerequisites:
  • C programming experience

Audience

  • Programmers
  • Developers
Overview:

The C programming language is one of the most popular programming languages, especially in the realm of systems programming and embedded systems development.

This instructor-led, live training (online or onsite) is aimed at programmers who wish to tap into C's more advanced features and capabilities to optimize and extend the power, resilience and quality of their software applications.

By the end of this training, participants will be able to:

  • Solve problems efficiently by writing high-quality code.
  • Select the right methods and approaches for the job at hand.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.
Course Outline:

Introduction

  • Overview of C Features and Applications

Preparing the Development Environment

  • Choosing 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 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 usig 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

Sites Published:

United Arab Emirates - Advanced C Programming

Qatar - Advanced C Programming

Egypt - Advanced C Programming

Saudi Arabia - Advanced C Programming

South Africa - Advanced C Programming

Brasil - Advanced C Programming

Canada - Advanced C Programming

中国 - Advanced C Programming

香港 - Advanced C Programming

澳門 - Advanced C Programming

台灣 - Advanced C Programming

USA - Advanced C Programming

Österreich - Advanced C Programming

Schweiz - Advanced C Programming

Deutschland - Advanced C Programming

Czech Republic - Advanced C Programming

Denmark - Advanced C Programming

Estonia - Advanced C Programming

Finland - Advanced C Programming

Greece - Advanced C Programming

Magyarország - Advanced C Programming

Ireland - Advanced C Programming

Luxembourg - Advanced C Programming

Latvia - Advanced C Programming

España - Advanced C Programming

Italia - Advanced C Programming

Lithuania - Advanced C Programming

Nederland - Advanced C Programming

Norway - Advanced C Programming

Portugal - Advanced C Programming

România - Advanced C Programming

Sverige - Advanced C Programming

Türkiye - Advanced C Programming

Malta - Advanced C Programming

Belgique - Advanced C Programming

France - Advanced C Programming

日本 - Advanced C Programming

Australia - Advanced C Programming

Malaysia - Advanced C Programming

New Zealand - Advanced C Programming

Philippines - Advanced C Programming

Singapore - Advanced C Programming

Thailand - Advanced C Programming

Vietnam - Advanced C Programming

India - Advanced C Programming

Argentina - Advanced C Programming

Chile - Advanced C Programming

Costa Rica - Advanced C Programming

Ecuador - Advanced C Programming

Guatemala - Advanced C Programming

Colombia - Advanced C Programming

México - Advanced C Programming

Panama - Advanced C Programming

Peru - Advanced C Programming

Uruguay - Advanced C Programming

Venezuela - Advanced C Programming

Polska - Advanced C Programming

United Kingdom - Advanced C Programming

South Korea - Advanced C Programming

Pakistan - Advanced C Programming

Sri Lanka - Advanced C Programming

Bulgaria - Advanced C Programming

Bolivia - Advanced C Programming

Indonesia - Advanced C Programming

Kazakhstan - Advanced C Programming

Moldova - Advanced C Programming

Morocco - Advanced C Programming

Tunisia - Advanced C Programming

Kuwait - Advanced C Programming

Oman - Advanced C Programming

Slovakia - Advanced C Programming

Kenya - Advanced C Programming

Nigeria - Advanced C Programming

Botswana - Advanced C Programming

Slovenia - Advanced C Programming

Croatia - Advanced C Programming

Serbia - Advanced C Programming

Bhutan - Advanced C Programming

Nepal - Advanced C Programming

Uzbekistan - Advanced C Programming