C/C++ Training Curriculum

C Programming Training

Advanced C Programming

This course provides practicing C programmers a deeper understanding of the more advanced aspects of the C language and focuses on sophisticated and practical topics. Covered during the course are topics such as: the evolution of the C language; details of program structure and the nature of scope, storage class and type in C; memory management features and best practices; internals of the stream and file based I/O elements of C; process security and proper buffer management; data structures and supporting C derived types; and aspects of parallel execution including threading and locking.

Attendees will be exposed to generic, functional and object-oriented programming strategies and will learn an advanced collection of practical build, test and application profiling techniques in a series of hands-on labs designed to provide practical experience with the covered material.

This is an instructor-led training (ILT) class and is available for onsite and online delivery.

Memory Management in C99 Seminar

This one-hour seminar is designed to provide practicing programmers with a whirlwind tour of the memory mechanisms available in the C programming language. The talk takes participants through a comprehensive look at C99 tools and techniques for memory management. Issues covered include scoping and storage class, initialization, allocation/deallocation, and common memory pitfalls as well.

Memory Management in C99

This training course is designed to provide practicing C programmers with an in-depth treatment of the memory mechanisms available in the C programming language. The course takes participants through a comprehensive look at C99 tools and techniques, pitfalls and best practices for memory management. Issues covered include scoping and storage class, initialization, allocation/deallocation, address space organization, run time memory management, virtual memory, page management and optimization as well as coverage of some of the most popular static and dynamic code analysis tools for C programs. Common pitfalls and defensive programming techniques are covered in detail throughout the course.

This is an instructor-led training (ILT) class and is available for onsite and online delivery.

Embedded C Programming for C Programmers

This training course is designed to introduce experienced C Programmers to embedded systems development with the C programming language. Developers will learn general embedded software development requirements and tool chains, and will build working software on the first day of class. The course covers general embedded systems programming topics including interrupt processing, memory systems and various forms of I/O.

Hands-on labs are provided on a range of platforms, typically customized to suit the customer’s needs. Important industry standards are examined including the ISO 2008 Embedded Processor C extensions in TR 18037 and the 2013 MISRA C standard. By the end of the course developers will have completed several projects giving them a well-rounded view of the processes, systems and practices associated with embedded systems development in the C programming language.

This is an instructor-led training (ILT) class and is available for onsite and online delivery.

High Concurrency/Low Latency C Programming

This course gives practicing C programmers an inside look at the way C applications interact with libraries, operating systems and hardware, focusing on the development of optimal performance in areas of both latency and concurrency. The course begins with a discussion of the nature of performance in software and the balance between latency and concurrency and techniques for accurate and objective performance measurement are illustrated. Coverage of memory models follows, describing the performance considerations associated with registers, cache, physical and virtual memory. Memory distribution architectures are examined along with C mechanisms available to optimally implement portable, memory intensive application logic.

Modern C approaches to parallel execution are covered, with labs illustrating the impact of various designs in concurrent systems. C I/O is examined, both local and network based, along with various schemes for optimizing throughput and latency. The course covers high concurrency topics with investigation of locking and inter-thread communications. Memory fences, atomic operations, bus locks and designs for lockless queues are examined in detail. The course culminates with a survey of various third party C technologies designed for high performance computing.

This is an instructor-led training (ILT) class and is available for onsite and online delivery.

For more information or to book RX-M to train your team

Contact Us

Related Training: