|
||||||
| |
||||||
| C++ |
C++ and C
C++ Programming 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: [top]Advanced C++ Programming 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: [top] C++ Boost Library(detailed course outline available)
For C++ programmers who strive to use libraries effectively in their
software designs, Boost is the next step beyond the C++ Standard
Library (STL). This hands-on course covers Boost smart pointers
for resource management and shows practical uses of the
Boost Conversion, Utility, Operator, and RegEx libraries. Boost
Container classes (Any, Variant, Tuple) are also presented, as
well as thorough treatments of Lambda Expressions and the Boost
Bind and Function libraries. A working knowledge of STL with
C++ is helpful but not mandatory. (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. (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. (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. (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 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. Advanced C Programming 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: [top] |
||
|
|
|||