Ray Lischner has a bachelor's degree in computer science from Caltech and a master's in computer science from Oregon State University. He worked as a software developer for a dozen years, at big and small companies across the US, using PL/I, C, C++, Delphi, Smalltalk, and various assembly languages on both large and small systems. He has been self-employed as a consultant, trainer, and author for the last ten years. Ray taught computer science at Oregon State University for several years and specialized in teaching introductory computer programming. He taught courses in C and C++ and software engineering.
Part I: The Basics.-1. Honing your tools.- 2. Reading C++ Code.- 3. Integer Expressions.- 4. Strings.- 5. Simple Input.- 6. Error Messages.- 7. For Loops.- 8. Formatted Output.- 9. Arrays and Vectors.- 10. Algorithms and Ranges.- 11. Increment and Decrement.- 12. Conditions and Logic.- 13. Compound Statements.- 14. Introduction to File I/O.- 15. The Map Data Structure.- 16. Type Synonyms.- 17. Characters.- 18. Character Categories.- 19. Case-Folding.- 20. Writing Functions.- 21. Function Arguments.- 22. Using Ranges.- 23. Using Iterators.- 24. Unnamed Functioins.- 25. Overloading Function Names.- 26. Big and Little Numbers.- 27. Very Big and Very Little Numbers.- 28. Documentation.- 29. Project 1: Body-Mass IndexPart II: Custom Types.- 30. Custom Types.- 31. Overloading Operators.- 32. Custom I/O Operators.- 33. Assignmentand Initialization.- 34. Writing Classes.- 35. More About Member Functions.- 36. Access Levels.- 37. Understanding Object-Oriented Programming.- 38. Inheritance.- 39. Virtual Functions.- 40. Classes and Types.- 41. Declarations and Definitions.- 42. Modules.- 43. Old-Fashioned "Modules".- 44. Function Objects.- 45. Useful Algorithms.- 46. More About Iterators.- 47. Ranges, Views and Adaptors.- 48. Exceptions.- 49. More Operators.- 50. Project 2: Fixed-Point Numbers.- Part III: Generic Programming.- 51. Function Templates.- 52. Class Templates.- 53. Template Specialization.- 54. Partial Template Specialization.- 55. Template Constraints.- 56. Names and Namespaces.- 57. Containers.- 58. Locales and Facets.- 59. International Characters.- 60. TextI/O.- 61. Project3: Currency Type.- Part IV: Real Programming.- 62. Pointers.- 63. Regular Expressions.- 64. Moving Data with Rvalue References.- 65. Smart Pointers.- 66. Files and File Names.- 67. Working with Bits.- 68. Enumerations.- 69. Multiple Inheritance.- 70. Concepts, Traits and Policies.- 71. Names, Namespaces, and Templates.- 72. Overloaded Functions and Operators.- 73. Programming at Compile Time.- 74. Project 4: Calculator.