Indice Programación Curso 2009-2010 Recomendaciones Listado siguiente
Última actualización: 4/11/2009 11:37

Recomendaciones

Construya una carpeta llamada programacion en el directorio principal (home, ~/, Mis Documentos, Documentos, etc.) de su cuenta personal. Dentro de esta carpeta, construya otra llamada tema_01. Los archivos que se describen a continuación deben almacenarse en la carpeta tema_01. Estos archivos se pueden y deben modificar a medida que mejore nuestra comprensión y conocimiento del tema tratado. Podrán complementarse con imágenes más adelante. [Busque "tutorial de html" en Google, cambie la extensión .txt por .html. No sabe escribir directamente HTML? Aprenda... es muy útil].
Evidentemente, deben crearse nuevas carpetas (tema_02, tema_03, etc) para almacenar en ellas otras carpetas con los archivos, programas y demás resultados que se construyan a lo largo del curso.

Observaciones

  1. No es usted tonto. Lo que ocurre es que está abordando un conjunto muy extenso de conceptos interdependientes; suele decirse que la Ciencia posee una estructura cerrada o circular, en la que uno comienza su camino y (eventualmente) llega a un final que es, precisamente, el punto en que comenzó su andadura.
  2. Los enlaces que se muestran a continuación ofrecen información complementaria; la bibliografía que se muestra en la página de presentación está adaptada específicamente a los contenidos del curso. No cometa el error de basarse en unos apuntes, por buenos que parezcan: un mal libro es mejor que unos buenos apuntes.
  3. No cometa el error de renunciar a sus propias notas (los "apuntes" son un 15% de las notas). Tome nota de lo que le parezca interesante. Añada diagramas. Clarifique. Haga suyas sus notas, es algo personal y muy agradable.
  4. La cantidad de información que ofrece en Inglés es mucho mayor que la que se ofrece en Español.
  5. Es completamente imprescindible aprender Inglés, al menos al nivel de traducción. Do this or suffer!!.
  6. La palabra inglesa "library" se traduce como "biblioteca".
  7. La palabra inglesa "requirement" se traduce como "requisito".
  8. No se quede con la duda. Consulte a un profesor. Consulte uno o varios libros. Consulte la Wikipedia o cualquier otro lugar de Internet. Consulte a un compañero. Indague: esa capacidad es la demostración de que ha pasado por la Universidad. De otro modo, usted habrá pasado por la Universidad, pero la Universidad no habrá pasado por usted.
  9. Muchas de las páginas web mencionadas a continuación contienen programas. Es muy recomendable ejecutarlos, corregir posibles problemas, modificarlos y, en general, extraer conclusiones interesantes de ellos. Los programas deben guardarse en una carpeta dentro del directorio al que pertenecen, dando a esa carpeta un nombre reconocible. La colección de archivos .txt y de programas que vaya creando a lo largo del curso va a ser una fuente de información realmente sustanciosa.

Tema I - Ordenadores y lenguajes de programación

  1. La página de Wikipedia se encuentra en http://www.wikipedia.org. Acceda a ella y busque la versión en Inglés. Tome nota del número de artículos. Vuelve a la página principal y acuda a la página en Español. Tome nota del número de artículos. Añada un marcador para ambas páginas en su navegador.
  2. Busque "computer" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "ordenadores.txt".
  3. Busque "programming language" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "caracteristicas_generales.txt". Consulte brevemente la referencia "Categorical list of programming languages". Igualmente, tome nota de los lenguajes o aspectos más interesantes o relevantes. Guarde el resultado en el archivo "lenguajes_de_programacion.txt".
  4. Busque "low-level programming language" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "lenguajes_bajo_nivel.txt".
  5. Busque "high-level programming language" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "lenguajes_alto_nivel.txt".
  6. Busque "interpreted language" en Internet. tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "lenguajes_interpretados.txt".
  7. Busque "compiled language" en Internet. Tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "lenguajes_compilados.txt".
  8. Busque "virtual machine" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "maquinas_virtuales.txt".
  9. Busque "compiler" en Internet. Tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "caracteristicas_compiladores.txt".
  10. Busque "interpreter" en Internet. Tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "caracteristicas_interpretes.txt".
  11. Busque "run-time system" en Internet. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "entornos_de_ejecucion.txt".
  12. Busque en Internet la entrada correspondiente a "C (programming language)". Añada un marcador. Busque en Internet la entrada correspondiente a "Lenguaje de programación C". Añada un marcador. Compare ambos artículos (si es posible, imprímalos y marque las diferencias).
  13. Busque en Internet "waterfall model" o modelo de cascada. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "modelo_de_cascada.txt".
  14. Busque en Internet "iterative and incremental development". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "modelo_iterativo.txt".
  15. Busque en Internet "software developement process". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "desarrollo_de_software.txt".

