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
Requirements
- C programming experience
Audience
- Programmers
- Developers
Delivery Options
Private Group Training
Our identity is rooted in delivering exactly what our clients need.
- Pre-course call with your trainer
- Customisation of the learning experience to achieve your goals -
- Bespoke outlines
- Practical hands-on exercises containing data / scenarios recognisable to the learners
- Training scheduled on a date of your choice
- Delivered online, onsite/classroom or hybrid by experts sharing real world experience
Private Group Prices RRP from €9120 online delivery, based on a group of 2 delegates, €2880 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Contact us for an exact quote and to hear our latest promotions
Public Training
Please see our public courses