Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
San Pedro, Montes de Oca

Prof. Jeisson Hidalgo-Céspedes
Prof. Alberto Rojas-Salazar

Recurso Peso Descripción

Carta al estudiante

 — 

Programa del curso y acuerdos

Ejemplos de clase

 — 

Ejemplos de programas realizados durante las lecciones

Ejercicios y tareas

30%

Enlaces al juez automático (HackerRank) enviados por correo electrónico

Proyecto 01

15%

Proyecto individual

Proyecto 02

10%

Proyecto grupal

Examen 01

20%

Examen parcial

Examen 02

25%

Examen final

problem_solution.7z

 — 

Estructura de archivos para una solución programada

Repo ejemplos Gr03
Repo ejemplos Gr05

 — 

Repositorio de control de versiones con ejemplos de cada grupo

Calendly

 — 

Obtener una cita de consulta

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

Para instalar Git en Linux, use su administrador de paquetes, por ejemplo, sudo apt install git en Debian/Ubuntu. Si usa Windows puede instalar un Linux con WSL y luego usar su administrador de paquetes de Linux para instalar Git. Dentro de WSL clona su repositorio y lo puede editar con VSCode usando la extensión WSL de VSCode.

m31-ago Video

Instalar Git en Windows (Opcional, sólo si quiere trabajar directamente en este sistema operativo)

📹

Crear un repositorio de Git en git.ucr.ac.cr

📹

Metáfora del castillo y el dragón

📹

Clonar un repositorio (git clone)

📹

Anatomía de un repositorio de Git

📹

Working directory. Estado del repositorio (git status). Comparar cambios (git diff)

📹

Stage. Agregar cambios al stage (git add). Deshacer cambios (git restore)

📹

Commit. Configurar usuario y correo. Mensaje de commit (git commit)

📹

Historial de cambios (git log)

📹

Enviar (git push) cambios y recibir (git pull) cambios del repositorio remoto. Merge y rebase. Conflictos. Explorar el repositorio remoto.

📹

Estructura de directorios de un proyecto. Makefile reutilizable

📹

Ignorar archivos en control de versiones. Guardar en un caché contraseñas

📹

Renombrar o mover archivos en control de cambios (git mv).

📹

Ejemplo de desigualdad triangular en C y Python

m28-set Video

Ejemplo de desigualdad triangular en C y Python

📹

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

📹