1 Content

1.1 Topic outline

  1. Introduction and syllabus
  2. Computing, Compilers, Algorthms
  3. Algorithms, pseudo-code, C++ basics
  4. Variables and numeric types
  5. Non-numeric types, arithmetic operators
  6. Operators, integer division, modular arithmetic, casting
  7. Conditional execution (decision branching)
  8. Loops
    1. while loop
    2. do while loop (and some debugging)
    3. for loop
  9. Switch case
  10. Conditional operator, escape characters
  11. Random number generation
  12. Functions
    1. Basics
    2. Pass by reference or value, const
    3. Commenting functions
    4. Function oveloading, static variables
    5. Templating functions
  13. Multiple files
  14. Structs
  15. Arrays
  16. Character arrays and strings
    1. Basics
    2. Functions
    3. Character manipulation, strings
  17. File IO
  18. Object oriented programming
    1. Basics
    2. Set, Get, Const, and friend functions
    3. Constructors
  19. Operator overloading
  20. Class templates
  21. Static members and namespaces
  22. Output formatting and enums
  23. Pointers
  24. Version control
  25. Mystery topic

1.2 Linux bash tutorial

You will be working with the Linux computers in the lab, and need to be comfortable with the command line. I highly suggest completing this tutorial:

1.3 C++ resources

Most importantly, the full resources from a previous year’s course are here:

1.3.1 Tutorials

1.3.2 C++ textbooks

For a more extended discussion of many of these topics, textbooks can be helpful. Free

These books are listed in order of quality:
1. http://python.cs.southern.edu/cppbook/progcpp.pdf
2. http://www.greenteapress.com/thinkcpp/thinkCScpp.pdf
3. https://rooksguide.files.wordpress.com/2013/12/rooks-guide-isbn-version.pdf
4. https://en.wikibooks.org/wiki/C++_Programming Not free

These two are quite good, and either is recommended, but not required:
* Absolute C++, Savitch, 4th or later edition
* https://www.pearson.com/us/higher-education/program/Savitch-Absolute-C-plus-My-Programming-Lab-with-Pearson-e-Text-Access-Card-Package-6th-Edition/PGM199128.html
* Problem solving with C++, Savitch
* https://www.pearson.com/us/higher-education/program/Savitch-Problem-Solving-with-C-Plus-My-Programming-Lab-with-Pearson-e-Text-Access-Card-Package-10th-Edition/PGM1743309.html