Issuu on Google+

Course information Advanced C Programming

Duration: 2 days

Course Description This course will extend the skill of C developers with a variety of more advanced and challenging techniques and issues. This course also provides coverage of issues and topics of concurrent and parallel programming. Each of these areas involve often subtle and especially challenging aspects of software written in C.

Course Objectives • • • •

Master challenging data structures and algorithms To discuss a variety of issues and concepts relating to concurrent and parallel programming. AII attendees will be capable of reading and writing advanced C programs. Gain proficiency in object-oriented programming style in C.

Who can benefit? The course is for C programmers for embedded, system and application software.

1 | Advanced C Programming

©2011 IT Education


Course information Advanced C Programming

Workshop overview

1. Introduction 1.1. Objectives and format 1.2. Course overview

2. Complex Data Structures 2.1. Hash tables 2.2. Binary Trees 2.3. AVL Trees 2.4. Red/Black Trees 2.5. Bit Lists 2.6. Tries, including PATRICIA Tries. 2.7. Radix trees. 2.8. Complexity Analysis 2.9. Big Oh 2.10. Cache considerations in data structures

3. Algorithms 3.1. matching, including longest prefix matching 3.2. recursion 3.3. Choice of algorithm 3.4. Double duty out of data types 3.5. Analysis and comparison of algorithms including "Big Oh" notation.

4. Advanced Algorithms 4.1. sorting 4.2. searching 4.3. matching, including longest prefix matching 4.4. algorithm time complexity and scaling 4.5. Tail recursion converted to iteration.

2 | Advanced C Programming

Š2011 IT Education


Course information Advanced C Programming

5. Object Oriented Programming in C 5.1. Simulating classes 5.2. Implementing virtual functions via function pointers 5.3. Simulating inheritance 5.4. Replacing conditionals with polymorphism

6. Concurrency Concurrency and Parallelism 6.1. threading 6.2. race conditions 6.3. data dependencies 6.4. speedup/slowdown with multi-core/multiprocessor 6.5. cache considerations 6.6. deadlock 6.7. priority inversions 6.8. debugging

P.O. Box 88 · 3750 GB Bunschoten · The Netherlands +31.33.44.80.160 · info@iteducation.nl · www.iteducation.nl Trade Register: 32147657 · VAT: NL0681.57.897.B01 · ING Bank: 4238201

3 | Advanced C Programming

©2011 IT Education


Advanced C Programming