Intensive C++ Training
(FW012)
5 Day Course
Designed specifically for the experienced programmer who wants to learn as much as possible about C++ in one week. Intensive C++ delivers a comprehensive, in-depth view of the C++ language. Included is complete coverage from fundamental concepts of class, inheritance, virtual functions, etc. through topics such as templates, exceptions, namespaces, RTTI, and the standard libraries. In addition to syntax, this course integrates the pragmatic and the theoretical with discussions of object-oriented principles, beneficial design criteria, efficiency tradeoffs, common design patterns, and other useful idioms and programming techniques.
- Classes, Member Functions, and Protection
- Inheritance, Single, and Multiple
- Constructors and Destructors
- Overloading, Dynamic Binding, and Virtual Functions
- Polymorphism and Generic Programming
- Template Functions and Classes
- Exceptions and Error Handling
- Operator Overloading
- Dynamic Memory, Copy/Assignment, and Memory Management
- Type Conversion and Rtti
- Namespaces and Project Organization
- Efficiency Issues, Code Generation, and Inlining
- Function Objects, Pointers, and Callbacks
- Standard Library Iostreams, Strings, and Containers
- Effective Programming Idioms and Techniques
- Object-Oriented Programming, Patterns, and Design
Day 1 Basics Introduce program start, variable types, flow of control, and i/o.
Functions Learn functions, parameter passing, references, arrays, global and static variables, defaults, and inline.
Types Cover constants, enumerations, typedef, switch, c and c++ strings, using directives, structs, reference variables, constant references, overloading, and template functions.
Member Functions Examine member functions, definition and invokation syntax, and const issues.
Inheritance Discuss inheritance, data and functions, its design meaning, overriding, and chaining.
Day 2 Constructors Examine constructors and destructors, multiple and default constructors, array construction, and unnamed temporaries.
Protection Introduce public, private and protected access specification, friends, and class.
Virtual Consider virtual functions, type compatibility, and dynamic binding.
Templates Cover template classes, syntax, instantiation, and parameters.
Day 3 Pointers Examine pointer types and syntax, indexing and relation to arrays, arithmetic, pointers to object, and use in connected data structures.
Dynamic Memory Learn dynamic memory, allocation and deallocation, syntax and purpose, arrays, and memory leaks.
Operator Cover operator overloading and various operators.
Dynamic Memory 2 Discuss use of dynamic memory by classes, and copy and assignment issues.
Exceptions Introduce exceptions, various syntax and use, and interaction with destructors.
Day 4 Constructors 2 Introduce construction of aggregate and derived objects, initialization syntax, and automatic constructor generation.
Scope Examine name collision issues, nested types, static members, and namespaces.
Virtual 2 Cover implementation of dynamic binding, use in writing generic code, abstract operations, pure virtual functions, and virtual destructors.
Inheritance 2 Discuss multiple and private inheritance.
Type Conversion Examine casting, cast operators, dynamic cast, rtti, and explicit.
Functions 2 Learn function objects, overloading operator function call, pointers to global functions and member functions, and callback-based notification.
Day 5 Std Containers Discuss fundamentals of standard library containers, use, iterators, algorithms, function parameters, nested typedefs, and generic code.
Preprocessor Consider preprocessor directives, code selection and generation, and macro parameters.
Compilation Cover issue in separate compilation, code organization, dependencies, and guards.
Patterns Introduce idea of design patterns and work through example patterns.
Object-Oriented Programming and Design Examine principles and concepts in object-oriented programming and design. Work through typical design example and consider various issues such as decoupling, reuse, and ease of extension.
|
|
|
Pre-Class
- Verify your learning Objectives
During-Class
- Capture Tools, Q&A, demos and white boards
- Screen Sharing
|
- Feedback on Lab work
- On-the-fly Adjustments to meet your needs
After-Class
|
| Onsite Setup Instructions
| |
Course Set-up Requirements
FW012 Intensive C++ |
The hardware and software needed to successfully deliver this course is listed below. PC configurations, including processor, RAM, and hard drive, are recommended minimums. Courses can be run on lower performing machine, but with slower performance. Please call for confirmation if your PC configuration is significantly less than what is recommended.
In addition to PC equipment, each instructor will require projection equipment that is capable of projecting the instructor's monitor onto a screen clearly visible by all students participating.
|
| Student Machines |
Instructor Machines |
| Hardware Requirements |
Hardware Requirements |
Pentium Processor 32 MB RAM 1 G Hard Drive Network connectivity (required) Internet connection (optional) 17" color monitor (required)
|
Pentium Processor 32 MB RAM 1 G Hard Drive XGA Projector with a minimum resolution of 1024 x 768 for displaying PowerPoint slides Network connectivity (required) Internet connection (optional) 17" color monitor (required)
|
| Software Requirements |
Software Requirements |
Access to a C++ compiler. This could be Visual C++ 10.0 installed on each student machine, access through telnet to a UNIX machine with a C++ compiler, or whatever. If Visual C++ is installed, help files should be installed locally on every machine, or install VC from the network (and leave the CD on the network).
|
Access to a C++ compiler. This could be Visual C++ 10.0 installed on each student machine, access through telnet to a UNIX machine with a C++ compiler, or whatever. If Visual C++ is installed, help files should be installed locally on every machine, or install VC from the network (and leave the CD on the network). PowerPoint & Word
| |
|
|
|
| Remote Access Available
| |
Intensive C++ Training is now available as a remote access course.
You can now take open enrollment courses in our Los Angeles and Boston facilities without traveling. Remote Access to our ongoing schedule of instructor-led courses will allow you to fully participate real-time in expert-level lectures, demos and labs that have made DevelopMentor a leader in software development training. We've added new collaboration tools and prepared our instructors for remote students in class so you will be fully engaged in the learning process.
|
|
|
| Mentoring
| |
Quickly assimilate what you learn in Intensive C++ Training and apply it to your project by taking advantage of our Mentoring services.
Our dedicated mentors facilitate your team's development. We add value to your business by enhancing the talent of your employees and maximizing their productivity. Mentors integrate the methodologies, technologies and practical experiences of the classroom through an on-the-job and on-the-project experience that produces real-world results.
|
|
|
| Onsite
| |
Intensive C++ Training is also available as an onsite course.
If you have a group of people to train, an on-site course, delivered at your facility may be the most cost-effective solution for you. Our staff will work with your team to plan and produce the best possible result based on your team's size, experience levels, project needs and longer-term goals. We can structure a training course, or broader program, tailored to meet the specific needs of your organization. We'll make sure that any lab exercises run on the platform you use and we can tailor the lab exercises to be appropriate to your business. If you prefer to focus on just the pure technological principles, we can also deliver courses at your facility following the same format as our public curriculum.
|
|
|
| About the Author
| |
|
|
Course price includes course materials provided on an eco friendly USB memory stick. Use of a PC for lab exercises.
Review basic programming concepts: functions, structures, pointers, etc.
Onsite Setup
|
|