Courses

Overview

Java

BREW

Perl

Linux

OOD and
Design
Patterns

C++
and C

UNIX and
Shell

C# and
.NET


C++ and C



C++ Programming
(detailed course outline available)

Designed for C programmers, this course allows participants to experiment with design features through exercise programs. Starting with a presentation of C++ as a better C, the course explores function prototyping, the IOStream Library and operators, references, default arguments, structure and enum types, new keywords, comment styles, and free store operators. The basis of data abstraction is the C++ class with operator and function overloading. Once the features and syntax of the class construct in C++ are mastered, students are introduced to the methodology of object-oriented design and programming. The application of these concepts will in turn lead to more advanced uses of C++, including inheritance, parameterization (template classes), and dynamic binding. Example C++ programs and program fragments as well as assigned exercises augment the lecture material.

Relevant course textbook:


Navigating C++ and Object-Oriented Design
[top]

Advanced C++ Programming
(detailed course outline available)

Designed for C++ programmers, this course explores advanced uses of C++. Starting with a "boilerplate" class design approach, the course moves to more advanced uses of C++, including parameterized container classes, iterators, polymorphism with virtual functions, multiple inheritance, exception handling, RTTI (run-time type information), and object storage management. This course allows participants to experiment with advanced C++ features through exercise programs. Added ANSI C++ features are explored, including namespaces, bool, member templates, explicit, export, and nothrow versions of new and delete. The IOStream Library and Standard Template Library are also presented.

Relevant course textbook:


Navigating C++ and Object-Oriented Design

[top]
C++ Standard Template Library (STL)
(detailed course outline available)

C++ Standard Template Library is a three-day course with hands-on workshops that is designed for those individuals who wish to enrich their software skills in using the C++ Standard Template Library (STL). The first part of the course introduces iterators, containers, and sequenced adapters to store data and access their values. Next, the course moves to function objects and adapters, which give programmers more control over the behavior of STL algorithms and the storing of data in containers. The last part of the course reviews many of the useful STL algorithms, including sorting and searching data and numeric processing.
[top]

C++ Performance Tuning
(detailed course outline available)

C++ Performance Tuning is a hands-on course that is designed for those individuals who wish to enrich their software skills in advanced uses of C++. Students learn a "boilerplate" class design approach with advanced uses of C++ including templates, virtual functions, exception handling, RTTI (Run-Time Type Identification), object storage management techniques, and interfaces. Participants also learn techniques for implementing state machine designs. The course includes many ANSI C++ tips and techniques that relate to performance tuning. Example C++ programs and assigned exercises augment the lecture material and hands-on workshops.
[top]

C++ and SystemC Programming
(detailed course outline available)

C++ and SystemC Programming is a four-day course with hands-on workshops that shows programmers and engineers how to use an object-oriented approach with C++ and SystemC applications. Starting with C++ function prototypes and the I/O stream library, the course moves to the object-oriented concepts of classes, operator overloading, inheritance, and containment. C++ templates help implement generic functions and classes. An introduction to the C++ Standard Template Library (STL) provides a wealth of container classes and algorithms for the students to use. Once the foundations of C++ are mastered, the course presents an overview of SystemC, exploring data ports and signals, program modules, processes, interfaces, and channels. Example designs and assigned exercises augment the lecture material.
[top]

C++ for Non-C Programmers
(detailed course outline available)
Designed for programmers who are not familiar with the C language, this course introduces students to the concepts behind object-oriented design and programming. Next, the features and syntax of the class construct in C++ are mastered. The application of these concepts leads to other design issues with C++, including inheritance, containment, parameterization (template classes), and dynamic binding. Example C++ programs in lecture provide the basis for students to experiment with design problems in the workshops.
[top]

C Programming
(detailed course outline available)

Designed for those individuals who wish to learn the C programming language, this course begins with a presentation of C data types, operators and expressions, casts, and control constructs. It then explores function and program structure, including parameter passing, call by address and value, and storage classes. Arrays and pointers are presented in detail, as well as structures, unions, and bit fields. The Standard C Library, buffered file I/O, and dynamic storage allocation provide the tools programmers need to create industrial-strength programs.
[top]

Advanced C Programming
(detailed course outline available)

The first part of this two-part course presents C's run time environment (text, stack, data, BSS, heap program areas), the relationship between arrays and pointers, and the C library routines for dynamic storage allocation, string handling, memory to memory conversions, and file I/O. The second part of the course is a series of techniques that help practicing C programmers become highly proficient with the C language. Starting with sequence guarantee points, the course moves on to other topics, such as deciphering complex pointer expressions with the Right-Left Rule, creating multi-dimensional arrays at run-time, and customizing dynamic memory allocators. This course also presents many techniques for C debugging, which include assertions, compile-time flags, and selective debug prints, all of which are independent of debuggers and operating systems. All source code programs conform to the ANSI C standard for portability.

Relevant course textbook:


Advanced C: Tips and Techniques
[top]


Home | About Us | Clients | Courses | Books | Articles | Download | Contact Us

Copyright © 2006, Anderson Software Group, Inc., Encinitas, CA

Return to Home Page Return to Home Page