Programming Engineering Roadmap

Detailed content of the core chapters of the Programming Engineering course.

Back to Roadmap
Chapter Main Topic Detailed Content Objective
1 POINTERS
  • 1.1. Introduction to pointer variables
  • 1.2. Concept of pointers and addresses
  • 1.3. Declaring and initializing pointer variables
  • 1.4. Pointer operators
  • 1.5. Operations on pointers
  • 1.6. Pointers and arrays
  • 1.7. Functions with pointer parameters
  • 1.8. Dynamic memory allocation
  • Understand and use pointers proficiently.
  • Complete 1.9. Exercises.
2 STRING IN STL
  • 2.1. Introduction to the STL library
  • 2.2. The string class
  • 2.3. Some common algorithms
  • Use the string class effectively.
  • Complete 2.4. Exercises.
3 VECTOR IN STL
  • 3.1. The Vector class
  • 3.2. Some common algorithms
  • Use the vector class to manage dynamic arrays.
  • Complete 3.3. Exercises.
4 STRUCTURES
  • 4.1. Concept and definition of structure types
  • 4.2. Declaration and member access
  • 4.3. Passing structures to functions
  • 4.4. Structure pointers
  • 4.5. Some operations on structures
  • Organize complex data using structures.
  • Complete 4.6. Exercises.
5 FILES
  • 5.1. Concept of files
  • 5.2. Declaring and opening files
  • 5.3. Reading/writing text files
  • 5.4. Reading/writing binary files
  • Work with files to store and read data.
  • Complete 5.5. Exercises.
6 RECURSION
  • 6.1. Introduction and recursive algorithms
  • 6.2. Types of recursion
  • 6.3. Advantages and disadvantages of recursion
  • 6.4. Illustrative examples
  • Understand and apply recursion to solve problems.
  • Complete 6.5. Exercises.

Core Mindsets for C++ Programmers

1. Low-Level & Systems Thinking

Always think about how your program interacts with memory. Understanding addresses, dynamic allocation, and performance is crucial when working with C++.

2. Abstraction is Key

Leverage the power of the STL, `structs`, and `classes` to build complex components from simple, reusable, and manageable blocks.

3. Intentional Memory Management

The power of pointers and dynamic allocation comes with great responsibility. Be careful and intentional in allocating and deallocating memory to avoid leaks.

4. Clarity Before Optimization

Prioritize writing correct, readable, and maintainable code. Only optimize performance after identifying bottlenecks through measurement.