CI0112 - Programación I: 2017b

Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
Grupo 01: L09-12 J09-11 205-IF.

Profesor Jeisson Hidalgo-Céspedes
Correo: jeissonh@gmail.com
Casillero: 04. Consulta: J 11-13 204-IF

Asistente: Jose David Vargas Artavia
Correo: josed1608@gmail.com

Documentos

  1. Carta al estudiante. Contiene una descripción general del curso, sus objetivos, temario, evaluación y otros detalles. Es una especie de contrato entre el profesor, los estudiantes y la escuela.
  2. Ejemplos de clase. Ejemplos de programas realizados en clase.
  3. Evaluaciones:

    Tipo Evaluación Enunciado Solución
    Ejercicios Resueltos Enlaces a HackerRank por correo
    Inventados Instrucciones
    Proyectos Proyecto01 Dilema del prisionero
    Proyecto02 GUI, elección libre
    Exámenes Examen01 Tienda de artículos de playa Solución 1
    Examen02 Abrir paso a la línea del tren
    Examen03 Archivo de registros

Recursos de utilidad

La siguiente es una lista de recursos a utilizar durante el curso. Es conveniente tenerlos a mano, quizá estableciéndolos como marcadores de su navegador preferido.

Documentación

  1. The Java™ Platform, Standard Edition 8 API Specification. Documentación oficial de las clases estándar de Java. No es documentación sobre el lenguaje de programación en sí.
  2. The Java™ Language Specification (Java SE 8 Edition). Documentación oficial sobre el Lenguaje de programación Java, también distribuido en formato de libro.
  3. The Java™ Tutorials. Tutoriales (documentación resumida) sobre varios temas particulares de la programación de Java.
  4. Introduction to Programming Using Java, Seventh Edition. Libro libre introductorio sobre programación en Java, escrito por David J. Eck.

Ambientes de desarrollo

  1. Java SE JDK. Es el paquete oficial que contiene el conjunto de herramientas mínimas necesarias para construir aplicaciones en Java (JDK: Java Development Kit).
  2. Dr. Java. Es un ambiente de desarrollo (IDE: Integrated Development Environment) libre, pequeño, liviano y eficiente. Sin embargo carece de características avanzadas deseables. Requiere que el JDK esté instalado en la computadora donde se va utilizar.
  3. BlueJ. Ambiente desarrollo ideado para la enseñanza y aprendizaje del lenguaje de programación Java.
  4. Netbeans. Ambiente de desarrollo avanzado. Permite el desarrollo amigable de aplicaciones con interfaces gráficas. Es pesado.
  5. Eclipse. Es un ambiente de desarrollo (IDE) libre, avanzado, apto para el desarrollo de aplicaciones extensas. Sin embargo, es pesado y más complejo de usar. Requiere que el JDK esté instalado en la computadora donde se va utilizar.
  6. Jeliot. Este software recibe un programa en Java y crea una representación visual del uso de memoria que hace dicho programa, lo cual es muy útil para entender lo que ocurre internamente en ellos.
  7. Greenfoot. Ambiente de desarrollo que facilita la creación de aplicaciones intensivas en visualización, como simulaciones y videojuegos.

Videojuegos de programación

  1. light-Bot. Videojuego donde se debe programar un robot para que encienda todos los bloques azules en varios escenarios.
  2. Robocode. Ambiente de simulación de batallas de tanques. El estudiante debe programar su tanque con lógica de supervivencia con el fin de resultar victorioso en contiendas contra tanques de otros concursantes.

Control de versiones

  1. Git. Software para control de versiones. Clientes gráficos: TortoiseGit (Windows), SmartGit (OS X, Linux, Windows).
  2. BitBucket. Servicio de alojamiento de repositorios privados de control de versiones en la nube. Sugerencia: registrarse con algún correo académico (institucional o de la ECCI) para recibir beneficios.
  3. GitHub. Servicio de alojamiento de repositorios públicos (open source) de control de versiones en la nube. Sugerencia: registrarse con algún correo académico (institucional o de la ECCI) para recibir beneficios.
  4. Pro Git. Libro libre de Git escrito por Scott Chacón. Opcional: Curso en línea de Git en DevCode.