The IEEE Boston Section Techsite

The On-line Boston Section IEEE Information Source

Course:  

Fundamentals of C++ With Classes

Lecturer:

Jeffrey Goldberg, Qualware Instructional Services

Date:

Six consecutive Tuesday May 3, 10, 17, 24, 31, Jun 7, 6:15PM - 9:45PM

Location:

Lexington Sheration Inn, 727 Marrett Rd., Lexington, MA

Text: Object-Oriented Programming in C++ (4th Edition) by Robert Lafore

Prerequisite: Students should have some prior programming knowledge or experience, but not necessarily in C or C++ (for instance, VB, Perl, Java, Pascal would be fine).Some high level modular programming concepts and exposure to object based programming would be exceedingly helpful. Although class will be mostly lecture and demonstrations, it is highly recommended that attendees bring a laptop with an installed C++ compiler to class, since approximately one half hour of each class will be devoted to experimenting with examples in class.

Class Description: By the use of lectures, demonstrations and lab exercises (for those individuals that bring laptops to class), this mini course will introduce you to what still remains as one of hottest languages around, the C++ programming language.  Unlike C, this is a modern-featured, strongly-typed,object-oriented, events-driven, error-handling, language, that remains platform independent and capable of running in many diverse environments, thus directly challenging other languages such as Java in the marketplace. 

Attendees will then learn the syntax and use of the C++ programming language, how to design and use data structures, classes, objects, overloaded operators and functions, inheritance and polymorphism.  The course introduces the modern day concepts of object oriented, event driven programming in an easy to understand way, comparing constructs in C++ with other programming languages when beneficial. Class lecture will be mixed with in-class and out-of-class projects to reinforce learning the concepts discussed in class.

Targeted for: This class is ideal for individuals that want to learn C++ from the ground up. The class will proceed at a pace that will allow most individuals, with the willingness to learn this material, to keep up with the class. The material in this courses is appropriate for individuals wishing to learn how to write command line and console C++ applications. Although this course does not go into writing windows applications, the fundamental concepts covered in this course should make transitioning to a windows base application relatively straight forward.  The class is structured to be as interactive as possible by making use of live demonstrations that review and emphasize the concepts taught in the class and assigned as homework projects.

PRELIMINARY DETAILED AGENDA

Class 1 - An Introduction to C++

                Overview of the many capabilities of C++:

                Introduction to some of the C++ Development Environment.

                Introduction to Object Oriented Programming Paradigm.

                Terminology:  Abstraction, Encapsulation, Inheritance, Polymorphism.

                Introduction to Object Oriented Programming;

                   Objects, Events and Error Handling as it applies to C++.

                   Strong Typing, Compatibility with C,

                Reserve Key words, Review Precedence, Fundamental Data Types.

                Derived data types: arrays, structures, pointers, references, const.

                Stream Input/Output and Insertion/Extraction Operator: cin, cout

                Write first few C++ program(s).

Class 2 - The C/C++ Glory Details 

                As a strongly typed language, review primitive data types,

                arrays, structures, and quick intro to strings, quoting,

                string vs character literals, escape sequences,

                C++ case sensitive variables, variable type declarations,

                Statements end in semi, comments,

                assignment statements, dealing with lack of string concatenation op,

                mathematical operators, precedence, conditional constructs,

                Boolean expressions, logical connecting and comparison operators,

                quick review of control flow branching (decisions) and looping syntax.

                Declaring and using arrays, initializing arrays,

                address of operator, more on references, using pointers,

                printf and cout, floating point constants defaulting to double.

Class 3 - Procedures and an Introduction to Classes and Objects

                Autoincrement/decrement, advanced assignments, short-circuit

                logical operators, terminating loops early.  Procedures and

                functions, passing arguments to procedures and returning back values.

                Numeric string conversions with atoi, atof, etc, scope and lifetime

                of variables and procedures, command line arguments.

                Scope resolution operator, function prototypes, overloaded functions,

                scope visibility, structures, classes, membered functions.

                Discussions on casting and converting, when casting required.

                Declaring and using the strings, string functions, length.

Class 4 - Object-Oriented Programming and Inheritance

                Review C Classes, class member visibility, constructors, destructors;

                Properties and methods, inheritance, extending classes,

                overloaded constructors and methods,

                Passing Objects by value, by using references and pointers,

                static methods (functions), static data member.

                Derived classes, references to base and derived class objects.

                Constructors in base and derived classes, more on scope resolution

                operator. Virtual functions, Overriding functions, pure virtual

                (abstract) functions.

Class 5- Streams, Files, Input/Output and Dynamic Memory Allocation

                Streams and Input/Output, file operations, formatting. 

                Talk about security and protection model, dangers of pointers.

                Review procedure and variable scope and lifetime,

                review static variables and methods.

                Dynamic memory allocation, new and delete operator, linked lists.

                Discuss big homework project.

Class 6- Advanced Topics, Requests and Wrap-up

                Review of base and derived classes, virtual functions and

                object casting.  Brief talk about friend classes and functions.

                Allocate time to review a reasonable size project.

                If time permits, Event Handling and Exception Processing

                including try and catches,

                Answer any outstanding questions on concepts covered in the course

                 but not limited to:

                Variable Declarations:

                                Data Typing

                C++ Program Statements:

                                Assignment Statements

                                Arithmetic operators

                                String manipulation

                                Basic input and output

                Control Flow:

                                Decision and Looping Concepts

                                Logical Operators

                Modular programming:

                                Procedures and Methods

                                Passing arguments to functions

                OOP Concepts:

                                Referring to objects using references

                                Inheritance and extending existing classes

                                C++ Packages 

Handouts: Copies of the course outline slides will be provided along with relevant handouts when appropriate.

For more info: email to jeffg@qualware.com or call 781-229-1530 x2.

Lecturer’s biography: Jeffrey M. Goldberg, of Qualware Instructional Services is a long time innovative user of UNIX and Internet services. Mr. Goldberg currently develops and delivers customized corporate training classes along with very flexible scheduling, to avoid project disruption, in the fields of IT operations, operating system and computer languages. Specialties include UNIX Fundamentals, Perl and Shell Scripting, Linux/UNIX System Administration and TCP/IP Networking, Web Technologies such as Visual Basic, Java Script, PHP Apache, C++, Java and SQL Database Access, Computer and Network Security.

Decision (Run/Cancel) Date for  this Courses is Friday April 22, 2005

Course Fee Schedule:

REGISTRATION RECEIVED BY
April 21, 2005

REGISTRATION. RECEIVED AFTER
April 21, 2005

IEEE MEMBERS $425

IEEE MEMBERS $450

NON-MEMBERS $450

NON-MEMBERS $475

On-line Registration and Payment

Register and Pay On-line here.

On-line registrations for this course have been closed. This course is running. If you have questions about this course or future courses, please call the office at 781-229-1530 ext 2.