Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
San Pedro, Montes de Oca
Prof. Jeisson Hidalgo-Céspedes
Consulta: L 08:30-9:30, K,V 08:30-12:00 Of. 3-21 IF

Gr02: L 10-11:50/ J 09-11:50 Aula 201
Asistente: Esteban Román Oviedo

Gr04: L 13-15:50/ J 13-14:50 Aula 201
Asistente: José Manuel Mora Zúñiga

Recurso Peso Descripción

Carta al estudiante

 — 

Contrato sobre el curso. En aula virtual

Aula virtual

 — 

En Mediación Virtual

Ejemplos de clase: Gr02 Gr04

 — 

Ejemplos de programas realizados durante las lecciones

Soluciones iniciales

5%

Archivos iniciales de ejemplos y ejercicios

Proyecto 01

10%

Proyecto individual

Proyecto 02

10%

Proyecto grupal

Quices

15%

En papel durante las lecciones

Examen 01

25%

Examen parcial de cátedra

Examen 02

35%

Examen final de cátedra

Rutina

Sólo una vez en el semestre:

  1. Responder la Encuesta de Presentación en el aula virtual.

  2. Crear su fork de soluciones iniciales con nombre progra1-26b-GG-nombre_apellido donde GG es el su número de grupo. Debe ser un repositorio privado.

  3. Agregar a su docente en la sección Members con el rol de owner. No establezca fechas límite.

  4. Agregar a su asistente con el rol de maintainer.

  5. Configurar su nombre y correo en el archivo common/Makefile.mk. Hacer el commit y push.

Sólo una vez por máquina:

  1. Clonar su repositorio personal del curso.

  2. Configurar su ambiente: cd <repo>/common && make gitconfig.

Si ya tiene un repositorio en su máquina:

  1. Actualizarlo con cambios remotos cd <repo> && git pull --rebase

  2. Ir a la carpeta del ejercicio cd <repo>/<section>/<exercise>

  3. Resolver el problema: code .

  4. Correr contra los casos de prueba: make test

  5. Verificar estilo de código: make lint

  6. Preparar la solución para agregarla a control de cambios git add <files>

  7. Agregar la solución a control de cambios: git commit -m './<exercise>: solved

  8. Enviar el commit al repositorio remoto: git push

Actualizar su repositorio con cambios en de soluciones iniciales:

  1. Ir a una carpeta donde haya un Makefile: cd <repo>/common

  2. Asegúrese de que no tiene cambios pendientes: git status

  3. Traer cambios de soluciones iniciales: make upstream

  4. Enviar los cambios al repositorio remoto: git push

Herramientas de desarrollo (Progra2)

Tema Video

Instalar un Linux sobre Windows con WSL

📹

Crear un fork del repositorio de soluciones iniciales

📹

Clonar el repositorio en Linux

📹

Abrir el clon del repositorio con Visual Studio Code

📹

AsciiDoc y modificación del documento en VSCode

📹

Configurar Git con Makefile y hacer un commit

📹

Estructura de ejercicios y proyectos

📹

Correr la solución contra los casos de prueba. Instalar programas más amigables

📹

Comentarios TODO. Imprimir en la salida estándar (Progra2)

📹

Leer de la entrada estándar (Progra2)

📹

Notación de mensajes de commit

📹

Agregar miembros al repositorio (docentes y asistentes)

📹

Repaso de Introducción a la computación

m17-ago, m24-ago Video

Repaso de introducción a la computación (parte 1) (sin editar)

📹

Repaso de introducción a la computación (parte 2) (sin editar)

📹

Control de versiones con git en línea de comandos

m31-ago Video

Control de versiones con git en línea de comandos (sin editar)

📹

Ejemplo de desigualdad triangular en C y Python

m28-set Video

Ejemplo de desigualdad triangular en C y Python

📹

Subrutinas

# Tema Video

1

Repaso solución en pseudocódigo del problema de Índice de masa corporal

📹

2

Implementación de main(). Llamados a métodos con this

📹

3

Declaración de subrutinas (subtareas) en Java

📹

4

Implementación de subrutinas en Java: processPerson()

📹

5

Declaración de parámetros en Java

📹

6

Implementación del procedimiento classifyPerson()

📹

7

Implementación completa de IMC en Java

📹

8

Casos de prueba de caja negra y correcciones

📹

9

Conceptos de: función, procedimiento, método, y predicado

📹

10

📹

Interfaces gráficas de usuario

L28-nov Video

Problema de abrir paso a la línea del tren como videojuego.

📹

Patrón modelo-vista-controlador (MVC, model-view-controller)

📹

Diseño orientado a objetos del juego abrir paso a la línea del tren

📹

Historia de interfaces gráficas de usuario (GUI) en Java: AWT, Swing, y JavaFX

📹

Separación entre el controlador y el modelo en el videojuego de ejemplo

📹

Vista (ventana del juego). Heredar de JFrame de Swing

📹

Establecer el título de la ventana. Invocar al constructor de la superclase.

📹

Maquetadores de componentes gráficos (GUI layout managers)

📹

Componentes de interfaces gráficas de usuario (GUI components)

📹

Programación orientada a eventos

J01-dic Video

Repaso del problema "abrir paso a la línea del tren". Cambios en la documentación.

📹

Establecer la fuente y alineamiento de un JLabel

📹

Actualizar el cronómetro (tiempo transcurrido) en pantalla

📹

Resumen del paradigma de programación orientado a eventos

📹

Pintar una imagen en un JPanel. Recursos (assets, "activos") en el archivo .jar

📹

Leer el modelo (tablero) a partir de un archivo

📹

Lógica para pintar una matriz de imágenes en el JPanel

📹

Pintar las celdas y su relleno

📹

Reaccionar a eventos del ratón ("click")

📹

Identificar el objeto al que se le hizo clic, y la orientación del movimiento

📹

Car: Clase que administra los elementos gráficos

📹

Animaciones caseras minimalistas

📹

Patrón observador: cuando el modelo debe avisar a una vista

📹