- Estructuras de datos, que cubren colas, pilas, montones, árboles, especialmente árboles de búsqueda binarios.
- Diseño y análisis de algoritmos. Los cursos de introducción de algoritmos abarcarán la clasificación, los algoritmos de árboles y gráficos, y el análisis Big O.
- Programación Orientada a Objetos, que cubre principalmente clases, herencia, patrones de diseño, arquitectura de programas.
- Ingeniería de software, que enseña procesos de desarrollo (cascada y ágil), ciclos de vida del software (planificación, diseño, desarrollo, prueba, implementación, refactorización, mantenimiento), etc.
- Computación teórica / autómatas, donde aprenderá máquinas de Turing.
- Arquitectura de la computadora: el hardware dentro de una computadora y cómo funciona.
- DBMS – gestión de bases de datos, que significa SQL.
- Lenguajes de programación, o paradigmas de programación: una introducción a una variedad de lenguajes diferentes y sus diferencias.
- Compiladores: aprenda cómo funcionan los compiladores y cómo crear su propio compilador.
- Seguridad: cifrado, seguridad de datos, detección y prevención de amenazas.
- Computación paralela: cómo escalar el rendimiento con subprocesos múltiples.
- Redes y comunicación de datos.
- Visión por computador; la interacción persona-ordenador; Diseño de GUI; desarrollo de juegos; análisis de big data; minería de datos; etc.
Esas son las principales áreas temáticas, aproximadamente en orden de importancia. Los primeros 5 o 6 son obligatorios para una licenciatura. Los cursos de posgrado suelen ser más especializados.