Get in Touch

Course Outline

Introduction

  • Overview of C Capabilities and Use Cases

Setting Up the Development Environment

  • Selecting an IDE
  • Configuring the compiler

Developing a Sample Program

  • Defining the problem
  • Implementing code to meet 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

  • Exploring beyond primitive data types
  • Working with complex data structures: structs, linked lists, etc.
  • Storing diverse data types in the same memory address

Modifying Variable Properties

  • Exploring beyond type modifiers
  • Utilizing type qualifiers: const, volatile, etc.

Manipulating Bits in C

  • Working with data units smaller than a byte
  • Utilizing bitwise operators

Controlling Program Flow

  • Exploring beyond standard sequencing
  • Utilizing the goto statement

Reading and Writing Data

  • Review of Input/Output functions
  • Enhancing output readability

Developing Cross-Platform Code

  • Understanding compiler directives
  • Implementing conditional compilation

Improving Program Performance

  • Macros versus functions
  • Defining macros for executing code segments

Dynamic Memory Allocation

  • Performance benefits of using pointers
  • Function pointers
  • Accessing and manipulating memory addresses

Debugging a C Program

  • Advanced strategies for identifying and fixing errors
  • Utilizing gdb (Gnu Debugger)

Creating a Static Library

  • How static libraries are linked into executable files
  • Steps to create a static library

Creating a Shared Library

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

Abstracting Data in Your Program

  • 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 via shared files, shared memory, pipes, message queues, sockets, semaphores, etc.

Enabling Parallel Execution in Your C Program

  • Executing different program segments concurrently through multithreading
  • Writing threads

Advanced Networking Programming

  • Review of TCP, UDP, IP, and other key protocols
  • Handling multiple ports and managing sudden network interruptions
  • Developing robust socket APIs

Towards High-Quality Code

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

Summary and Conclusion

Requirements

  • Prior experience with C programming

Target Audience

  • Software Programmers
  • Developers
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories