j_sulz

Estoy a la mitad del programa de Ciencias de la Computación Post-Bacc de la Universidad Estatal de Oregón. Es un guante (ligeramente) extenuante de 15 cursos, hecho más extenuante por el hecho de que he estado trabajando a tiempo completo y tomando dos cursos por trimestre (con una excepción hecha para este verano pasado cuando sólo un curso estaba en el expediente para darme algo de tiempo para casarse 🙂 ). Hasta la fecha, he tomado, o estoy tomando, los siguientes cursos (en ningún orden en particular):

  • Introducción a la Informática I
  • Introducción a la Informática II
  • Estructuras Discretas en Informática
  • Estructuras de Datos
  • Desarrollo Web
  • Introducción a las Bases de Datos
  • Arquitectura de Computadores&Lenguaje Ensamblador
  • Análisis de Algoritmos
  • Sistemas Operativos (actualmente en curso)
  • Ingeniería de Software I (actualmente en curso)

Y tengo las siguientes clases por delante:

  • Ingeniería de Software II
  • Introducción a la Ingeniería de Usabilidad
  • Intro a las Redes de Computadores
  • Desarrollo de Software Móvil y en la Nube
  • Proyectos de Software (Capstone del Programa)

Como en cualquier programa diseñado para enseñar a un grupo diverso de estudiantes, todos con diferentes estilos de aprendizaje y que vienen de diferentes orígenes, la calidad y dificultad del curso varía. En mi opinión, los cursos más interesantes han sido también los que considero más difíciles.

Introducción a la Informática II estaba aparentemente diseñada para eliminar a los estudiantes que no eran buenos programadores. El curso se centró en la escritura de código (C++ es el lenguaje principal utilizado en el programa de la OSU y fue muy destacado aquí) con un enfoque en los patrones de diseño orientado a objetos.

Estructuras discretas en Ciencias de la Computación probablemente habría sido más fácil si mis músculos de álgebra y escritura de pruebas no estuvieran tan oxidados. Sin embargo, una vez que has entrado en calor, el curso es un fascinante ejercicio de razonamiento inductivo y una sólida introducción a la teoría de conjuntos y grafos. Este curso ha demostrado ser especialmente útil ya que investigo disciplinas relacionadas con la inteligencia artificial que son pesadas en los tipos de simbología que se introducen en esta clase.

Arquitectura de Computadores & El lenguaje ensamblador es un viaje. Mientras que C++ te expone a conceptos como punteros y asignación de memoria – cosas que la mayoría de los lenguajes abstraen – el ensamblador es una bestia diferente. Aquí se aprende a mover la memoria en la CPU y a ver cómo se construyen los bucles, las sentencias condicionales y las funciones desde el principio. También se introduce el ciclo de búsqueda, decodificación y ejecución que utilizan todos los CISC. En resumen, se aprende qué es un ordenador y cómo hace todas las cosas bonitas que damos por sentadas.

Análisis de Algoritmos fue, conceptualmente, el curso más difícil del programa. La carga de trabajo era más ligera que la de Introducción a la Informática II, pero la última vez que miré los límites y las derivadas fue en la universidad. Volví a encontrarme con Khan Academy en los fines de semana para repasar el cálculo, pero una vez que los fundamentos estaban abajo, era a las carreras. Este curso fue el primero en el que me sentí como un “informático”, ya que los conceptos requieren una forma de pensar abstracta que va más allá de “sólo” programar o escribir software. Aquí, se puede ver la notación Big-O y el análisis de algoritmos, la programación dinámica, la teoría de la complejidad, la teoría de grafos y los algoritmos, y los algoritmos clásicos de búsqueda y ordenación. La calidad del curso en sí deja algo que desear, pero los temas son realmente hermosos.

Los otros cursos no son “malos”, per se, pero o bien carecen del rigor o la profundidad de los otros cursos o la organización / conferencia / trabajo del curso es tan pobre como para distraer. Dicho esto, cada curso tiene sus propias pepitas de contenido interesante, y lo más importante, el acto continuo de resolver problemas es clave para aprender a ser un “desarrollador”, “ingeniero”, “informático” (o como quieras llamar a alguien que mueve bits a gran velocidad).

¡Y ahora estoy en la recta final! En los próximos tres trimestres terminaré 7 cursos, con la mayoría de las asignaturas pendientes (ingeniería de usabilidad, ingeniería de software, computación en la nube), todas ellas cosas que están en mi terreno. En agosto de este año, voy a ser el orgulloso propietario de una licenciatura en C.S. de la Universidad Estatal de Oregón y pasar a la Maestría en C.S. de Georgia Tech. El compromiso de tiempo de este programa ha sido estresante a veces, pero no cambiaría esta experiencia por nada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.