Tema II - Instalación de herramientas de compilación

Se pretende instalar un juego de herramientas ("toolchain") adecuado para compilar programas escritos en C. Consúltense las referencias siguientes:

Descarga para Windows o Mac OS X.
(Instalar la versión 6.7 o superior.) Acceda a la página web http://www.netbeans.org/community/releases/67/cpp-setup-instructions.html para configurar NetBeans como IDE para desarrollo de C/C++
maxus (I) Información general
maxus (II) Información general
DevCpp Es el primer paso de instalación en Windows
XCode (O Mac OS X Install DVD, developer tools).
Es el primer paso de Instalación en Mac OS X
Eclipse Descarga para Windows o Mac OS X
(Seleccionar la versión 3.5 o superior [Galileo)].)
Para Mac OS X, seleccionar la versión Cocoa
  Acceda a la página web http://www.ibm.com/developerworks/opensource/library/os-eclipse-stlcdt/. para configurar Eclipse como IDE para desarrollo de C/C++
NetBeans
 

Tema III - Ciclo Vital e Ingeniería del Software

  1. Busque en Internet "waterfall model" o modelo de cascada. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "modelo_de_cascada.txt".
  2. Busque en Internet "iterative and incremental development". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "modelo_iterativo.txt".
  3. Busque en Internet "software developement process". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "desarrollo_de_software.txt".

Tema IV - Tipos de datos y variables

  1. Busque en Internet "variable (programming)" o modelo de cascada. Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "variables.txt".
  2. Busque en Internet "data type". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "tipos de datos.txt".
  3. Busque en Internet "scope (programming)". Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "ambito.txt".

Tema V - Uso de herramientas de Compilación

  1. Acceda a la página web http://www.horstmann.com/bigj/help/windows/tutorial.html Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "shell_windows.txt".
  2. Acceda a la página web http://www.grymoire.com/Unix/Sh.html Estudie detenidamente el artículo y tome nota de los aspectos que le parezcan más llamativos o relevantes. Guarde el archivo con el nombre "shell_bash.txt".
  3. Acceda a la página web http://gcc.gnu.org/onlinedocs/. Esta página contiene los manuales de todos los compiladores GNU publicados hasta la fecha (en formato PDF entre otros). Ojee la versión 4.4.1 o posterior, y apreciará las múltiples capacidades que ofrece gcc.
  4. Acceda a la página web http://www.ibm.com/developerworks/opensource/library/os-eclipse-stlcdt/. Esta página describe la utilización de Eclipse como IDE para desarrollar programas en C/C++
  5. Acceda a la página http://www.netbeans.org/community/releases/67/cpp-setup-instructions.html. Esta página describe la utilización de NetBeans como IDE para desarrollar programas en C/C++.

Tema VI - Tipos de datos Atómicos

  1. Acceda a la página Table_of_Data_Types y podrá consultar la lista de tipos válidos en C.
  2. Acceda a la página http://en.wikibooks.org/wiki/C_Programming y podrá consultar una interesante descripción del lenguaje C.

