AulaML Python · C++
Ponte a prueba

Practica lo que aprendiste.

Todos los ejercicios y evaluaciones de ambos cursos en un solo lugar. Cada tarjeta te lleva a la lección donde puedes responder, comprobar la solución y guardar tu avance.

388actividades
194evaluaciones
129ejercicios
65completar código
388 actividades
Ejercicio C++

Tu presentación en tres líneas

Crea presentacion.cpp que imprima tu nombre, tu carrera y un objetivo, cada uno en su propia línea. Compílalo con g++ -std=c++20 -Wall -Wextra -Wpedantic y ejecútalo. Des…

Fundamentos de C++ Abrir
Ejercicio C++

Detective del estándar

Escribe estandar.cpp que imprima el valor de cplusplus. Compílalo dos veces, con -std=c++17 y con -std=c++20, y anota los dos números que aparecen. Después cambia return …

Fundamentos de C++ Abrir
Completar C++

Completa el esqueleto

include int ( ) { std:: << "Hola desde C++\n"; return ; }

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · ¿Qué es C++? Compilador y primer programa

¿Qué produce g++ hola.cpp si no indicas la opción -o?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · ¿Qué es C++? Compilador y primer programa

¿En qué fase aparece un error como undefined reference to main?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · ¿Qué es C++? Compilador y primer programa

¿Qué valor imprime cplusplus al compilar con -std=c++20?

Fundamentos de C++ Abrir
Ejercicio C++

Ficha por teclado

Escribe un programa que pida nombre completo, carrera y ciclo, y muestre una ficha de tres líneas. Usa std::getline para los textos y std::cin >> para el ciclo. Prueba co…

Fundamentos de C++ Abrir
Ejercicio C++

Conversor de temperatura

Pide una temperatura en grados Celsius como double y muestra su equivalente en Fahrenheit con un decimal. La fórmula es F = C 9 / 5 + 32. Comprueba con 0 → 32.0, 100 → 21…

Fundamentos de C++ Abrir
Completar C++

Completa el programa

include include <string> int main() { std::string lenguaje = "C++"; std:: << "Aprendo " << lenguaje << '\n'; return ; }

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Estructura de un programa, cout y tipos

¿Cuántos bytes ocupa un char según el estándar de C++?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Estructura de un programa, cout y tipos

Si el usuario escribe Ada Lovelace y lees con std::cin >> nombre, ¿qué queda en nombre?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Estructura de un programa, cout y tipos

¿Qué imprime std::cout << std::fixed << std::setprecision(3) << 2.5;?

Fundamentos de C++ Abrir
Ejercicio C++

Presupuesto de cómputo

Una hora de GPU cuesta 2.40 USD y tienes 7 horas contratadas con un descuento del 15 %. Calcula el bruto, el ahorro y el total con variables constexpr para los tres datos…

Fundamentos de C++ Abrir
Ejercicio C++

Promedio sin perder decimales

Guarda tres notas enteras (14, 17 y 11), calcula su suma y su promedio, y muestra ambos con dos decimales. El promedio debe ser 14.00 y no 14. Cambia una nota a 16 y comp…

Fundamentos de C++ Abrir
Completar C++

Área del círculo

include <iostream> int main() { constexpr double pi = ; double radio = 2.0; auto area = pi radio ; std::cout << area << '\n'; return ; }

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Variables, const, auto y operadores

¿Qué tipo y qué valor tiene auto x = 7 / 2;?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Variables, const, auto y operadores

¿Qué exige constexpr que no exige const?

Fundamentos de C++ Abrir
Evaluación C++

Evaluación · Variables, const, auto y operadores

¿Por qué int nota{7.5}; no compila?

Fundamentos de C++ Abrir
Ejercicio C++

Clasificador de temperatura

Escribe un programa que clasifique una temperatura corporal: >= 39.0 es fiebre alta, >= 37.5 es fiebre, >= 36.0 es normal y por debajo es hipotermia. Prueba con 38.5, 36.…

Estructuras de control Abrir
Ejercicio C++

Año bisiesto

Un año es bisiesto si es divisible entre 4 y no entre 100, o si es divisible entre 400. Escribe la condición en una sola variable bool y muestra el resultado con un terna…

Estructuras de control Abrir
Completar C++

Completa la decisión

include <iostream> int main() { int nota = 16; if (nota 14) { std::cout << "Aprobado\n"; } { std::cout << "Desaprobado\n"; } return 0; }

Estructuras de control Abrir
Evaluación C++

Evaluación · Condicionales y switch

¿Qué ocurre con int x = 0; if (x = 5) { ... }?

Estructuras de control Abrir
Evaluación C++

Evaluación · Condicionales y switch

¿Por qué se escribe if (i < v.size() && v[i] > 0) en ese orden?

Estructuras de control Abrir
Evaluación C++

Evaluación · Condicionales y switch

¿Qué pasa si haces switch sobre una variable std::string?

Estructuras de control Abrir
Ejercicio C++

Tabla de multiplicar

Pide por teclado un número entero entre 1 y 10 y muestra su tabla de multiplicar del 1 al 10 con el formato 7 x 3 = 21. Usa un for y comprueba que imprime exactamente die…

Estructuras de control Abrir
Ejercicio C++

Pasos de Collatz

La conjetura de Collatz dice: si un número es par, divídelo entre 2; si es impar, multiplícalo por 3 y súmale 1. Repite hasta llegar a 1. Escribe un programa que cuente c…

Estructuras de control Abrir
Completar C++

Completa el bucle que cuenta pares

int pares = 0; for (int i = 0; i 10; ) { if (i % 2 == 0) { pares; } }

Estructuras de control Abrir
Evaluación C++

Evaluación · Bucles for, while y do-while

¿Cuántas veces se ejecuta el cuerpo de for (int i = 0; i < 5; ++i)?

Estructuras de control Abrir
Evaluación C++

Evaluación · Bucles for, while y do-while

¿Qué imprime este fragmento? int i = 0; while (i < 3) { std::cout << i; ++i; }

Estructuras de control Abrir
Evaluación C++

Evaluación · Bucles for, while y do-while

¿Cuándo conviene un do-while en lugar de un while?

Estructuras de control Abrir
Ejercicio C++

Conversión de temperatura

Escribe una función double celsiusAFahrenheit(double celsius) que aplique la fórmula F = C 9 / 5 + 32. Llámala desde main para convertir 0, 25 y 100 grados y muestra los …

Funciones Abrir
Ejercicio C++

Número perfecto

Un número es perfecto si es igual a la suma de sus divisores propios (sin contarse a sí mismo). Escribe dos funciones: int sumaDivisores(int n) y bool esPerfecto(int n). …

Funciones Abrir
Completar C++

Completa la función

int (int a, int b) { a + b; } int main() { std::cout << sumar(2, 3) << '\n'; }

Funciones Abrir
Evaluación C++

Evaluación · Funciones: declaración, parámetros y retorno

¿Qué diferencia hay entre una declaración y una definición de función?

Funciones Abrir
Evaluación C++

Evaluación · Funciones: declaración, parámetros y retorno

¿Qué imprime void f(int x) { x = 99; } si se llama con int a = 5; f(a); y después se imprime a?

Funciones Abrir
Evaluación C++

Evaluación · Funciones: declaración, parámetros y retorno

¿Cuál de estas firmas es válida para un argumento por defecto?

Funciones Abrir
Ejercicio C++

Intercambio con referencias

Escribe void intercambiar(int& a, int& b) que intercambie los valores de dos variables. Llámala desde main con dos enteros, imprime antes y después, y comprueba que el ca…

Funciones Abrir
Ejercicio C++

Suma de dígitos recursiva

Escribe int sumaDigitos(int n) que devuelva la suma de los dígitos de un número positivo. Debe ser recursiva: el caso base es un número de un solo dígito y el caso recurs…

Funciones Abrir
Completar C++

Completa la firma por referencia

