I. WEEK 1. AT A GLANCE. Day 1. Getting Started.
What Is GNU? Getting GNU Tools. A Brief History of C++. Programs. Solving Problems. How C++ Evolved. Should I Learn C First? C++ and Java. The ANSI Standard. Preparing to Program. The GNU/Linux Development Environment. Compiling the Source Code. Creating an Executable File with the Linker. The Development Cycle. hello.cxx-Your First C++ Program. Using the g++ Compiler. Compile Errors. Summary. Q&A. Workshop.Day 2. The Parts of a C++ Program.
A Simple Program. A Brief Look at cout. Comments. Functions. More About the GNU Compiler. Summary. Q&A. Workshop.Day 3. Variables and Constants.
What Is a Variable? Defining a Variable. Creating More Than One Variable at a Time. Assigning Values to Your Variables. Using typedef. When to Use short and When to Use long. Using Character Variables. Using Constants. Using Enumerated Constants. Summary. Q&A.Day 4. Expressions and Statements.
Statements. Expressions. Operators. Combining the Assignment and Mathematical Operators. Increment and Decrement. Operator Precedence. Nesting Parentheses. The Nature of Truth. The if Statement. Logical Operators. Short Circuit Evaluation. Relational Precedence. More About Truth and Falsehood. Conditional (Ternary) Operator. Summary. Q&A. Workshop.Day 5. Functions.
What Is a Function? Return Values, Parameters, and Arguments. Declaring and Defining Functions. Execution of Functions. Local Variables. Global Variables. Global Variables: A Word of Caution. More on Local Variables. Function Statements. More About Function Arguments. Parameters Are Local Variables. More About Return Values. Default Parameters. Overloading Functions. Special Topics About Functions. How Functions Work-A Look Under the Hood. Multiple Source File Programs (Programmer-Created Function Libraries). Standard C++ Library Functions (libg++). Summary. Q&A. Workshop.Day 6. Basic Classes.
Creating New Types. Introducing Classes and Members. Accessing Class Members. Defining Scope as Private Versus Public. Implementing Class Methods. Understanding Constructors and Destructors. Using const Member Functions. Distinguishing Interface from Implementation. Where to Put Class Declarations and Method Definitions. Applying Inline Implementation. Using Classes with Other Classes as Member Data. Using Structures. Summary. Q&A. WorkshopDay 7. More Program Flow.
Looping. while Loops. do while Loops. for Loops. Summary of Loops. switch Statements. Summary. Q&A. Workshop.
I. WEEK 1. IN REVIEW.
II. WEEK 2. AT A GLANCE. Day 8. Pointers.
What Is a Pointer? Why Would You Use Pointers? The Stack and the Free Store. Memory Leaks. Objects on the Free Store. Special Pointers and More issues. Pointer Arithmetic. Summary. Q&A. Workshop.Day 9. References.
What Is a Reference? Using the Address of Operator & on References. What Can Be Referenced? Using Null Pointers and Null References. Passing Function Arguments by Reference. Understanding Function Headers and Prototypes. Returning Multiple Values Using Pointers. Passing by Reference for Efficiency. Understanding When to Use References and When to Use Pointers. Mixing References and Pointers. Do Not Return a Reference to an Object That Is Not in Scope! Returning a Reference to an Object on the Heap. Pointer, Pointer, Who Has the Pointer? Summary. Q&A. Workshop.Day 10. Advanced Functions.
Overloading Member Functions. Using Default Values. Choosing Between Default Values and Overloaded Functions. Understanding Default Constructors. Overloading Constructors. Initializing Objects. Using the Copy Constructor. Overloading Operators. Understanding Conversion Operators. Summary. Q&A. Workshop.Day 11. Inheritance.
What Is Inheritance? Private Versus Protected. Constructors and Destructors. Overriding Functions. Virtual Methods. Summary. Q&A. Workshop.Day 12. Arrays, C Strings, and Linked Lists.
What Is an Array? Using the Free Store to Solve Memory Issues. What are char Arrays? String Classes. Linked Lists and Other Structures. Examining A Linked List Case Study. What Have You Learned? Using Array Classes Instead of Built-in Arrays. Summary. Q&A. Workshop.Day 13. Polymorphism.
Problems with Single Inheritance. Multiple Inheritance. Mixins and Capabilities Classes. Abstract Data Types. The Observer Pattern. Summary. Q&A. Workshop.Day 14. Special Classes and Functions.
Static Member Data. Static Member Functions. Pointers to Functions. Pointers to Member Functions. Summary. Q&A. Workshop.
II. WEEK 2. IN REVIEW.
III. WEEK 3. AT A GLANCE. Day 15. Advanced Inheritance.
Containment. Implementation in Terms of Inheritance/Containment Versus Delegation. Private Inheritance. Friend Classes. Friend Functions. Friend Functions and Operator Overloading. Overloading the Insertion Operator. Summary. Q&A. Workshop.Day 16. Streams.
Overview of Streams. Streams and Buffers. Standard I/O Objects. Redirection. Input Using cin. Other Member Functions of cin. Output with cout. Related Functions. Manipulators, Flags, and Formatting Instructions. Streams Versus the printf() Function. File Input and Output. Binary Versus Text Files. Command-Line Processing. Summary. Q&A. Workshop.Day 17. Namespaces.
Getting Started with Namespaces. Resolving Functions and Classes by Name. Creating a Namespace. Using a Namespace. Introducing the using Keyword. Using Namespace Alias. Using the Unnamed Namespace. Using the Standard Namespace std. Summary. Q&A. Workshop.Day 18. Object-Oriented Analysis and Design.
Is C++ Object-Oriented? What Models Are. Software Design: The Modeling Language. Software Design: The Process. Conceptualization: The Vision. Requirements Analysis. Design. Do Not Rush to Code. Summary. Q&A. Workshop.Day 19. Templates.
What Are Templates? Parameterized Types. Template Definition. Template Functions. Templates and Friends. Using Template Items. The Standard Template Library. Stacks. Understanding Queues. Algorithm Classes. Summary. Q&A. Workshop.Day 20. Exceptions and Error Handling.
Bugs, Errors, Mistakes, and Code Rot. Exceptions. Using try and catch Blocks. Accessing Data in Exceptions by Naming Exception Objects. Using Exceptions and Templates. Triggering Exceptions Without Errors. Dealing with Bugs and Debugging. Summary. Q&A. Workshop.Day 21. What's Next.
The Preprocessor and the Compiler. The #define Preprocessor Directive. Inclusion and Inclusion Guards. Macro Functions. Inline Functions. String Manipulation. Predefined Macros. assert(). Bit Twiddling. Coding Style. Next Steps. Summary. Q&A. Workshop.
III WEEK 3. IN REVIEW.
IV. WEEK 4. AT A GLANCE. Day 22. The Linux Programming Environment.
Philosophy and History. POSIX. The X Window System. Using the Linux Editors. Languages. Building. Debugging. Version Control. Documentation. Summary. Q&A. Workshop.Day 23. Shell Programming.
What Is a Shell? Shells Available with Linux. Shell Operation and Syntax Basics. Shell Features. I/O Redirection. Variables. Backgrounding, Suspension, and Job Control. Command Completion. Command Substitution. Command History and Editing. Aliases. Shell Startup File(s). Summary. Q&A. Workshop.Day 24. System Programming.
Processes. Threads. Summary. Q&A. Workshop.Day 25. Interprocess Communication.
Background. Pipes. Named Pipes (FIFOs). System V IPC. Summary. Q&A. Workshop.Day 26. GUI Programming.
The Linux Desktop. What Is the GNOME? 9. What Is the KDE? 9. Programming in C++ on the Linux Desktop. Fundamentals of GNOME Programming. Fundamentals of KDE Programming. Summary. Q&A. Workshop.
IV. WEEK 4. IN REVIEW. Appendix A: Operator Precedence. Appendix B: C++ Keywords. Appendix C: Binary, Octal, and Hexadecimal Numbers and an ASCII Chart.
Beyond Base 10. Around the Bases. Binary. Octal. Hexadecimal. ASCII.Appendix D: Answers to Exercises and Quizzes.
Day 1. Day 2. Day 3. Day 4. Day 5. Day 6. Day 7. Day 8. Day 9. Day 10. Day 11. Day 12. Day 13. Day 14. Day 15. Day 16. Day 17. Day 18. Day 19. Day 20. Day 21. Day 22. Day 23. Day 24. Day 25. Day 26.