Tema VII - Operaciones de E/S en la terminal

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://www.java2s.com/Tutorial/C/0080__printf-scanf/0020__printf-Basics.htm y estudie los apartados del tema 4.

Tema VIII - Operadores

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B y estudie detalladamente los operadores disponibles en el lenguaje C (la página muestra también los operadores presentes en el lenguaje C++.)

Tema IX - Estructuras de Control

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/Control_flow y estudie detalladamente los conceptos bésicos de estructuras de control. Tome nota de los aspectos más llamativos o relevantes y escríbalos en el archivo "estructuras_de_control.txt", en el directorio tema09

Tema X - Tipos de datos Estructurados Homogéneos

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/C_syntax y estudie detalladamente los conceptos bésicos de las listas, tablas y matrices. Escriba los aspectos más llamativos o relevantes en el archivo "matrices.txt", en el directorio tema10

Tema XI - Subprogramas

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/C_syntax#Functions y estudie detalladamente los conceptos básicos de las funciones. Escriba los aspectos más llamativos o relevantes en el archivo "suprogramas.txt", en el directorio tema11

Tema XII - Tipos de datos Estructurados Inhomogéneos

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/C_syntax y estudie detalladamente los conceptos básicos de estructuras. Escriba los aspectos más llamativos o relevantes en el archivo "estructuras.txt", en el directorio tema10

Tema XIII - Punteros

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://home.netcom.com/~tjensen/ptr/pointers.htm y revise los distintos capítulos. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "punteros.txt" del directorio tema13.
  3. Acceda a la página http://www.cplusplus.com/doc/tutorial/pointers/ y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "punteros.txt" del directorio tema13.

Tema XIV - Asignación dinámica de memoria

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://irc.essex.ac.uk/www.iota-six.co.uk/c/f7_dynamic_memory_allocation.asp y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "asignacion_dinamica.txt" del directorio tema14.

Tema XV - Listas enlazadas

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/Linked_list y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "listas_enlazadas.txt". Este artículo es relativamente largo y contiene mucha información interesante; se recomienda imprimirlo y guardarlo como referencia.
  3. Acceda a esta página http://www.itl.nist.gov/div897/sqg/dads/ y guarde un marcador en su navegador. Este diccionario contiene una interesante colección de definiciones que pueden resultar de interés en muchas situaciones.

Tema XVI - Reutilización de código

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://en.wikipedia.org/wiki/Code_reuse y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "reutilizacion_de_codigo.txt" del directorio tema16.
  3. Acceda a la página http://en.wikipedia.org/wiki/Don%27t_repeat_yourself y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "reutilizacion_de_codigo.txt" del directorio tema16.

Tema XVII - Archivos binarios

  1. Consulte también la bibliografía propuesta.
  2. Acceda a la página http://euklid.mi.uni-koeln.de/c/mirror/mickey.lcsc.edu/%257Esteve/c16.html y revise su contenido. Tome nota de los aspectos más relevantes o llamativos y anótelos en el archivo "archivos_binarios.txt" del directorio tema17.
  3. Acceda a esta página http://tools.devshed.com/c/a/Web-Development/C-File-IO-and-Binary-File-IO/ y tome nota de los aspectos más relevantes o llamativos, anotándolos en el archivo "archivos_binarios.txt" del directorio tema17.

Tema XVIII - Archivos de texto

  1. Consulte también la bibliografía propuesta.
  2. Acceda a esta página http://www.learn-programming.za.net/programming_c_learn10.html y estudie detalladamente su contenido. Anote los aspectos más interesantes en el archivo "archivos_de_texto.txt" en el directorio tema18.

Algoritmos básicos

  1. Acceda a esta página http://www.itl.nist.gov/div897/sqg/dads/ y ejecute los distintos algoritmos de ordenación que se muestran. El lenguaje Java, que se ha utilizado para la creación de estos ejemplos, es uno de los más extendidos en la actualidad. Véase la página dedicada a Java en el servidor maxus.