Para ser docente en mi opinion no necesitas saber mucho. Animo!
Ese es el trayecto formativo; hasta el punto 8.3 llegue sin dificultades.
1. Introducción a la programación de computadores.
1.1. Lenguajes de alto nivel y de bajo nivel
1.2. Compiladores, intérpretes
2. Lenguajes de programación, generalidades.
3. Conceptos generales de los lenguajes de programación
3.1. Algoritmos (relacionar con funciones)
3.2. Uso de pseudocódigo
3.3. Identificadores, constantes y variables.
3.4. Tipos de datos simples. Enteros, reales, booleanos y caracteres.
3.5. Asignación y expresiones
3.6. Estructuras de control
3.6.1. Secuencia
3.6.2. Selección
3.6.3. Iteración
4. Presentación del lenguaje C++
4.1. Sintaxis
4.2. Programa
4.3. Escritura de programas usando los conceptos introducidos en el punto 3
4.4. Entrada y salida.
5. Procedimientos y Funciones
5.1. Definición e invocación
5.2. Pasaje de parámetros
5.3. Alcance de identificadores. Variables locales y globales
6. Tipos de datos definidos por el programador.
6.1. Tipos enumerados
6.2. Arreglos
7. Modularización
7.1. Concepto y construcción de módulos
7.2. Compilación separada
8. Tipos de datos estructurados
8.1. Producto cartesiano
8.2. Unión discriminada
8.3. Arreglo con tope
9. Punteros
9.1. Definición
9.2. Uso de punteros
9.3. Memoria dinámica
10. Definición de tipos de datos dinámicos
10.1. Arreglos dinámicos
10.2. Tipos inductivos
10.2.1. Listas
10.2.2. Árboles
10.2.3. Árboles binarios 12
10.2.4. Árboles binarios de búsqueda
11. Funciones y procedimientos recursivos
11.1. Sobre enteros
11.2. Sobre Listas
11.3. Sobre Árboles binarios
12. Archivos
12.1. Creación de archivos
12.2. Acceso a archivos R/W
12.3. Almacenamiento de datos de programa en archivos