EGEL Plus Ciencias Computacionales cheat sheet
EGEL Plus Ciencias Computacionales · Keep the key ideas within reach.
Desarrollo de software
Complejidad temporal común: acceso a arreglo O(1), búsqueda binaria O(log n), ordenamiento por comparación O(n log n), recorrido de matriz n×m O(n·m).
Pila (LIFO) usa push/pop; cola (FIFO) usa enqueue/dequeue; una cola de prioridad se implementa con montículo binario en O(log n) por inserción y extracción.
Recursión requiere caso base y caso recursivo; sin caso base se produce desbordamiento de pila (stack overflow).
Paso de parámetros por valor copia el dato; por referencia transmite la dirección, por lo que las mutaciones son visibles al llamador.
Principios SOLID: responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces, inversión de dependencias.
En POO, el polimorfismo permite invocar el mismo método con implementaciones distintas según el tipo real del objeto (despacho dinámico).
Una función hash bien diseñada distribuye claves uniformemente; las colisiones se resuelven por encadenamiento o direccionamiento abierto.
Git: commit registra cambios localmente, push publica al remoto, merge integra ramas, rebase reaplica commits sobre otra base.
Bases de datos
Modelo relacional: una tabla representa una relación; la clave primaria identifica de forma única cada fila y no admite NULL.
Una clave foránea referencia la clave primaria de otra tabla y garantiza integridad referencial; puede ser NULL si la relación es opcional.
Formas normales: 1FN elimina atributos multivaluados; 2FN elimina dependencias parciales; 3FN elimina dependencias transitivas.
ACID: atomicidad (todo o nada), consistencia, aislamiento y durabilidad de las transacciones confirmadas.
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY: HAVING filtra grupos agregados; WHERE filtra filas antes de agrupar.
JOIN interno devuelve solo filas coincidentes; LEFT JOIN conserva todas las filas de la tabla izquierda y rellena con NULL.
Índice B-tree acelera búsquedas por igualdad y rango a costo O(log n), pero añade sobrecarga en inserciones y actualizaciones.
En un diagrama entidad-relación, una relación 1:N se implementa con la clave foránea en el lado N; N:M requiere tabla intermedia.
Redes y telecomunicaciones
Modelo OSI (7 capas): física, enlace de datos, red, transporte, sesión, presentación, aplicación.
TCP es orientado a conexión, confiable y ordenado (handshake de 3 vías); UDP no establece conexión ni garantiza entrega.
Direcciones IPv4 privadas: 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16; no son enrutables en Internet.
Máscara /24 equivale a 255.255.255.0 y deja 8 bits de host (254 hosts utilizables); /25 deja 126 hosts utilizables.
DNS traduce nombres a direcciones IP; DHCP asigna direcciones automáticamente; ARP resuelve IP a MAC en la red local.
Puertos bien conocidos: 20/21 FTP, 22 SSH, 25 SMTP, 53 DNS, 80 HTTP, 443 HTTPS.
Conmutación de circuitos reserva un canal dedicado; conmutación de paquetes divide los datos en paquetes que comparten enlaces.
El switch opera en capa 2 usando MAC; el router opera en capa 3 usando direcciones IP.
Ingeniería de software y gestión de proyectos
Cascada es secuencial y con requisitos fijos; los modelos iterativos e incrementales entregan versiones funcionales en ciclos cortos.
Scrum: sprints de duración fija, roles Product Owner, Scrum Master y equipo; artefactos backlog, sprint backlog e incremento.
Ruta crítica es la secuencia de tareas dependientes más larga del proyecto; determina la duración mínima total.
Diagrama de Gantt muestra cronograma y dependencias; PERT estima tiempos con optimista, más probable y pesimista: (O + 4M + P)/6.
Una historia de usuario se redacta como rol, necesidad y beneficio, e incluye criterios de aceptación verificables.
Estimación por puntos de función mide tamaño funcional independiente de la tecnología; se basa en entradas, salidas, consultas y archivos.
Prueba unitaria verifica una unidad aislada; de integración verifica interfaces; de sistema valida el conjunto; de aceptación valida con el usuario.
Análisis de riesgos: probabilidad por impacto prioriza riesgos; mitigar reduce probabilidad o impacto, aceptar no actúa de inmediato.
Arquitectura de computadoras y sistemas operativos
Jerarquía de memoria por velocidad y costo: registros, caché L1/L2/L3, RAM, almacenamiento secundario.
Ley de Amdahl: la mejora de velocidad está limitada por la fracción no paralelizable del programa.
Ciclo de instrucción: búsqueda (fetch), decodificación, ejecución y escritura de resultados (write-back).
Planificación de CPU: FCFS no apropiativo; SJF minimiza tiempo medio de espera; Round Robin asigna quantum fijo; prioridad puede causar inanición.
Interbloqueo (deadlock) requiere exclusión mutua, retención y espera, no apropiación y espera circular simultáneamente.
Memoria virtual usa paginación; la traducción de dirección virtual a física se apoya en la tabla de páginas y la TLB.
Un proceso tiene espacio de memoria propio; los hilos de un proceso comparten memoria y recursos, con pila independiente.
RAID 1 replica (espejo) y tolera fallo de un disco; RAID 5 distribuye paridad y tolera el fallo de un disco.
Seguridad informática y auditoría de sistemas
Triada CIA: confidencialidad, integridad y disponibilidad; autenticación verifica identidad, autorización concede permisos.
Cifrado simétrico usa una sola clave (AES); asimétrico usa par pública/privada (RSA); el hash es irreversible y detecta alteraciones.
Firma digital cifra el hash con la clave privada del emisor; el receptor verifica con la clave pública.
HTTPS combina TLS para cifrado y certificados de autoridad certificadora para autenticar el servidor.
Inyección SQL se mitiga con consultas parametrizadas y validación de entrada; XSS con escape de salida y políticas de contenido.
Principio de menor privilegio: cada usuario o proceso recibe solo los permisos mínimos necesarios para su función.
Auditoría de sistemas: registros (logs) inmutables, separación de funciones y trazas que permiten reconstruir eventos.
Tipos de respaldo: completo copia todo; diferencial copia cambios desde el último completo; incremental desde el último respaldo de cualquier tipo.