void duplicar(int x) { x 2; } int main() { int a = 7; duplicar(a); std::cout << a << '\n'; // 14 }

Funciones Abrir
Evaluación C++

Evaluación · Paso por valor, referencia, sobrecarga y recursión

¿Qué firma permite modificar la variable del llamador sin copiarla?

Funciones Abrir
Evaluación C++

Evaluación · Paso por valor, referencia, sobrecarga y recursión

Con void f(long) y void f(double), ¿qué ocurre al llamar f(3)?

Funciones Abrir
Evaluación C++

Evaluación · Paso por valor, referencia, sobrecarga y recursión

¿Qué falta si una función recursiva compila pero el programa aborta con un desbordamiento de pila?

Funciones Abrir
Ejercicio C++

Intercambiar dos números con punteros

Escribe una función void intercambiar(int a, int b) que intercambie los valores apuntados. Llámala desde main con dos variables y comprueba que ambas cambian. No uses std…

Memoria y punteros Abrir
Ejercicio C++

Sumar un array sin índices

Dado int datos[5] = {2, 4, 6, 8, 10};, calcula la suma recorriendo el array con un puntero (int p = datos y p++), sin usar datos[i]. Muestra el resultado.

Memoria y punteros Abrir
Completar C++

Completa el acceso al valor

int x = 10; int p = x; std::cout << p; // debe imprimir 10 p = 20; // x pasa a 20

Memoria y punteros Abrir
Evaluación C++

Evaluación · Memoria, stack, heap y punteros

Después de int x = 5; int p = &x; p = 9;, ¿cuánto vale x?

Memoria y punteros Abrir
Evaluación C++

Evaluación · Memoria, stack, heap y punteros

¿Cuál es la diferencia principal entre stack y heap?

Memoria y punteros Abrir
Evaluación C++

Evaluación · Memoria, stack, heap y punteros

Si int p apunta a a[0], ¿qué hace p + 2 en un sistema con int de 4 bytes?

Memoria y punteros Abrir
Ejercicio C++

Intercambiar con referencias

Escribe void intercambiar(int& a, int& b) que intercambie dos enteros. Llámala desde main con x = 3 e y = 8 y muestra el resultado. Compara la llamada con la versión de p…

Memoria y punteros Abrir
Ejercicio C++

Media de un array dinámico

Reserva con new double[n] un array de 5 valores {2.0, 4.0, 6.0, 8.0, 10.0}, calcula su media con una función que reciba const double y el tamaño, imprime el resultado y l…

Memoria y punteros Abrir
Completar C++

Completa la reserva y la liberación

int p = int(5); std::cout << p << '\n'; p; p = ;

Memoria y punteros Abrir
Evaluación C++

Evaluación · Referencias, new/delete y fugas de memoria

Tras int a = 1; int b = 2; int& r = a; r = b;, ¿cuánto valen a y b?

Memoria y punteros Abrir
Evaluación C++

Evaluación · Referencias, new/delete y fugas de memoria

¿Qué ocurre con int p = new int[10]; delete p;?

Memoria y punteros Abrir
Evaluación C++

Evaluación · Referencias, new/delete y fugas de memoria

¿Cuál de estas situaciones describe un puntero colgante?

Memoria y punteros Abrir
Ejercicio C++

Convertir new/delete en unique_ptr

El código de partida reserva un entero con new int(7), lo imprime, le suma uno y lo libera con delete. Reescríbelo usando std::makeunique, sin ningún new ni delete, y com…

Memoria y punteros Abrir
Ejercicio C++

Romper un ciclo con weak_ptr

Define struct Nodo { std::string nombre; std::sharedptr<Nodo> otro; };. Crea dos nodos que se apunten mutuamente con sharedptr, imprime a.usecount() y explica por qué val…

Memoria y punteros Abrir
Completar C++

Completa la transferencia de propiedad

auto p = std::(5); std::cout << p << '\n'; auto q = std::(p); std::cout << (p == ) << '\n'; // 1

Memoria y punteros Abrir
Evaluación C++

Evaluación · RAII y punteros inteligentes

¿Qué tipo expresa «este objeto tiene un único dueño que lo liberará»?

Memoria y punteros Abrir
Evaluación C++

Evaluación · RAII y punteros inteligentes

auto a = std::makeshared<int>(1); auto b = a; ¿qué ocurre con el contador de a?

Memoria y punteros Abrir
Evaluación C++

Evaluación · RAII y punteros inteligentes

Dos objetos se referencian con sharedptr en ambos sentidos. ¿Cuál es la consecuencia?

Memoria y punteros Abrir
Ejercicio C++

Estadísticas de un vector

Dado std::vector<int> notas{7, 4, 9, 6, 10}, calcula el mínimo, el máximo y la media con un solo recorrido. Imprime los tres valores separados por espacios y comprueba qu…

Estructuras de datos Abrir
Ejercicio C++

Contar palabras largas

Crea un std::vector<std::string> con las palabras uno, computadora, de, algoritmo, ia. Cuenta cuántas tienen más de 4 caracteres e imprime la cuenta y la palabra más larg…

Estructuras de datos Abrir
Completar C++

Completa las operaciones del vector

std::vector<int> v; v.(10); // anade un elemento std::cout << v.() << '\n'; // 1 std::cout << v.(0) << '\n'; // 10, con comprobacion de limites

Estructuras de datos Abrir
Evaluación C++

Evaluación · Arrays, std::vector y std::string

Un std::vector<int> tiene size() == 3 y capacity() == 8. ¿Qué significa?

Estructuras de datos Abrir
Evaluación C++

Evaluación · Arrays, std::vector y std::string

¿Qué provoca que un int p = v.data(); quede colgante?

Estructuras de datos Abrir
Evaluación C++

Evaluación · Arrays, std::vector y std::string

¿Cuál es la diferencia principal entre v[i] y v.at(i)?

Estructuras de datos Abrir
Ejercicio C++

Frecuencia de letras

Dada la cadena "banana", cuenta cuántas veces aparece cada letra usando un std::map<char, int> y muestra los pares ordenados por letra. El resultado debe ser a: 3, b: 1, …

Estructuras de datos Abrir
Ejercicio C++

Cola de atención con prioridad

Crea una std::priorityqueue<int> con las urgencias {3, 1, 4, 1, 5, 9, 2, 6}. Extrae todos los elementos e imprímelos separados por espacios. Después explica qué cambiaría…

Estructuras de datos Abrir
Completar C++

Completa la pila

std::stack<int> pila; pila.(1); pila.(2); std::cout << pila.() << '\n'; // 2 pila.();

Estructuras de datos Abrir
Evaluación C++

Evaluación · std::map, set, pilas y colas

¿Qué contenedor elegirías si necesitas recorrer las claves en orden alfabético y buscar por clave?

Estructuras de datos Abrir
Evaluación C++

Evaluación · std::map, set, pilas y colas

std::map<std::string, int> m; está vacío. ¿Qué hace m["x"];?

Estructuras de datos Abrir
Evaluación C++

Evaluación · std::map, set, pilas y colas

¿Cuál es la diferencia esencial entre std::stack y std::queue?

Estructuras de datos Abrir
Ejercicio C++

Orden descendente y conteo de mayores

Dado std::vector<int> edades{23, 15, 42, 8, 31, 19};, ordénalo de mayor a menor con std::sort y una lambda, cuenta cuántos son mayores de edad con std::countif e imprime …

Estructuras de datos Abrir
Ejercicio C++

Normalizar un vector con algoritmos

Dado std::vector<double> x{2.0, 4.0, 6.0, 8.0};, obtén el mínimo y el máximo con std::minelement y std::maxelement, transforma cada valor a (valor - min) / (max - min) y …

Estructuras de datos Abrir
Completar C++

Completa el algoritmo

std::vector<int> datos{5, 1, 9, 3}; std::sort(datos.(), datos.()); auto it = std::find(datos.begin(), datos.end(), ); std::cout << std::distance(datos.begin(), it);

Estructuras de datos Abrir
Evaluación C++

Evaluación · Iteradores y algoritmos STL

Si std::find(v.begin(), v.end(), 42) no encuentra el valor, ¿qué devuelve?

Estructuras de datos Abrir
Evaluación C++

Evaluación · Iteradores y algoritmos STL

Guardas auto it = v.begin(); y luego llamas a v.pushback(7). ¿Qué ocurre con it?

Estructuras de datos Abrir
Evaluación C++

Evaluación · Iteradores y algoritmos STL

¿Por qué std::sort(l.begin(), l.end()) no compila cuando l es un std::list?

Estructuras de datos Abrir
Ejercicio C++

Cuenta bancaria encapsulada

Escribe una clase CuentaBancaria con titular y saldo privados. El constructor debe rechazar saldos negativos dejándolos en cero. Añade depositar y retirar, que devuelven …

Programación orientada a objetos Abrir
Ejercicio C++

Dataset con estadísticas y contador estático

Crea una clase Dataset que reciba un std::vector<double> por valor y lo mueva a un miembro privado. Debe lanzar std::invalidargument si el vector está vacío, ofrecer medi…

Programación orientada a objetos Abrir
Completar C++

Completa el constructor y el método const

class Punto { public: Punto(int x, int y) : x(), y() {} int x() { return ; } private: int x; int y; };

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Clases, constructores y encapsulamiento

¿Qué garantiza double valor() const en una clase?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Clases, constructores y encapsulamiento

¿Por qué conviene inicializar en la lista : nombre(std::move(n)) en lugar de asignar en el cuerpo?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Clases, constructores y encapsulamiento

Si una clase declara static int instancias; pero no lo define fuera, ¿qué ocurre al usarlo?

Programación orientada a objetos Abrir
Ejercicio C++

Tres figuras y la de mayor área

Define una clase abstracta Figura con area() y nombre() puros y destructor virtual. Deriva Circulo (radio 1), Rectangulo (2x3) y Triangulo (base 4, altura 5). Guárdalas e…

Programación orientada a objetos Abrir
Ejercicio C++

Métricas MAE y RMSE tras una interfaz

Declara una interfaz Metrica con calcular(real, pred) puro y nombre() puro. Implementa MAE y RMSE para los vectores {3, 5} y {2, 7}. Recorre un std::vector<std::uniqueptr…

Programación orientada a objetos Abrir
Completar C++

Completa la jerarquía

class Base { public: ~Base() = default; virtual double f() const = 0; }; class D : public Base { public: double f() const { return 1.0; } };

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Herencia, virtual y polimorfismo

¿Por qué una clase base polimórfica necesita un destructor virtual?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Herencia, virtual y polimorfismo

Con Derivada d; Base& ref = d; y nombre() virtual, ¿qué devuelve ref.nombre()?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Herencia, virtual y polimorfismo

¿Qué ocurre al pasar un objeto Derivada a una función que recibe Base por valor?

Programación orientada a objetos Abrir
Ejercicio C++

Fracciones con operadores

Escribe una clase Racional con numerador y denominador privados que simplifique en el constructor usando std::gcd. Sobrecarga operator+, operator== y operator<< para que …

Programación orientada a objetos Abrir
Ejercicio C++

Arreglo con regla de 5

Implementa una clase Arreglo que posea un int reservado con new[]. Escribe constructor, copia profunda, asignación con copy-and-swap, constructor y asignación de movimien…

Programación orientada a objetos Abrir
Completar C++

Completa los operadores

class Punto { public: Punto(int x, int y) : x(x), y(y) {} Punto +(const Punto& otro) const { return Punto{x + otro.x, y + otro.y}; } std::ostream& operator<<(std::ostream…

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Regla de 0/3/5 y sobrecarga de operadores

Una clase reserva memoria con new[] en su constructor. ¿Qué debe declarar además del destructor?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Regla de 0/3/5 y sobrecarga de operadores

Después de Secuencia c = std::move(a);, ¿qué se puede afirmar de a?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Regla de 0/3/5 y sobrecarga de operadores

¿Por qué operator<< se declara como función libre y no como método de la clase?

Programación orientada a objetos Abrir
Ejercicio C++

Sumar los elementos de un vector

Escribe una plantilla sumavector que reciba const std::vector<T>& y devuelva la suma de sus elementos. Pruébala con {1, 2, 3} y con {1.5, 2.0, 2.5}. No uses std::accumula…

Programación orientada a objetos Abrir
Ejercicio C++

Un mínimo restringido con concepts

Define un concept Ordenable que exija a < b convertible a bool y una función minimo restringida a él, que devuelva el menor elemento de un std::vector<T>. Si el vector es…

Programación orientada a objetos Abrir
Completar C++

Completa la plantilla

<typename T> T menor(T a, T b) { return (a < b) ? : b; } int main() { std::cout << menor(9, 4); // 4 std::cout << menor(2.5, 7.5); // 2.5 }

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Templates y programación genérica

¿Cuándo se genera el código de template <typename T> T doble(T x)?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Templates y programación genérica

maximo(3, 4.5) no compila. ¿Cuál es la corrección más directa?

Programación orientada a objetos Abrir
Evaluación C++

Evaluación · Templates y programación genérica

¿Para qué sirve typename en typename T::valuetype x;?

Programación orientada a objetos Abrir
Ejercicio C++

Filtrar, transformar y sumar

Dado std::vector<int> datos{1, 2, 3, 4, 5, 6};, usa std::transform con una lambda para elevar al cuadrado solo los pares en un vector nuevo, y luego suma el resultado con…

C++ moderno Abrir
Ejercicio C++

Ranking de alumnos

Define struct Alumno { std::string nombre; double nota; }; y crea un vector con cuatro alumnos. Ordénalo por nota de mayor a menor y, en caso de empate, por nombre alfabé…

C++ moderno Abrir
Completar C++

Completa la captura y la llamada

std::vector<int> v{4, 1, 7, 3}; int limite = 3; auto supera = [](int x) { return x > limite; // debe ver el valor actual }; limite = 5; auto total = std::countif(v.begin(…

C++ moderno Abrir
Evaluación C++

Evaluación · Lambdas, range-for y C++ moderno

¿Qué imprime este código? int x = 2; auto f = [x]() { return x; }; x = 9; std::cout << f();

C++ moderno Abrir
Evaluación C++

Evaluación · Lambdas, range-for y C++ moderno

¿Cuándo es preferible std::function frente a auto para guardar una lambda?

C++ moderno Abrir
Evaluación C++

Evaluación · Lambdas, range-for y C++ moderno

¿Por qué es peligroso return [&local]() { return local; }; desde una función?

C++ moderno Abrir
Ejercicio C++

Mueve un buffer con asignación

Implementa una clase Buffer con un array dinámico de int, constructor por tamaño, destructor, copia prohibida, constructor de movimiento y asignación de movimiento. En ma…

C++ moderno Abrir
Ejercicio C++

Describe un variant de configuración

Define using Config = std::variant<int, double, std::string>; y una función std::string describir(const Config&) que devuelva entero: N, real: X con una cifra decimal o t…

C++ moderno Abrir
Completar C++

Completa el código

std::<double> resultado = dividir(8.0, 2.0); if (resultado) { std::cout << resultado; // 4 } std::string nombre = "modelo"; std::string copia = std::(nombre); // transfer…

C++ moderno Abrir
Evaluación C++

Evaluación · Move semantics, optional y variant

¿Qué hace exactamente std::move(x)?

C++ moderno Abrir
Evaluación C++

Evaluación · Move semantics, optional y variant

Después de std::string a = "modelo"; std::string b = std::move(a);, ¿qué puedes afirmar de a?

C++ moderno Abrir
Evaluación C++

Evaluación · Move semantics, optional y variant

¿Cuál es la forma correcta de devolver un vector local por valor?

C++ moderno Abrir
Ejercicio C++

Raíz cuadrada con dominio validado

Escribe double raiz(double x) que lance std::domainerror si x < 0 y devuelva std::sqrt(x) en caso contrario. En main, prueba con 16 y con -4 dentro de un try, captura con…

C++ moderno Abrir
Ejercicio C++

Suma paralela con cuatro hilos

Suma los enteros de 1 a 1 000 000 usando cuatro hilos. Cada hilo debe calcular su parcial en una variable local y sumarlo a un long long compartido dentro de un std::lock…

C++ moderno Abrir
Completar C++

Completa el manejo y el bloqueo

try { lanzar(); } (const std::exception& e) { std::cout << e.(); } std::mutex m; std::<std::mutex> bloqueo(m);

C++ moderno Abrir
Evaluación C++

Evaluación · Excepciones y std::thread

¿Por qué se captura con const std::exception& en lugar de std::exception?

C++ moderno Abrir
Evaluación C++

Evaluación · Excepciones y std::thread

¿Qué ocurre si un std::thread sigue unible cuando se destruye?

C++ moderno Abrir
Evaluación C++

Evaluación · Excepciones y std::thread

¿Qué protege exactamente std::lockguard<std::mutex> bloqueo(m);?

C++ moderno Abrir
Ejercicio C++

Tres formas de sumar un vector

Mide el tiempo de sumar veinte millones de double con índice, con range-for y con std::accumulate. Imprime las tres sumas y los tres tiempos. ¿Cuál gana?

C++ para alto rendimiento Abrir
Ejercicio C++

Sumar por columnas sin saltar de fila

Una matriz de 1024 por 1024 está guardada por filas. Calcula la suma de cada columna de dos formas: recorriendo cada columna de arriba abajo y recorriendo las filas una s…

C++ para alto rendimiento Abrir
Completar C++

Completa el cronómetro

const auto inicio = std::chrono::::now(); trabajopesado(datos); const auto fin = std::chrono::steadyclock::now(); const double ms = std::chrono::duration<double, std::mil…

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Optimización, profiling y complejidad

Un algoritmo tarda 1 segundo con 1 000 elementos y su coste es O(n²). ¿Cuánto tardará aproximadamente con 10 000 elementos?

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Optimización, profiling y complejidad

¿Por qué recorrer una matriz guardada por filas en orden de columnas es más lento?

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Optimización, profiling y complejidad

Mides una función, no imprimes su resultado y el cronómetro marca 0,00 ms. ¿Qué ha pasado?

C++ para alto rendimiento Abrir
Ejercicio C++

Suma de cuadrados en paralelo

Calcula la suma de los cuadrados de los enteros de 0 a 49 999 999 con OpenMP y con un bucle secuencial. Compara los dos resultados en el programa y mide los tiempos con s…

C++ para alto rendimiento Abrir
Ejercicio C++

Arreglar el false sharing

Toma el programa de los dos contadores, mide la versión con los campos juntos y cámbiala para que cada contador viva en su propia línea de caché. Comprueba que los result…

C++ para alto rendimiento Abrir
Completar C++

Completa la directiva

double suma = 0.0; pragma omp for (+ : suma) schedule(static) for (std::sizet i = 0; i < v.size(); ++i) { suma += v[i]; }

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Paralelismo, SIMD y grandes volúmenes

¿Qué hace exactamente reduction(+ : suma) en una directiva OpenMP?

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Paralelismo, SIMD y grandes volúmenes

Dos hilos incrementan contadores distintos que están en la misma línea de caché. ¿Qué ocurre?

C++ para alto rendimiento Abrir
Evaluación C++

Evaluación · Paralelismo, SIMD y grandes volúmenes

Un bucle suma cincuenta millones de double y la versión con diez hilos solo es dos veces más rápida. ¿Cuál es la explicación más probable?

C++ para alto rendimiento Abrir
Ejercicio C++

Resolver un sistema 3×3 y comprobar el residuo

Resuelve el sistema cuya matriz es [[2, 1, 0], [1, 3, 1], [0, 1, 4]] con término independiente [3, 5, 5]. Usa partialPivLu() e imprime la solución y la norma del residuo …

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Ajustar una recta a cinco puntos

Con los puntos x = 1, 2, 3, 4, 5 e y = 3, 5, 7, 9, 11, monta la matriz X con una columna de unos y resuelve por mínimos cuadrados. ¿Qué pendiente e intercepto obtienes? C…

C++ para Inteligencia Artificial Abrir
Completar C++

Completa la resolución

Eigen::Matrix3d A; A << 2, 1, 0, 1, 3, 1, 0, 1, 4; Eigen::Vector3d b; b << 3, 5, 5; const Eigen::Vector3d x = A.().solve(b); std::cout << A.() << '\n'; // la matriz con f…

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Eigen: álgebra lineal en C++

¿Qué tipo de Eigen usarías para una matriz de 3 por 3 de double cuyo tamaño no cambia?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Eigen: álgebra lineal en C++

A es simétrica y definida positiva. ¿Qué descomposición conviene para resolver Ax = b?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Eigen: álgebra lineal en C++

¿Por qué auto C = A + B; es peligroso en Eigen?

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Comprobar la pérdida de tres modelos

Usa la función mse para calcular la pérdida de tres modelos sobre los mismos datos: (w=0, b=0), (w=1.5, b=0.5) y (w=2, b=0). Antes de ejecutar, calcula a mano el primero …

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Parar cuando el gradiente sea pequeño

Añade al bucle de entrenamiento una condición de parada: detente cuando |gw| y |gb| sean menores que 0.001. Imprime la época en la que ocurre y los parámetros en ese mome…

C++ para Inteligencia Artificial Abrir
Completar C++

Completa la actualización

for (std::sizet i = 0; i < n; ++i) { const double error = w x[i] + b - ; gw += 2.0 error / n; gb += 2.0 error / n; } w -= gw; b -= lr gb;

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Machine Learning desde cero en C++

Con w = 0 y b = 0, ¿cuánto vale el MSE sobre x = [1, 2, 3, 4], y = [2, 4, 6, 8]?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Machine Learning desde cero en C++

Si el gradiente respecto de w es negativo, ¿qué hace un paso de gradiente descendente?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Machine Learning desde cero en C++

La pérdida baja durante veinte épocas y de repente empieza a crecer hasta infinito. ¿Cuál es la causa más probable?

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Producto escalar con argumentos con nombre

Escribe un módulo vectorops con una función productopunto(a, b) que reciba dos listas de double, compruebe que tienen la misma longitud, lance std::invalidargument si no …

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Una clase con propiedad de solo lectura

Publica una clase Contador con incrementar(), reiniciar() y una propiedad valor que no se pueda asignar desde Python. Añade un repr. Comprueba en el intérprete que contad…

C++ para Inteligencia Artificial Abrir
Completar C++

Completa el binding

PYBIND11MODULE(, m) { m.def("escalar", &escalar, , py::arg("factor"), "Multiplica el vector por factor"); }

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Integración con Python y pybind11

Declaras PYBIND11MODULE(faststats, m) pero el archivo se llama faststats.cpp. ¿Qué ocurre al importar?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Integración con Python y pybind11

Quieres que una función C++ reciba una lista de Python como std::vector<double>. ¿Qué añades?

C++ para Inteligencia Artificial Abrir
Evaluación C++

Evaluación · Integración con Python y pybind11

¿Cuándo es seguro añadir py::callguard<py::gilscopedrelease>() a una función?

C++ para Inteligencia Artificial Abrir
Ejercicio C++

Traspuesta y una identidad algebraica

Añade una función Matrix traspuesta(const Matrix& m) que devuelva una matriz de dimensiones intercambiadas. Comprueba con casiigual que (A B)ᵀ = Bᵀ Aᵀ para una A de 2x3 y…

Proyectos reales Abrir
Ejercicio C++

Producto matriz-vector con validación

Implementa std::vector<double> productomatrizvector(const Matrix& m, const std::vector<double>& v). Debe lanzar std::invalidargument si m.columnas() != v.size() y devolve…

Proyectos reales Abrir
Completar C++

Completa el indexado y el acumulador

// m(i, j) vive en esta posicion del buffer contiguo std::sizet k = i + j; // producto: la celda se acumula, no se asigna resultado(i, j) a(i, k) b(k, j);

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: motor matricial

En una Matrix de 3 filas y 4 columnas almacenada por filas, ¿en qué posición vive m(2, 1)?

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: motor matricial

¿Por qué la multiplicación recorre los bucles en orden i-k-j y no i-j-k?

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: motor matricial

Matrix a(2, 2); Matrix b(3, 3); auto c = a b; ¿Qué ocurre?

Proyectos reales Abrir
Ejercicio C++

Predicción por lotes

Escribe predecirlote para aplicar el modelo a cada fila de un lote, reservando el vector de salida. Pruébalo con [[34, 2500, 4, 1200], [52, 7000, 15, 300]] y comprueba qu…

Proyectos reales Abrir
Ejercicio C++

Recarga en caliente sin carreras

Envuelve el modelo en ModeloServible con un std::sharedmutex: predecir toma el candado compartido y recargar el exclusivo, cargando el archivo nuevo fuera del candado. Co…

Proyectos reales Abrir
Completar C++

Completa la sigmoide

include <cmath> double probabilidad(double z) { return 1.0 / (1.0 + std::()); }

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: servidor de inferencia

El cliente envía {"features": [34, 2500]} a un modelo de 4 features. ¿Qué debe responder el servidor?

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: servidor de inferencia

¿Por qué el modelo se declara inmutable después de cargarlo?

Proyectos reales Abrir
Evaluación C++

Evaluación · Proyecto: servidor de inferencia

Con el pool por defecto, 50 clientes con keep-alive provocan esperas de segundos. ¿Cuál es la causa más probable?

Proyectos reales Abrir
Ejercicio Python

Ficha personal

Crea un archivo ficha.py con tres variables: tu nombre, tu edad y tu lenguaje favorito. Muestra tres líneas usando f-strings, con el formato: Me llamo , Tengo años y Quie…

Introducción a Python Abrir
Completar Python

Completa la salida

nombre = "Ada" edad = 20 print("Hola,", ) print("Tienes", , "años")

Introducción a Python Abrir
Evaluación Python

Evaluación · ¿Qué es Python y cómo preparar tu entorno?

¿Qué hace exactamente el intérprete de Python?

Introducción a Python Abrir
Evaluación Python

Evaluación · ¿Qué es Python y cómo preparar tu entorno?

¿Cuál de estas líneas es un comentario válido en Python?

Introducción a Python Abrir
Ejercicio Python

De Celsius a Fahrenheit

Guarda 37.0 en celsius y calcula los grados Fahrenheit con F = C 9 / 5 + 32. Muestra el resultado con un decimal, por ejemplo 37 °C = 98.6 °F. Después prueba con -5.0 y c…

Introducción a Python Abrir
Ejercicio Python

Promedio de notas que llegan como texto

Tres notas llegan como cadenas: "16", "14.5" y "18". Convierte cada una al tipo numérico adecuado, calcula el promedio y muéstralo con dos decimales. El resultado esperad…

Introducción a Python Abrir
Completar Python

Completa la conversión

edadtexto = "21" edad = print(edad + 1) print((edad))

Introducción a Python Abrir
Evaluación Python

Evaluación · Variables y tipos de datos

¿Qué tipo tiene el resultado de 10 / 2?

Introducción a Python Abrir
Evaluación Python

Evaluación · Variables y tipos de datos

¿Qué imprime precio = "12.5" seguido de print(precio 2)?

Introducción a Python Abrir
Evaluación Python

Evaluación · Variables y tipos de datos

Después de a = 10, b = a y a = 20, ¿qué vale b?

Introducción a Python Abrir
Ejercicio Python

Promedio ponderado con dos decimales

Un alumno obtuvo 15 en prácticas, 18 en el examen y 12 en el proyecto. Las ponderaciones son 20 %, 50 % y 30 %. Calcula el promedio y muéstralo con dos decimales. Después…

Introducción a Python Abrir
Ejercicio Python

Minutos a horas y minutos

Guarda 347 en totalminutos, calcula las horas completas y los minutos sobrantes, y muestra 347 minutos = 5 h 47 min. Resuélvelo solo con // y %.

Introducción a Python Abrir
Completar Python

Completa la expresión

precio = 120 descuento = precio 0.10 total = precio - descuento print(total 100) print(total > 100 total < 120)

Introducción a Python Abrir
Evaluación Python

Evaluación · Operadores y expresiones

¿Qué imprime print(7 // 2, 7 % 2)?

Introducción a Python Abrir
Evaluación Python

Evaluación · Operadores y expresiones

¿Cuál es el valor de 2 + 3 4 2?

Introducción a Python Abrir
Evaluación Python

Evaluación · Operadores y expresiones

¿Qué devuelve 0 or "sin dato"?

Introducción a Python Abrir
Ejercicio Python

Clasificar el índice de masa corporal

Con peso = 72 y altura = 1.75, calcula el IMC con peso / altura 2 y clasifícalo: menos de 18.5 es bajo, menos de 25 es normal, menos de 30 es sobrepeso y el resto obesida…

Estructuras de control Abrir
Ejercicio Python

Año bisiesto

Pide un año guardado en anio y decide si es bisiesto con la regla: divisible entre 4, salvo los múltiplos de 100 que no sean múltiplos de 400. Comprueba con 2024 (sí), 19…

Estructuras de control Abrir
Completar Python

Completa la cadena

nota = 14 if nota >= 18: nivel = "excelente" nota >= 13: nivel = "bueno" else: nivel = "insuficiente" print()

Estructuras de control Abrir
Evaluación Python

Evaluación · Condicionales: if, elif y else

Con valor = 0, ¿qué bloque se ejecuta en if valor: ... else: ...?

Estructuras de control Abrir
Evaluación Python

Evaluación · Condicionales: if, elif y else

Con x = 12, ¿qué imprime if x > 10: print("A") elif x > 5: print("B") else: print("C")?

Estructuras de control Abrir
Evaluación Python

Evaluación · Condicionales: if, elif y else

¿Cuál es la salida de estado = "apto" if 13 >= 13 else "no apto"?

Estructuras de control Abrir
Ejercicio Python

Suma de pares del 1 al 20

Suma todos los números pares entre 1 y 20 inclusive y muestra el total. El resultado debe ser 110. Resuélvelo con un for y un acumulador, sin escribir la lista a mano.

Estructuras de control Abrir
Ejercicio Python

Factorial con un bucle

Calcula el factorial de 6, es decir, 1 2 3 4 5 6, usando un for y una variable que empiece en 1. Muestra el resultado, que debe ser 720.

Estructuras de control Abrir
Completar Python

Completa el acumulador

total = 0 for numero in (1, 6): total numero print(total)

Estructuras de control Abrir
Evaluación Python

Evaluación · Bucles: while, for y control de iteraciones

¿Qué números produce range(2, 10, 3)?

Estructuras de control Abrir
Evaluación Python

Evaluación · Bucles: while, for y control de iteraciones

¿Cuántas veces se ejecuta el cuerpo de for i in range(4):?

Estructuras de control Abrir
Evaluación Python

Evaluación · Bucles: while, for y control de iteraciones

En for n in [1, 2, 3]: if n == 2: break, ¿qué ocurre?

Estructuras de control Abrir
Ejercicio Python

Iniciales y vocales

Pide un nombre completo separado por espacios, por ejemplo "Ada King Lovelace". Muestra sus iniciales unidas por puntos (sin punto final) y cuenta cuántas vocales contien…

Estructuras de datos Abrir
Completar Python

Completa el corte

s = "abcdefgh" print(s[:]) debe mostrar cdef print(s[]) debe mostrar h print(s[]) debe mostrar a

Estructuras de datos Abrir
Ejercicio Python

Nombre de usuario

A partir de " Ada King Lovelace ", genera un usuario con la forma a.lovelace: la inicial del primer nombre, un punto y el último apellido, todo en minúsculas y sin espaci…

Estructuras de datos Abrir
Evaluación Python

Evaluación · Strings, índices y slicing

¿Qué devuelve "Python"[1:4]?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Strings, índices y slicing

Después de s = "hola" y s.upper(), ¿qué contiene s?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Strings, índices y slicing

¿Cuántos elementos produce "a,b,,c".split(",")?

Estructuras de datos Abrir
Ejercicio Python

Lista de compras

Crea una lista vacía llamada compra. Añade "pan" y "leche" con append, inserta "huevos" al principio y elimina "pan" con remove. Muestra la lista final y cuántos producto…

Estructuras de datos Abrir
Completar Python

Completa las operaciones

notas = [12, 18, 7] notas.(15) añadir al final primera = notas.(0) sacar la primera notas.() ordenar de menor a mayor print(primera, notas)

Estructuras de datos Abrir
Ejercicio Python

Promedio sin extremos

Dada notas = [14, 6, 18, 20, 9], calcula el promedio descartando la nota más baja y la más alta. Ordena una copia para no alterar la lista original, elimina los extremos …

Estructuras de datos Abrir
Evaluación Python

Evaluación · Listas y tuplas

Después de a = [1, 2], b = a y b.append(3), ¿qué vale a?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Listas y tuplas

¿Qué devuelve sorted([3, 1, 2]) y qué deja en la lista original?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Listas y tuplas

¿Cuál de estas operaciones sobre una lista de 10 000 elementos es más cara?

Estructuras de datos Abrir
Ejercicio Python

Frecuencia de palabras

Dado el texto "sol mar sol viento mar sol", construye un diccionario que asocie cada palabra con su número de apariciones. Recorre las palabras con split() y muestra el r…

Estructuras de datos Abrir
Completar Python

Consulta segura y recorrido

edades = {"Ana": 21, "Luis": 19} print(edades.("Eva", 0)) for nombre, edad in edades.(): print(nombre, edad)

Estructuras de datos Abrir
Ejercicio Python

Visitantes de dos días

El lunes visitaron la web {"ana", "luis", "eva"} y el martes {"luis", "eva", "mario"}. Calcula quiénes repitieron, quiénes son nuevos el martes y cuántos usuarios distint…

Estructuras de datos Abrir
Evaluación Python

Evaluación · Diccionarios y conjuntos

¿Qué devuelve {"a": 1}.get("b")?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Diccionarios y conjuntos

¿Por qué {[1, 2]: "valor"} falla?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Diccionarios y conjuntos

Si a = {1, 2, 3} y b = {2, 3, 4}, ¿qué contiene a & b?

Estructuras de datos Abrir
Ejercicio Python

Precios con descuento

Dada precios = [45, 120, 80, 250, 30], crea una lista con los precios mayores a 50 rebajados un 10 %. Muestra la lista resultante y cuántos productos quedaron fuera del d…

Estructuras de datos Abrir
Completar Python

Completa la comprensión

numeros = [3, 8, 1, 10] mayores = [n for in numeros n > 5] cuadrados = {n: for n in numeros} print(mayores, cuadrados)

Estructuras de datos Abrir
Ejercicio Python

Resumen de inventario

Tienes productos = ["teclado", "mouse", "monitor"] y precios = [120, 45, 300]. Construye un diccionario con los productos que cuestan más de 100, aplicando un 5 % de desc…

Estructuras de datos Abrir
Evaluación Python

Evaluación · Recorridos y comprensiones

¿Qué produce [n 2 for n in [1, 2, 3] if n != 2]?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Recorridos y comprensiones

¿Qué devuelve list(zip([1, 2, 3], ["a", "b"]))?

Estructuras de datos Abrir
Evaluación Python

Evaluación · Recorridos y comprensiones

¿Cuándo es mejor un bucle for que una comprensión?

Estructuras de datos Abrir
Ejercicio Python

Temperatura media

Escribe una función afahrenheit(celsius) que devuelva la conversión con la fórmula c 9 / 5 + 32, y otra promedio(datos) que devuelva la media de una lista no vacía. Despu…

Funciones Abrir
Completar Python

Completa el área

def arearectangulo(base, altura): """Devuelve el área del rectángulo.""" return print(arearectangulo(4, 3))

Funciones Abrir
Ejercicio Python

Descuento por tramo

Una tienda aplica 5 % de descuento a partir de 100 y 10 % a partir de 300. Escribe descuentopara(monto) que devuelva el porcentaje, y totalfinal(monto) que lo aplique y d…

Funciones Abrir
Evaluación Python

Evaluación · Funciones: parámetros y retorno

¿Qué devuelve una función cuyo cuerpo termina sin ejecutar ningún return?

Funciones Abrir
Evaluación Python

Evaluación · Funciones: parámetros y retorno

¿Qué ocurre al ejecutar únicamente def f(): print("hola")?

Funciones Abrir
Evaluación Python

Evaluación · Funciones: parámetros y retorno

Con def f(a, b=2), ¿cuál de estas llamadas falla?

Funciones Abrir
Ejercicio Python

Resumen de ventas

Escribe resumen(ventas) que devuelva una tupla con la cantidad de ventas, el total y el promedio. Si no recibe nada, debe devolver (0, 0, 0) sin lanzar errores. Prueba co…

Funciones Abrir
Completar Python

Completa la firma flexible

def mostrar(, ): print(args, kwargs) mostrar(1, 2, nombre="Ada")

Funciones Abrir
Ejercicio Python

Ficha de usuario con opciones

Escribe crearusuario(nombre, , rol="alumno", extra) que devuelva un diccionario con nombre, rol y todos los pares adicionales. Llama una vez solo con el nombre y otra con…

Funciones Abrir
Evaluación Python

Evaluación · Argumentos flexibles y alcance de variables

Dentro de def f(args), ¿qué tipo tiene args?

Funciones Abrir
Evaluación Python

Evaluación · Argumentos flexibles y alcance de variables

¿Qué imprime este código? python def f(x, lista=[]): lista.append(x) return lista print(f(1)) print(f(2))

Funciones Abrir
Evaluación Python

Evaluación · Argumentos flexibles y alcance de variables

En x = 10 global y una función que hace x = x + 1 sin declarar global, ¿qué ocurre al llamarla?

Funciones Abrir
Ejercicio Python

Catálogo ordenado

Tienes una lista de diccionarios con nombre y precio. Ordénala de mayor a menor precio usando sorted y una lambda como key, y muestra solo los nombres en ese orden. Despu…

Funciones Abrir
Completar Python

Completa la transformación

doble = x: x 2 print(doble(4)) print(list( (doble, [1, 2, 3])))

Funciones Abrir
Ejercicio Python

Suma de dígitos recursiva

Escribe sumadigitos(n) que devuelva la suma de los dígitos de un entero positivo sin convertirlo a texto. Debe ser recursiva: el caso base es un número de una cifra y el …

Funciones Abrir
Evaluación Python

Evaluación · Lambda, map/filter/reduce y recursividad

¿Qué devuelve sorted(["bb", "a", "ccc"], key=len)?

Funciones Abrir
Evaluación Python

Evaluación · Lambda, map/filter/reduce y recursividad

¿Qué muestra print(map(str.upper, ["a", "b"])) en Python 3?

Funciones Abrir
Evaluación Python

Evaluación · Lambda, map/filter/reduce y recursividad

¿Cuál es la condición indispensable para que una función recursiva termine?

Funciones Abrir
Ejercicio Python

Cuenta con saldo protegido

Escribe una clase Cuenta con titular y un saldo inicial de 0 guardado en saldo. Añade depositar(monto) y retirar(monto), que rechacen montos no positivos y retiros mayore…

Programación orientada a objetos Abrir
Completar Python

Completa el constructor

class Perro: def init(, nombre): .nombre = nombre def ladrar(self): return f"{self.nombre} dice guau" print(Perro("Toby").ladrar())

Programación orientada a objetos Abrir
Ejercicio Python

Producto con historial de precios

Crea Producto con nombre, precio y un historial vacío. El método cambiarprecio(nuevo) debe guardar el precio anterior en el historial y actualizar el actual. Crea dos pro…

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Clases y objetos

¿Qué es self dentro de un método?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Clases y objetos

Con class C: items = [] y dos instancias a y b, tras a.items.append(1), ¿qué vale b.items?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Clases y objetos

¿Cuál de estas afirmaciones sobre init es correcta?

Programación orientada a objetos Abrir
Ejercicio Python

Figuras con área obligatoria

Crea una clase abstracta Figura con un método abstracto area() y un método concreto describir() que devuelva el nombre de la clase y el área con dos decimales. Implementa…

Programación orientada a objetos Abrir
Ejercicio Python

Nómina con sobrescritura y super()

Modela Empleado(nombre, base) con un método sueldo() que devuelva el sueldo base. Crea Vendedor(nombre, base, ventas), que suma un 10 % de las ventas, y Gerente(nombre, b…

Programación orientada a objetos Abrir
Completar Python

Completa el contrato abstracto

from abc import ABC, class Forma(): @abstractmethod def area(self): ... class Cuadrado(Forma): def init(self, lado): self.lado = lado def area(self): return self.lado 2 p…

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Herencia, polimorfismo y abstracción

¿Qué hace exactamente super().init(nombre) dentro del init de Perro?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Herencia, polimorfismo y abstracción

Con class D(B, C), donde B y C heredan de A, B no define saludar y C sí, ¿qué versión se ejecuta al llamar D().saludar()?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Herencia, polimorfismo y abstracción

¿En cuál de estos casos NO conviene usar herencia?

Programación orientada a objetos Abrir
Ejercicio Python

Cuenta con saldo protegido

Crea CuentaBancaria(titular, saldo) donde saldo sea una propiedad con setter que rechace valores negativos con ValueError. Añade depositar(monto) y retirar(monto), que ta…

Programación orientada a objetos Abrir
Ejercicio Python

Inventario con len, suma y constructor alternativo

Diseña Inventario a partir de un diccionario producto → unidades. Implementa len para que devuelva el total de unidades (no el número de productos), add para combinar dos…

Programación orientada a objetos Abrir
Completar Python

Completa la propiedad

class Termometro: def init(self, celsius): self.celsius = celsius @ def celsius(self): return self.celsius @celsius. def celsius(self, valor): self.celsius = valor t = Te…

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Métodos especiales, propiedades y classmethods

¿Qué imprime print([Punto(1, 2)]) si la clase define str como "(1, 2)" y repr como "Punto(1, 2)"?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Métodos especiales, propiedades y classmethods

¿Por qué eq debería devolver NotImplemented en lugar de False cuando el otro objeto no es del tipo esperado?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Métodos especiales, propiedades y classmethods

Tienes @property def saldo(self) sin setter. ¿Qué ocurre al ejecutar cuenta.saldo = 100?

Programación orientada a objetos Abrir
Ejercicio Python

Carrito con calculadora de impuestos

Crea CalculadoraIGV(tasa) con un método calcular(subtotal) que devuelva el subtotal con impuesto redondeado a dos decimales. Crea Carrito(calculadora) que acumule precios…

Programación orientada a objetos Abrir
Ejercicio Python

Monitor con fuente, regla y notificador

Compón un monitor de temperatura a partir de tres objetos: una fuente con leer() que devuelva una lista de lecturas, una regla con evaluar(valor) que diga si supera un lí…

Programación orientada a objetos Abrir
Completar Python

Completa la delegación del informe

class Informe: def init(self, fuente, limpiador): self.fuente = self.limpiador = limpiador def generar(self): filas = self.fuente.() return self.limpiador.limpiar()

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Composición y diseño de clases

class Auto guarda un Motor en self.motor y llama a self.motor.arrancar(). ¿Qué relación modela?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Composición y diseño de clases

¿Por qué def init(self, pasos=[]) es un error frecuente en una clase con varios objetos?

Programación orientada a objetos Abrir
Evaluación Python

Evaluación · Composición y diseño de clases

Tu Informe llama a fuente.leer(), limpiador.limpiar(...) y resumen.calcular(...), y no importa ninguna de esas clases. ¿Qué ventaja aporta?

Programación orientada a objetos Abrir
Ejercicio Python

Conversor con excepción de formato

Define ErrorDeFormato(campo, valor) que herede de Exception, guarde ambos datos y construya un mensaje como edad: 'treinta' no es un entero. Escribe aentero(texto, campo)…

Errores y archivos Abrir
Ejercicio Python

Configuración validada con else

Escribe leerpuerto(config) que exija la clave puerto, la convierta a entero y compruebe que esté entre 1 y 65535. Cada problema debe lanzar una ErrorDeConfiguracion disti…

Errores y archivos Abrir
Completar Python

Completa el manejo de la conversión

texto = "42" try: valor = int(texto) ValueError: print("no es un número") : print("conversión correcta:", valor)

Errores y archivos Abrir
Evaluación Python

Evaluación · Errores y excepciones

En un bloque try/except/else/finally, ¿cuándo se ejecuta else?

Errores y archivos Abrir
Evaluación Python

Evaluación · Errores y excepciones

¿Qué diferencia hay entre except ValueError: y except:?

Errores y archivos Abrir
Evaluación Python

Evaluación · Errores y excepciones

Una función lanza EdadInvalida, que hereda de ErrorDeValidacion, que hereda de Exception. ¿Qué cláusula la captura en try/except ErrorDeValidacion?

Errores y archivos Abrir
Ejercicio Python

Diario con resumen en JSON

Crea diario.txt con cuatro líneas, una por día, y vuelve a leerlo línea por línea. Cuenta cuántas líneas tiene, guarda la más larga y escribe ambas cifras en resumen.json…

Errores y archivos Abrir
Ejercicio Python

Informe por producto desde un CSV

Parte de un ventas.csv con columnas producto,unidades,precio. Calcula el importe total por producto, guárdalo en informe.json ordenado por clave e imprime el resultado. S…

Errores y archivos Abrir
Completar Python

Completa el guardado y la lectura

import json with ("datos.json", "w", encoding="utf-8") as f: json.(datos, f, ensureascii=False, indent=2) with open("datos.json", encoding="utf-8") as f: recuperado = jso…

Errores y archivos Abrir
Evaluación Python

Evaluación · Archivos, JSON y CSV

Abres un archivo existente con open("datos.txt", "w"). ¿Qué ocurre en ese instante?

Errores y archivos Abrir
Evaluación Python

Evaluación · Archivos, JSON y CSV

¿Por qué with open(...) as f es preferible a f = open(...) seguido de f.close()?

Errores y archivos Abrir
Evaluación Python

Evaluación · Archivos, JSON y CSV

Lees un CSV con csv.DictReader y ejecutas int(fila["unidades"]) 120. La columna contiene "3". ¿Por qué hace falta int()?

Errores y archivos Abrir
Ejercicio Python

Sensor infinito con límite

Escribe un generador lecturas(inicio) que produzca temperaturas sin fin, subiendo 1.5 grados en cada paso, y usa itertools.islice para imprimir solo las cinco primeras. C…

Python avanzado Abrir
Ejercicio Python

Pipeline de tres etapas

Parte de una lista de diccionarios de ventas con producto, sede, unidades y precio. Construye tres generadores encadenados: uno filtra por sede, otro calcula el importe d…

Python avanzado Abrir
Completar Python

Completa el generador de pares

def pares(limite): n = 0 while n <= limite: n cede el valor y se suspende n += 2 for valor in pares(4): print()

Python avanzado Abrir
Evaluación Python

Evaluación · Iteradores y generadores

¿Qué hace exactamente yield valor dentro de una función?

Python avanzado Abrir
Evaluación Python

Evaluación · Iteradores y generadores

Tienes g = (x for x in range(3)) y ejecutas list(g) dos veces. ¿Qué obtienes?

Python avanzado Abrir
Evaluación Python

Evaluación · Iteradores y generadores

¿Cuál de estas estructuras mantiene un uso de memoria constante al recorrer un millón de registros?

Python avanzado Abrir
Ejercicio Python

Contador de llamadas

Escribe un decorador contarllamadas que lleve la cuenta de cuántas veces se invoca cada función y lo muestre antes del resultado. El contador debe sobrevivir entre llamad…

Python avanzado Abrir
Ejercicio Python

Decorador con parámetros

Crea @repetir(n), un decorador que llame a la función n veces y devuelva la lista de resultados. Úsalo con una función sin argumentos y con otra que reciba uno. Después p…

Python avanzado Abrir
Completar Python

Completa el decorador

import functools def saludar(func): @functools.(func) def envoltura(args, kwargs): print("inicio") return (args, kwargs) return envoltura

Python avanzado Abrir
Evaluación Python

Evaluación · Closures y decoradores

¿Qué significa exactamente escribir @cronometrar encima de def tarea():?

Python avanzado Abrir
Evaluación Python

Evaluación · Closures y decoradores

¿Por qué la envoltura se escribe con def envoltura(args, kwargs)?

Python avanzado Abrir
Evaluación Python

Evaluación · Closures y decoradores

Aplicas @registrar sobre @reintentar(3) sobre def descargar(). ¿Qué se ejecuta primero al llamar a descargar()?

Python avanzado Abrir
Ejercicio Python

Producto inmutable y validado

Crea una dataclass Producto con nombre: str, precio: float y stock: int. Debe ser inmutable, rechazar precios negativos con ValueError, ofrecer una propiedad disponible q…

Python avanzado Abrir
Ejercicio Python

Tipar un resumen de notas

Escribe promedio(notas: list[float]) -> float que devuelva 0.0 si la lista está vacía y el promedio redondeado a dos decimales en caso contrario. Añade una dataclass Estu…

Python avanzado Abrir
Completar Python

Completa la dataclass

from dataclasses import dataclass, field @dataclass class Curso: nombre: str notas: [float] = field(defaultfactory=list) def promedio(self) -> return round(sum(self.notas…

Python avanzado Abrir
Evaluación Python

Evaluación · Type hints y dataclasses

¿Qué ocurre en tiempo de ejecución con def f(x: int) -> str: si llamas f("hola")?

Python avanzado Abrir
Evaluación Python

Evaluación · Type hints y dataclasses

¿Qué significa Optional[float] en una anotación de retorno?

Python avanzado Abrir
Evaluación Python

Evaluación · Type hints y dataclasses

¿Por qué alumnos: list = [] falla dentro de una dataclass?

Python avanzado Abrir
Ejercicio Python

Un módulo con guardián

Crea temperaturas.py con dos funciones: caf(celsius) y fac(fahrenheit). Añade un bloque if name == "main": que imprima la conversión de 25 °C y de 212 °F. Ejecuta el arch…

Python avanzado Abrir
Ejercicio Python

Convertir un script en módulo reutilizable

Tienes un script que calcula estadísticas de ventas e imprime todo al ejecutarse. Sepáralo: crea analisis.py con una función resumen(ventas) que devuelva un diccionario c…

Python avanzado Abrir
Completar Python

Completa los imports

import as st from math import datos = [2, 4, 6] print((datos)) print(sqrt(81))

Python avanzado Abrir
Evaluación Python

Evaluación · Módulos, paquetes y entornos virtuales

Importas el mismo módulo en dos archivos distintos del programa. ¿Qué ocurre?

Python avanzado Abrir
Evaluación Python

Evaluación · Módulos, paquetes y entornos virtuales

¿Qué imprime print(name) cuando ejecutas python3 conversiones.py directamente?

Python avanzado Abrir
Evaluación Python

Evaluación · Módulos, paquetes y entornos virtuales

¿Qué problema resuelve un entorno virtual?

Python avanzado Abrir
Ejercicio Python

Probar un límite con parametrización

Escribe testedad.py para una función esmayordeedad(edad) que devuelve True desde los 18 años. Cubre el límite con parametrize (17, 18 y 65) y añade una prueba de que un t…

Python avanzado Abrir
Ejercicio Python

Registrar un cálculo con errores controlados

Crea factura.py con totalfactura(cantidad, precio). Si cantidad es menor o igual que cero, lanza ValueError con un mensaje que incluya el valor. Si es válida, registra el…

Python avanzado Abrir
Completar Python

Completa la configuración de logging

import logging logging.basicConfig(level=logging., format="%(levelname)s %(message)s") log = logging.getLogger() log.("inicio del proceso")

Python avanzado Abrir
Evaluación Python

Evaluación · Testing, logging y debugging

Ejecutas un script con python3 -O que contiene assert cantidad > 0. ¿Qué ocurre si cantidad vale 0?

Python avanzado Abrir
Evaluación Python

Evaluación · Testing, logging y debugging

Creas pruebasprecio.py con una función def probarprecio(): y ejecutas pytest. ¿Qué ocurre?

Python avanzado Abrir
Evaluación Python

Evaluación · Testing, logging y debugging

Un guardado de informe falla y el proceso puede continuar con el siguiente informe. ¿Qué nivel de log es el más adecuado?

Python avanzado Abrir
Ejercicio Python

Tres descargas con un pool de hilos

Usa ThreadPoolExecutor para simular tres descargas de un segundo cada una con time.sleep. Recoge los resultados en una lista con pool.map e imprime cuántos segundos tardó…

Python avanzado Abrir
Ejercicio Python

Cancelar una consulta lenta

Escribe una corrutina consultar(nombre, segundos) que espere y devuelva un texto. Desde main, envuélvela con asyncio.waitfor(..., timeout=0.5) para una consulta de dos se…

Python avanzado Abrir
Completar Python

Completa la corrutina

import asyncio def consultar(nombre): print("consultando", nombre) asyncio.sleep(1) async def main(): await asyncio.(consultar("a"), consultar("b")) asyncio.run(main())

Python avanzado Abrir
Evaluación Python

Evaluación · Concurrencia, multiprocessing y asyncio

¿Qué implica el GIL de CPython en la práctica?

Python avanzado Abrir
Evaluación Python

Evaluación · Concurrencia, multiprocessing y asyncio

Tienes que redimensionar 500 imágenes y la operación tarda 200 ms de CPU en cada una. ¿Qué modelo conviene?

Python avanzado Abrir
Evaluación Python

Evaluación · Concurrencia, multiprocessing y asyncio

Dentro de una corrutina llamas a time.sleep(3) en lugar de await asyncio.sleep(3). ¿Qué ocurre?

Python avanzado Abrir
Ejercicio Python

Analizar notas sin bucles

Crea un ndarray con las notas 10, 14, 18, 8, 16. Calcula la media, la nota máxima y cuántas aprueban con umbral 13 usando una máscara booleana. Después suma 2 puntos solo…

Python para ciencia de datos Abrir
Ejercicio Python

Centrar y predecir con producto matricial

Parte de una matriz X de 3 × 2, réstale la media de cada columna con broadcasting y calcula y = Xc @ w + b con w = [0.5, -1.0] y b = 2.0. Imprime la matriz centrada, las …

Python para ciencia de datos Abrir
Completar Python

Completa el análisis de una matriz

import numpy as np X = np.array([[1, 2], [3, 4], [5, 6]]) print(X.) print(X[:, ]) print(X.(axis=0))

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · NumPy: vectores, matrices y vectorización

¿Cuál es el shape de np.array([[1, 2, 3], [4, 5, 6]])?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · NumPy: vectores, matrices y vectorización

X tiene shape (4, 3) y media tiene shape (3,). ¿Qué hace X - media?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · NumPy: vectores, matrices y vectorización

Modificas col = X[:, 0] con col[0] = 99. ¿Qué pasa con X?

Python para ciencia de datos Abrir
Ejercicio Python

Resumen de una Series

Crea una Series llamada unidades con los valores 120, 80, 45 y 95, usando como índice los productos café, té, jugo y agua. Muestra el total, la media redondeada a dos dec…

Python para ciencia de datos Abrir
Completar Python

Completa el filtro y el resumen

import pandas as pd df = pd.readcsv("ventas.csv") lima = df[df[""] == "Lima"] promedio = lima["ingreso"].() resumen = df.groupby("sede")["ingreso"].() print(promedio, res…

Python para ciencia de datos Abrir
Ejercicio Python

Nulos y total por sede

Parte de una tabla de pedidos con columnas cliente, sede y monto, donde un monto es None. Rellena ese hueco con la mediana, calcula el total por sede y muestra cuántos pe…

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Pandas: Series y DataFrames

¿Qué diferencia hay entre df.loc[2] y df.iloc[2]?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Pandas: Series y DataFrames

Después de df["ingreso"] = df["unidades"] df["precio"], ¿qué se guarda en la nueva columna?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Pandas: Series y DataFrames

Tienes pedidos de una sede que no aparece en el catálogo y usas merge(..., how="left"). ¿Qué ocurre?

Python para ciencia de datos Abrir
Ejercicio Python

Diagnóstico y limpieza mínima

Con una tabla de seis pedidos donde ciudad tiene dos nulos y hay una fila repetida, muestra cuántas filas, nulos y duplicados hay. Después normaliza ciudad con strip y ti…

Python para ciencia de datos Abrir
Completar Python

Completa la limpieza

df["ciudad"] = df["ciudad"].str.strip().str.() df["monto"] = df["monto"].fillna(df["monto"].()) df = df.(subset=["pedido"])

Python para ciencia de datos Abrir
Ejercicio Python

Detectar extremos con el rango intercuartílico

Usa los quince montos de la matriz: 120, 135, 128, 95, 110, 102, 4200, 130, 125, 210, 198, 205, 150, 160 y 155. Calcula el primer cuartil, el tercero, el rango intercuart…

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Limpieza de datos

¿Qué hace df.dropna() sin argumentos?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Limpieza de datos

Tienes df["monto"].fillna(0) sin asignar el resultado. ¿Qué ocurre?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Limpieza de datos

¿Por qué conviene normalizar el texto antes de eliminar duplicados?

Python para ciencia de datos Abrir
Ejercicio Python

Barras con referencia

Dibuja un gráfico de barras con las unidades vendidas de café, té, jugo y agua: 120, 80, 45 y 95. Añade título, etiqueta del eje vertical con la unidad, una línea horizon…

Python para ciencia de datos Abrir
Completar Python

Completa el gráfico

fig, ax = plt.(figsize=(6, 3)) ax.(meses, ventas) ax.set("Ventas mensuales") fig.savefig("ventas.png", dpi=150)

Python para ciencia de datos Abrir
Ejercicio Python

Detectar una distribución sesgada

Con los montos 12, 15, 18, 20, 22, 25, 30 y 95, dibuja un histograma y un diagrama de caja en dos subplots. Calcula la media y la mediana, y explica en una línea por qué …

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Matplotlib y Seaborn

¿Qué devuelve plt.subplots(2, 2)?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Matplotlib y Seaborn

Tienes ventas de cuatro productos sin relación temporal. ¿Qué gráfico responde mejor a «cuál vende más»?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Matplotlib y Seaborn

Un gráfico de barras empieza el eje vertical en 95 en lugar de 0. ¿Qué efecto tiene?

Python para ciencia de datos Abrir
Ejercicio Python

El efecto de un valor extremo

Con los montos 12, 15, 18, 20, 22, 25, 30 y 95, calcula media, mediana, desviación estándar y rango intercuartílico. Repite el cálculo sin el valor 95 y compara. Explica …

Python para ciencia de datos Abrir
Completar Python

Completa el resumen

promedio = df["nota"].() mediana = df["nota"].() dispersion = df["nota"].(ddof=1) print(promedio, mediana, dispersion)

Python para ciencia de datos Abrir
Ejercicio Python

Una correlación que un punto destruye

Calcula la correlación entre horas de estudio 2, 4, 6, 8 y 10 y notas 10, 11, 14, 15 y 18. Después añade el par (10, 8), un estudiante que estudió mucho y rindió mal, y v…

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Estadística y análisis exploratorio

Diez clientes gastan 10, 10, 10, 10, 10, 10, 10, 10, 10 y 500 soles. ¿Qué medida describe mejor el gasto típico?

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Estadística y análisis exploratorio

Una correlación de Pearson de −0.85 entre precio y unidades vendidas indica que…

Python para ciencia de datos Abrir
Evaluación Python

Evaluación · Estadística y análisis exploratorio

df["monto"].std() devuelve 2.25 y numpy.std(df["monto"]) devuelve 2.11. ¿Por qué?

Python para ciencia de datos Abrir
Ejercicio Python

Separa características y etiqueta

Tienes cinco correos descritos por dos columnas —palabras sospechosas y remitente conocido— y una tercera que indica si es spam. Construye X e y con comprensiones de list…

Python para Machine Learning Abrir
Ejercicio Python

Diseña las tres particiones

Simula 1000 clientes con X = [[i] for i in range(1000)]. Reserva el 20 % como test y, del resto, un 25 % como validación. Imprime cuántos quedan en cada conjunto y coment…

Python para Machine Learning Abrir
Completar Python

Completa la división

from sklearn.modelselection import traintestsplit Xtrain, Xtest, ytrain, ytest = traintestsplit( X, , testsize=, randomstate=42 ) print(len(Xtrain), len(Xtest))

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Fundamentos de Machine Learning

En un problema supervisado, ¿qué representa y?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Fundamentos de Machine Learning

Reservas el 20 % de los datos como test. ¿Qué mides con ellos?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Fundamentos de Machine Learning

Tu modelo acierta el 99 % en entrenamiento y el 61 % en test. ¿Qué es lo más probable?

Python para Machine Learning Abrir
Ejercicio Python

Evalúa una recta dada

Para los puntos (1, 3), (2, 4) y (3, 8), calcula las predicciones del modelo ŷ = 2x + 1, los residuos, el MSE y el MAE. Imprime los tres residuos y las dos métricas redon…

Python para Machine Learning Abrir
Ejercicio Python

De la puntuación a la decisión

Escribe una función sigmoide(z) y clasifica con umbral 0.5 los valores z = -1, 0 y 3. Imprime la probabilidad redondeada a tres decimales y la decisión «aprueba» o «no ap…

Python para Machine Learning Abrir
Completar Python

Completa las métricas

errores = [yi - pi for yi, pi in zip(y, pred)] mse = sum(e 2 for e in errores) / mae = sum(abs(e) for e in errores) / len(errores) print("MSE:", round(, 2)) print("MAE:",…

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Regresión lineal y logística

¿Qué eligen los mínimos cuadrados al ajustar una recta?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Regresión lineal y logística

Un modelo tiene MSE = 0.48 y MAE = 0.64. ¿Qué indica la diferencia?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Regresión lineal y logística

En una regresión logística con umbral 0.5, un caso recibe probabilidad 0.62. ¿Qué ocurre?

Python para Machine Learning Abrir
Ejercicio Python

Compara dos divisiones

En el mismo nodo raíz de ocho estudiantes (cuatro y cuatro), calcula la ganancia de dividir por horas <= 3.5, que deja [0, 0, 0, 0, 1, 1] a la izquierda y [1, 1] a la der…

Python para Machine Learning Abrir
Ejercicio Python

El precio de una pregunta

Entrena dos árboles, uno con maxdepth=1 y otro con maxdepth=3, sobre los ocho estudiantes. Imprime la exactitud de entrenamiento de cada uno redondeada a dos decimales y …

Python para Machine Learning Abrir
Completar Python

Completa la impureza

def gini(etiquetas): p = sum(etiquetas) / len(etiquetas) return 1 - (p 2 + ( - p) 2) nodo = [1, 1, 1, 0] print(round(gini(nodo), 3))

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Árboles de decisión y Random Forest

Un nodo contiene 6 ejemplos de la clase 1 y 2 de la clase 0. ¿Cuál es su Gini?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Árboles de decisión y Random Forest

¿Qué hace el bagging en un Random Forest?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Árboles de decisión y Random Forest

Tu árbol acierta 1.0 en entrenamiento y 0.68 en validación. ¿Qué harías primero?

Python para Machine Learning Abrir
Ejercicio Python

Asigna cuatro puntos

Con centroides en (1.5, 1.5) y (8.5, 8.5), asigna los puntos (1, 1), (2, 2), (8, 8) y (9, 9) calculando distancias. Imprime la etiqueta y la distancia al centroide elegid…

Python para Machine Learning Abrir
Ejercicio Python

Calcula la inercia

Con los seis puntos de la lección y los centroides exactos (4/3, 4/3) y (19/3, 17/3), calcula la inercia sin usar scikit-learn: suma la distancia al cuadrado de cada punt…

Python para Machine Learning Abrir
Completar Python

Completa el clustering

from sklearn.cluster import KMeans modelo = KMeans(nclusters=, ninit=10, randomstate=0) modelo.fit(puntos) print("etiquetas:", ) print("inercia:", round(modelo.inertia, 2…

Python para Machine Learning Abrir
Evaluación Python

Evaluación · K-Means y aprendizaje no supervisado

¿Qué hace K-Means en el paso de actualización?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · K-Means y aprendizaje no supervisado

La inercia baja de 68.33 a 2.67 al pasar de k = 1 a k = 2, y a 1.83 con k = 3. ¿Qué sugiere el codo?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · K-Means y aprendizaje no supervisado

Agrupas ingresos (0 a 100 000) y edad (18 a 80) sin escalar. ¿Qué ocurre?

Python para Machine Learning Abrir
Ejercicio Python

Leer una matriz ajena

Un modelo de fraude deja esta matriz sobre 1 000 transacciones: TN 870, FP 40, FN 60, TP 30. Calcula accuracy, precision, recall y F1, y responde qué porcentaje de fraude…

Python para Machine Learning Abrir
Completar Python

Completa la validación cruzada

from sklearn.modelselection import crossvalscore puntajes = crossvalscore(modelo, X, y, cv=, scoring=) print(puntajes.mean(), puntajes.std())

Python para Machine Learning Abrir
Ejercicio Python

Pipeline sin fugas y decisión razonada

Con el conjunto de cáncer de mama, construye un Pipeline con StandardScaler y LogisticRegression, evalúalo con 5 pliegues usando F1 y AUC e imprime media y desviación. Ex…

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Validación y evaluación de modelos

Un modelo predice «sano» para todos los pacientes de un conjunto donde solo el 5 % está enfermo. ¿Qué ocurre?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Validación y evaluación de modelos

Un filtro borra automáticamente los correos que clasifica como spam. ¿Qué error conviene vigilar primero?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Validación y evaluación de modelos

¿Cuál de estas prácticas produce fuga de datos?

Python para Machine Learning Abrir
Ejercicio Python

Contar parámetros antes de entrenar

Construye con nn.Sequential una red Linear(3, 8) → ReLU → Linear(8, 1). Calcula a mano cuántos parámetros entrenables tiene y compruébalo con sum(p.numel() for p in model…

Python para Machine Learning Abrir
Completar Python

Completa el paso de entrenamiento

for xb, yb in cargador: optimizador.() perdida = criterio(modelo(xb), yb) perdida.() optimizador.()

Python para Machine Learning Abrir
Ejercicio Python

Guardar el mejor modelo

Modifica el bucle del perceptrón multicapa para calcular también la pérdida de validación al final de cada época. Guarda el statedict solo cuando esa pérdida mejore e imp…

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Redes neuronales con PyTorch

¿Qué hace exactamente loss.backward()?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Redes neuronales con PyTorch

¿Cuál es la forma de salida de nn.Linear(4, 5) aplicada a un lote de forma (3, 4)?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · Redes neuronales con PyTorch

¿Por qué hay que llamar a optimizador.zerograd() en cada iteración?

Python para Machine Learning Abrir
Ejercicio Python

Tokenizar y medir el desperdicio

Tokeniza estas tres frases con distilbert-base-uncased: «the cat sat», «machine learning is fun and useful» y «unbelievably». Imprime el número de ids de cada una (sin re…

Python para Machine Learning Abrir
Completar Python

Prepara un lote heterogéneo

lote = tok(frases, padding=, truncation=, maxlength=512, returntensors="pt") print(lote["inputids"].shape)

Python para Machine Learning Abrir
Ejercicio Python

Similitud entre tres frases

Con sentence-transformers/all-MiniLM-L6-v2, codifica tres frases: dos sobre el mismo tema y una sobre otro. Normaliza los vectores y calcula la matriz de similitud coseno…

Python para Machine Learning Abrir
Evaluación Python

Evaluación · NLP, embeddings y Transformers

¿Por qué un tokenizador parte «transformers» en varios tokens?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · NLP, embeddings y Transformers

En una matriz de atención, ¿qué significa que una fila sume 1?

Python para Machine Learning Abrir
Evaluación Python

Evaluación · NLP, embeddings y Transformers

¿Cuál es la diferencia central entre preentrenamiento y fine-tuning?

Python para Machine Learning Abrir
Ejercicio Python

Endpoint de lote

Añade POST /predict/lote que reciba un objeto con una lista items de entre 1 y 50 departamentos y devuelva los precios en el mismo orden, junto con la versión del modelo.…

Proyectos reales Abrir
Ejercicio Python

Comparar el modelo con una línea base

Antes de creer en un R2, compáralo con algo trivial. Usa DummyRegressor(strategy="mean") sobre el mismo Xtrain y calcula su MAE en el conjunto de prueba. Añade el resulta…

Proyectos reales Abrir
Completar Python

Completa el endpoint

@app.("/predict", responsemodel=Prediccion) def predecir(departamento: Departamento) -> Prediccion: if modelo is : raise HTTPException(statuscode=503, detail="El modelo n…

Proyectos reales Abrir
Evaluación Python

Evaluación · Proyecto: predicción y API con FastAPI

¿Por qué conviene serializar el Pipeline completo en lugar de solo el regresor?

Proyectos reales Abrir
Evaluación Python

Evaluación · Proyecto: predicción y API con FastAPI

Un cliente envía {"distrito":"Lince","aream2":-5,"habitaciones":1,"antiguedad":10}. ¿Qué ocurre?

Proyectos reales Abrir
Evaluación Python

Evaluación · Proyecto: predicción y API con FastAPI

¿Qué ventaja aporta handleunknown="ignore" en el OneHotEncoder?

Proyectos reales Abrir
Ejercicio Python

Prueba de humo al arrancar

Escribe verificararranque(modelo): predice un caso conocido —85 m², 2 habitaciones, 12 años, Miraflores— y comprueba que el resultado cae entre 300 y 5000 USD. Si no, lan…

Proyectos reales Abrir
Ejercicio Python

Informe de drift por columna

Amplía monitor/drift.py con informe(referencia, produccion, umbral): recorre las columnas numéricas, aplica la prueba y devuelve una lista de diccionarios. Añade el porce…

Proyectos reales Abrir
Completar Python

Completa el Dockerfile

FROM WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r COPY api ./api COPY models ./models EXPOSE 8000 CMD ["uvicorn", "api.main:app", "--host", "0.0…

Proyectos reales Abrir
Evaluación Python

Evaluación · Despliegue de modelos en producción

¿Dónde debe vivir la ruta del artefacto y la versión del modelo en producción?

Proyectos reales Abrir
Evaluación Python

Evaluación · Despliegue de modelos en producción

El contenedor arranca, pero curl desde tu máquina no conecta. El log dice Uvicorn running on http://127.0.0.1:8000. ¿Cuál es la causa?

Proyectos reales Abrir
Evaluación Python

Evaluación · Despliegue de modelos en producción

En la prueba de Kolmogorov-Smirnov, ¿qué indica un p-valor menor que el umbral?

Proyectos reales Abrir