C Programming Courses
The C Programming Language was developed at Bell Labs. Interestingly it was influenced by a language developed at Cambridge (UK) called BCPL. BCPL led to a language called B and B evolved into C. In many ways C is a brilliant language which marries the ability to develop structured modular code, and yet, at the same time is very close to underlying basic micro-controller instruction sets. It is probably no accident that many currently used languages such as C++, Java and C# owe much to C.
C is still widely used in the development of embedded systems, including operating systems. The Linux Kernel, of course, is mostly written in C (with small amounts of assembler for architecture specific details). Complex and sophisticated object oriented code can be implemented in C, as the design and implementation of many of the components of Linux demonstrates.
It is still important to know how to code in C, if only to use powerful C/C++ based frameworks and libraries such as libxml2 and opencv in mixed programming language environments ( e.g. mixed Objective C and C programs in iPhone applications, and mixed Java and C programming via NDK in Android applications). Mention should also be made of Cython - a set of C extensions for Python, and Python wrappers around numerical analysis libraries implemented in C. Using C and tools such as Flex and Bison (formerly Lex and Yacc) it is possible to implement a whole variety of application specific "mini languages".
FTT's C generic programming courses concentrate on ANSI C programming. In addition FTT has developed more focused courses such as Linux Posix API programming and Embedded C programming courses which address operating system and hardware specific aspects of C programming. FTT's experience with C dates back to the 1980's and the early days of Unix. Our trainers and consultants have been using and teaching the C language in demanding of environments and have for example run advanced C programming training for development of MISRA compliant code for organisations such as MIRA and Continental AG. As well as providing off-the-shelf courses we can also develop bespoke courses and provide specialised programming, testing and code-review services.
ANSI C Programming Courses
- CL101 Introduction to C Programming (5 days)
- CL102 Foundations of Dynamic Data Structures and Algorithms in C (5 days)
Microcontroller Specific C Programming Courses
These courses are detailed in the thetrainingarm web site, and are listed here for convenience.
- Introduction to C Programming for the 8051 (5 days)
- Advanced C Programming for the 8051 (5 days)
- Introduction to PIC16 and PIC18 C Programming
- Advanced PIC16 and PIC18 C Programming
- Introduction to PIC24 C Programming
- Advanced PIC24 C Programming
- Introduction to DSP C programming for the dsPIC
- Introduction to PIC32 C Programming
- Advanced PIC32 C Programming
- Introduction to DSP C programming for the PIC32
- Introduction to ARM Cortex M C Programming
- Advanced ARM Cortex M C Programming
- Introduction to Embedded Linux C programming
- Advanced Embedded Linux C programming