
Fichas de repaso NSI Terminale: estructuras de datos, bases de datos, algoritmos, POO, redes. Ejemplos Python. Preparación Bac 2026.
NSI (Numérique et Sciences Informatiques) es la especialidad de informática del Bac francés. El examen de Terminale incluye una prueba escrita (3h30, coeficiente 16) y una prueba práctica (1h) de programación Python. El programa abarca cinco áreas: estructuras de datos, bases de datos, arquitectura y redes, programación, y algorítmica.
Listas enlazadas: cada nodo almacena un valor y un puntero al siguiente. Inserción en cabeza en O(1), pero acceso por índice en O(n).
Pilas (LIFO): último en entrar, primero en salir. Operaciones: apilar (push), desapilar (pop), cima (top), está_vacía. Usadas para la recursividad y la función deshacer.
Colas (FIFO): primero en entrar, primero en salir. Operaciones: encolar, desencolar, está_vacía. Usadas para BFS y planificación de procesos.
Árboles binarios: estructuras jerárquicas donde cada nodo tiene como máximo dos hijos. Tres recorridos recursivos: prefijo (Raíz-Izquierda-Derecha), infijo (Izquierda-Raíz-Derecha), y sufijo (Izquierda-Derecha-Raíz). El recorrido infijo de un ABB devuelve los valores en orden.
Árboles binarios de búsqueda (ABB): para cada nodo, los valores del subárbol izquierdo son menores y los del derecho mayores. Búsqueda en O(log n) si está equilibrado.
Grafos: conjuntos de vértices y aristas (dirigidos o no, ponderados o no). Se representan con matrices de adyacencia o listas de adyacencia.
El modelo relacional (Codd, 1970) organiza los datos en tablas. Cada tabla tiene un esquema con atributos tipados. La clave primaria identifica unívocamente cada registro; la clave foránea referencia la clave primaria de otra tabla.
SQL: SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY para consultas. INSERT INTO, UPDATE, DELETE para manipulación. La normalización (1NF, 2NF, 3NF) reduce la redundancia.
Arquitectura von Neumann: CPU (UAL + unidad de control + registros), RAM y bus. Jerarquía de memoria: registros > caché > RAM > almacenamiento secundario.
El sistema operativo gestiona procesos. Un proceso tiene estados (listo, en ejecución, en espera, terminado). Algoritmos de planificación: Round Robin, prioridad, FCFS.
Modelo TCP/IP (4 capas): acceso a red, Internet (IP), transporte (TCP/UDP), aplicación (HTTP/HTTPS, DNS). El enrutamiento usa protocolos como RIP y OSPF (Dijkstra).
Recursividad: una función que se llama a sí misma. Requiere un caso base y llamadas recursivas que converjan hacia él. Límite en Python: 1000 llamadas. La memorización optimiza subproblemas repetidos.
Programación orientada a objetos (POO): organiza el código en clases con atributos (datos) y métodos (comportamiento). Conceptos clave: encapsulación (agrupar datos y métodos), herencia (una clase hija hereda de una clase madre y puede especializarla).
Modularidad: dividir el programa en módulos independientes y reutilizables (archivos .py).
Algoritmos de ordenación:
Búsqueda dicotómica: funciona sobre un arreglo ordenado. Compara con el elemento central y reduce el espacio de búsqueda a la mitad. O(log n).
Recorridos de grafos:
Algoritmo de Dijkstra: encuentra el camino más corto desde un vértice fuente en un grafo ponderado con pesos positivos. Usa una cola de prioridad, inicializa distancias a infinito (fuente a 0), y relaja las aristas iterativamente.
Complejidad (notación O): O(1) constante, O(log n) logarítmica, O(n) lineal, O(n log n) cuasi-lineal, O(n²) cuadrática.