Clases de programación

Aquí puede encontrar diferentes materiales empleandos para dar clases de programación.

El principal objetivo de mis clases es enseñar a programar, empleando como instrumento práctico un entorno UNIX como sistema operativo, el lenguaje de programación C como lenguaje imperativo, y C++ como lenguaje orientado a objetos.

Las clases pretenden ser eminentemente prácticas. Aun así se intenta aportar una mínima base teórica.

Es posible que un autodidacta pueda aprender a programar con los materiales disponibles en esta página, aunque no todos los contenidos de las clases se encuentran aquí. Intentaré, en la medida de lo posible, ir añadiendo todo lo que falta. No obstante se echará en falta un profesor, ya que no siempre las cosas están lo suficientemente claras en los documentos. En ese caso mi correo está disponible: intentaré resolver dudas puntuales.

Materiales

Los materiales están en el orden que considero más adecuado para enfrentarse a los contenidos. Claro que algunas partes se pueden saltar (si, por ejemplo, no disponemos de un sistema UNIX para trabajar, la introducción a UNIX no tendrá mucho sentido para nosotros).

El formato elegido para los documentos es el Portable Document Format (PDF). Gracias a su portabilidad no debe haber problemas para imprimir los documentos en cualquier plataforma de una forma aceptable. Si no dispone de un visor, puede descargar el visor gratuito que ofrece Adobe.

Los documentos se pueden descargar comprimidos con gzip (GZ, hay un descompresor aquí) o Info-ZIP (ZIP, hay un descompresor aquí). También emplearé ocasionalmente documentos en texto plano para ejemplos, ejercicios, etc.

  1. Introducción a UNIX (08/02/03) [ gz | zip ]

    Contenidos

    1. Introducción
    2. Permisos
    3. Estructura de directorios
    4. Montar el sistema de ficheros
    5. Procesos
    6. Shells
    7. Terminales
    8. Referencia de comandos básicos
    9. Editores de texto
  2. Metodología
    • Introducción a la Programación (08/02/03) [ gz | zip ]

      Contenidos

      1. Definición de algoritmo
      2. Técnicas de representación
      3. Algoritmos de ejemplo
    • Estudio de algoritmos:

      Búsqueda secuencial (08/02/03) [ pseudocódigo | diagrama flujo ]
      Algoritmo de la burbuja (12/04/03) [ pseudocódigo | diagrama de flujo ]
    • Ejercicios (12/04/03) [ enunciados | soluciones ]
  3. Programación en C
  4. Programación en C++

Contacto

Mi página personal, con mis datos de contacto, se encuentra aquí.

Lista de correo clases-de-programacion

Hay una lista de correo en la que plantear dudas sobre las clases y/o relacionadas con cualquier tema tratado en las mismas (metodología, algoritmos, C, C++, etc).

La lista se encuentra cerrada hasta nuevo aviso.

Recursos externos

En este apartado recomiendo diferentes recursos LIBRES disponibles en la web.

Sistemas

Compiladores

Si empleas un sistema UNIX o UNIX-like, probablemente ya tendrás instalado (como mínimo) un compilador de C. Si además es un sistema LIBRE, seguramente tendrás la suite de compiladores de GNU.

Si usas un sistema propietario, aquí hay algunas opciones libres para compilar tus programas:

Editores

Aunque podemos programar con cualquier editor de texto plano, es interesante emplear editores para programadores que nos ofrecen características orientadas a facilitarnos un poco las cosas.

Si empleas un sistema UNIX o UNIX-like, sin duda tendrás a mano diferentes posibildades. En la Introducción a UNIX hago varias propuestas orientadas a consola. Eso no quiere decir que no hayan opciones para entornos de ventanas X11: Anjuta, Kate o Glimmer son buenos ejemplos.

Para entornos propietarios existen menos opciones libres (o gratuitas). Estas son las que recomiendo:

Referencias

Si empleas un sistema UNIX o UNIX-like, probablemente tengas man instalado con las páginas de manual que puedes ir necesitando en las clases. Si no es así, o utilizas un sistema operativo propietario para el que no está disponible esta valiosa herramienta, puedes acceder a las páginas del manual de FreeBSD en linea aquí.

Además, gracias a el proyecto TLDP-ES/LuCAS, disponemos de documentación de calidad en un perfecto castellano.

Actualizaciones

(03/10/03) - He cerrado la lista de correo. Nadie la usaba y ya no tengo relación con la empresa que porporcionaba el servicio.

(15/09/03) - Publicada una solución para el ejercicio de 'El laberinto de C++'.

(25/08/03) - Publicado el enunciado para el ejercicio de 'El laberinto de C++'.

(18/06/03) - Felipe Gordillo a contribuido una excelente pila genérica (templates).

(12/06/03) - Publicado Programación en C++ (2).

(31/05/03) - ¡Tenemos lista de correo! Más información aquí.

(29/05/03) - Felipe Gordillo ha contribuido una clase para la pila de enteros. La implementación se ha realizado con objetos en lugar de encapsular el tad descrito en Programación en C (2).

(17/05/03) - Publicado Programación en C++ (1), y la implementación de ejemplo del objeto vector descrito.

(13/05/03) - Lamentándolo mucho he tenido que prescindir de los ficheros pdf para consultar online. Principalmente porque el ancho de banda no me lo regalan :-/ y parece que nadie está descargando los ficheros comprimidos. Ahora es necesario descargar el fichero, descomprimirlo y consultarlo localmente.

(13/05/03) - Publicado fgzhexdump como solución al ejercicio de hexdump, cortesía de Felipe Gordillo.

(10/05/03) - Publicada actualización de Programación en C (2) con correcciones en las implementaciones de los TADs. También se pueden descargar los fuentes de la implementación. Mis disculpas por los errores.

(07/05/03) - Publicado ejercicio hexdump.

(21/04/03) - Publicado Introducción a la Programación Orientada a Objetos.

(12/04/03) - Diagrama de flujo del algoritmo de la burbuja y ejercicios de metodología.

(24/03/03) - Ejercicios memoria dinámica.

(15/03/03) - Publicado Programación en C (2).

(03/03/03) - Publicado Funciones ANSI C (2): Strings y solución a ejercicios de ficheros (ii).

(24/02/03) - Publicación de ejercicios sobre ficheros.

(15/02/03) - La revisión de Programación en C (1) está lista y disponible en la web.

(10/02/03) - En Ficheros en C: corrección de errata en el ejemplo.

© 2003 Juan J. Martinez. Todos los derechos reservados. Cada documento incluye una nota acerca de sus condiciones de redistribución. Si no hay nota, se asume dominio público.