Clases particulares de Informática para ingenierías y ciencias

¿Tienes Informática, Fundamentos de Informática o Informática Aplicada en una ingeniería o en un grado de ciencias, con Python, MATLAB o C? Dime qué asignaturas cursas y te diré si puedo ayudarte. Sin permanencia, y con una clase de prueba gratuita.

Qué asignaturas son

Esta página es para las asignaturas que se llaman así, o parecido:

  • Informática
  • Fundamentos de Informática
  • Informática Aplicada
  • Informática Aplicada a la Química
  • Informática para la Ingeniería
  • Informática y Programación
  • Herramientas Informáticas para las Matemáticas

La tienen en primero de Ingeniería Industrial, Mecánica, Eléctrica, Química, Aeroespacial, de la Energía, de Organización Industrial y Biomédica, y en Bioingeniería, Biotecnología, Química, Física y Matemáticas.

Cómo trabajamos

Trabajamos sobre tu material: los ejercicios, los apuntes y los exámenes de otros años de tu asignatura. El material puede estar en cualquier idioma; la clase es en castellano.

En estas asignaturas el problema casi nunca es la ingeniería, sino traducirla a código. Por eso escribimos el programa juntos, paso a paso, en el lenguaje que te pidan, y cuando un bucle o un índice no se ve claro en la pantalla, hago la traza en la pizarra.

Puedes venir a clases sueltas para un tema concreto o seguir todo el curso, y llevar varias asignaturas a la vez. Si no has programado nunca, partimos de cero. Y si se acerca el examen y me lo pides, hacemos una preparación intensiva con exámenes anteriores.

En qué trabajamos más

  • Lo básico de programar, en el lenguaje que te toque: variables, condicionales, bucles, funciones, y vectores y matrices.
  • Python: listas, funciones, ficheros y clases, NumPy para vectores y matrices, y cuadernos de Jupyter.
  • MATLAB: scripts y funciones .m, operaciones con matrices, cadenas y celdas, gráficas con plot y fplot, y ecuaciones y EDO con solve, dsolve y ode45. Si no tienes licencia, casi todo funciona igual en Octave.
  • C: printf y scanf, switch, tablas de una y de varias dimensiones, cadenas (rehacer strlen, strcpy y strcmp a mano), estructuras y ficheros.
  • Métodos numéricos programados: bisección, eliminación gaussiana con sustitución regresiva, interpolación e integración numérica.
  • Algoritmos clásicos: ordenación por burbuja y por inserción, y simulaciones en una rejilla, como el juego de la vida o contar los vecinos de una casilla.

Si tu asignatura es entera de métodos numéricos (errores, ecuaciones no lineales, sistemas, interpolación…), mira Métodos Numéricos.

Si estás en Informática o en un grado con una Programación I más larga, en Python o en Java, mira Fundamentos de Programación.

Errores típicos

  • Leer caracteres con `scanf("%c", …)` dentro de un bucle. Lee también el salto de línea que dejó la lectura anterior, y el programa parece saltarse preguntas. Se arregla con un espacio delante: " %c".
  • Olvidar el `&` en `scanf`, o usar un formato que no corresponde: %d para un double, o %f en vez de %lf al leer un double.
  • Equivocarse de índice al cambiar de lenguaje. MATLAB empieza a contar en 1; C y Python, en 0. Quien usa dos a la vez falla en la primera o en la última vuelta del bucle.
  • Comparar textos con `==` en MATLAB. 'Abc' == 'abc' compara letra a letra y devuelve un vector; para textos se usa strcmp.
  • La división entera en C: 5 / 2 vale 2, y una media calculada con enteros sale truncada sin ningún aviso.
  • En un método numérico, parar solo por número de iteraciones sin mirar la tolerancia, o comparar dos números reales con ==.

Un ejemplo: la cadena complementaria de ADN en C

Leer seis bases de una cadena de ADN y escribir su cadena complementaria, cambiando A por T y C por G. Es un ejemplo en C.

#include <stdio.h>

#define N 6

/* Devuelve la base complementaria: A con T y C con G. */
char complementaria(char base) {
    switch (base) {
        case 'A': return 'T';
        case 'T': return 'A';
        case 'C': return 'G';
        case 'G': return 'C';
        default:  return '?';          /* no es una base válida */
    }
}

int main(void) {
    char cadena[N];
    int i;

    printf("Escribe %d bases (A, T, C o G): ", N);
    for (i = 0; i < N; i++) {
        scanf(" %c", &cadena[i]);      /* el espacio salta espacios y saltos de línea */
    }

    printf("Complementaria: ");
    for (i = 0; i < N; i++) {
        printf("%c", complementaria(cadena[i]));
    }
    printf("\n");
    return 0;
}

La función complementaria resuelve una sola base con un switch, y main la aplica a cada posición de la tabla. Si escribes ATGCCA, el programa responde TACGGT. El espacio de " %c" es importante: sin él, scanf lee también los saltos de línea y el programa parece saltarse bases.

En la pizarra: la ordenación de burbuja, pasada a pasada

La lista 1, 3, 2, 5, 2 ordenada por el método de la burbuja. En cada pasada se comparan parejas vecinas (en rojo y azul) y se intercambian si están desordenadas, así que el mayor de lo que queda acaba al final, en verde. Con n = 5 bastan las pasadas i = 0 a n − 2 = 3; la fila i = 4 solo enseña la lista ya ordenada. Es la pizarra de una clase real.

Pizarra de clase: traza de la ordenación de burbuja sobre la lista 1 3 2 5 2. En la pasada i = 0 se comparan las parejas vecinas una a una hasta que el 5 llega al final; las pasadas i = 1, 2 y 3 dejan la lista 1 2 2 3 5, con la parte ya ordenada en verde, y una última fila, i = 4, la repite ya ordenada

Opiniones de alumnos de programación

Son reseñas de mi perfil de ClassGap, una plataforma de clases particulares: las ponen allí, sin que yo las controle, y las he clasificado por área según la asignatura de cada una.

Cargando opiniones…

Preguntas frecuentes

Estudio una ingeniería o un grado de ciencias, no Informática. ¿Estas clases son para mí?
Sí: es justo el perfil de esta página. En estas asignaturas se aprende a programar para resolver problemas de tu carrera, y las clases van por ahí, con los ejercicios de tu asignatura.
Mi asignatura es en MATLAB. ¿Necesito tenerlo instalado?
Yo doy la clase con MATLAB. Si no tienes licencia, puedes seguirla con Octave, que es gratuito y compatible con casi todo lo que se ve en estas asignaturas.
¿Vemos también la parte de métodos numéricos?
Sí: bisección, sistemas de ecuaciones, interpolación e integración, programados en Python, MATLAB o C. Si tu asignatura es entera de métodos numéricos, mira la página de Métodos Numéricos.
¿Me ayudas con mis prácticas y entregas?
Sí. Vemos juntos qué te piden, cómo plantearlo y dónde te atascas, y reviso lo que vayas haciendo.

Pedir una clase de prueba gratuita