AppSec/Rust

Examen final: Lo que debes saber

Temas

  1. Lecturas de curso
    1. Software Memory Safety by NSA
    2. Why Rust? by Jim Blandy
  2. Conceptos generales de programación con Rust
    1. Variables y mutabilidad
    2. Tipos de datos primitivos y sus operadores
    3. Funciones
    4. Ciclos y condiciones
    5. Tuplas
    6. Enumeraciones
    7. Estructuras
    8. Rasgos (traits) y sus implementaciones
    9. Funciones anónimas y cerraduras (closures)
  3. Manejo general de errores en Rust
    1. Concepto de panic
    2. Enumeraciones Option y Result
    3. Uso de enunciado match para procesar errores
    4. Métodos expect, unwrap, unwrap_or y unwrap_or_else
  4. Seguridad de memoria en Rust
    1. Concepto de propiedad (ownership) y movimientos
    2. Referencias y prestamos (borrowing)
    3. Tipos String, &str y Vec
    4. Colecciones y los métodos iter, iter_mut e into_iter
    5. Rebanadas (slices)
    6. Rasgos Copy y Clone
    7. Errores de C++ que Rust evita
  5. Aritmética segura en Rust
    1. Números enteros
      1. Concepto de desbordamiento aritmético entero
      2. Rangos de valores enteros con y sin signo
      3. Aritmética envolvente (wraparound) y saturada
      4. Métodos checked_*, overflowing_*, saturating_* y wrapping_*
    2. Números de punto flotantes
      1. Aproximación de igualdad
      2. Valores especiales de punto flotante IEEE 754 (NaN, +Inf, -Inf, 0.0 y -0.0) y las operaciones que los producen

Artículos permitidos durante el examen

NOTA: Una vez iniciado el examen, no se permite compartir ningún artículo con alguien más.

  1. Pluma, lápiz, borrador, sacapuntas.

  2. Calculador científica sencilla. No está permitido usar teléfono celular, calculadora programable, tableta, computadora o cualquier otro dispositivo electrónico.

  3. Acordeón personal de estudio con las siguientes características:


    1. Debe ser uno de los siguientes:

      • Tarjeta o ficha de trabajo de \(5 \times 8\) pulgadas (\(12.7 \times 20.32\) cm).

      • Media hoja tamaño carta (\(13.97 \times 21.59\) cm).

    2. Debe estar escritas a mano. No se permiten tarjetas/hojas impresas elaboradas en computadora.

    3. Está permitido escribir en ambos lados de la tarjeta/hoja.

    4. Debe incluir matrícula y nombre completo en la esquina superior izquierda de ambos lados de la tarjeta/hoja.

    5. No hay restricciones sobre el contenido específico escrito en la tarjeta/hoja.