Resources
Recommended Textbook Exercises
- We recommend this set of exercises from the Cay Horstmann, “Brief C++, Late Objects”, 3rd Ed. (with some corresponding exercises from the 2nd ed.)
Programming Idioms
- Idioms for typical programming patterns and structures in C++.
Editors and IDEs
We strongly advise you against using gedit, notepad, or other primitive editors. Switch to a professional-level environment or editor, such as the following:
- Visual Studio Code is a free, open source IDE with good developer tooling and a wide array of plugins. This is the recommended editor for CS 102, 103, and 104.
- Microsoft Visual Studio is a commercial development environment that is generally not free, but for which you can get a free license as a USC student.
- JetBrains CLion requires a CMake project to offer IntelliSense, however it is an incredibly powerful IDE that can be obtained for free as a student.
- Eclipse is a free IDE for C/C++, Java, and PHP. s102-finals/index.html)
C/C++ Related Links
- C++ Core Guidelines. Link
- C++ FAQ. Link
- Google C++ Style Guide. Link
- C++ Style Guide Links. Link
- SEI CERT C++ Secure Coding Guideline. Link
- Issues with floating point and floating-point comparison. Link
- Design Patterns and Refactoring Strategies. Link
Relevant CS 104 Wiki Pages
- GCC by Cameron Durham
- GDB by Spencer Davis
- Linux by Jamie Flores
- The preprocessor by Anthony Wiencko
- Valgrind by Cameron Durham
- Code style by Noah Kim