Programa Back End I V2
Programa Back End I V2
Objetivos de aprendizaje
Implementar un back end implica conocer un stack de tecnologías amplio, generalmente no es
suficiente con conocer el lenguaje. Durante la cursada de esta materia, aprenderás los
frameworks más usados del lenguaje mediante un stack de tecnologías para el desarrollo de
aplicaciones web —desde el acceso a datos hasta la vista, a través de la implementación del
patrón MVC y la exposición de servicios API REST—.
Metodología de enseñanza-aprendizaje
Desde Digital House proponemos un modelo educativo que incluye entornos de aprendizaje
sincrónicos y asincrónicos con un enfoque que vincula la teoría y la práctica, mediante un
aprendizaje activo y colaborativo.
Nuestra propuesta incluye clases en vivo con tu grupo de estudiantes y docentes, a los que
podrás sumarte desde donde estés. Además, contamos con un campus virtual a medida, en el
cual encontrarás las clases virtuales, con actividades, videos, presentaciones y recursos
interactivos, para realizar a tu ritmo antes de cada clase en vivo.
A lo largo de tu experiencia de aprendizaje en Digital House lograrás desarrollar habilidades
técnicas y blandas, como el trabajo en equipo, la creatividad, la responsabilidad, el
compromiso, la comunicación efectiva y la autonomía.
En Digital House utilizamos la metodología de “Aula invertida”. ¿Qué quiere decir? Cada
semana te vamos a pedir que te prepares para la que sigue, leyendo textos, viendo videos,
realizando actividades, etcétera. De esta forma, cuando llegues al encuentro en vivo, estarás
preparado para abordar el tema de manera más rica.
1
Utilizamos actividades y estrategias basadas en los métodos participativos y activos para
ponerte en movimiento, ya que uno solo sabe lo que hace por sí mismo. Por ese motivo,
organizamos las clases para que trabajes en ellas de verdad y puedas poner en práctica las
distintas herramientas, lenguajes y competencias que hacen a la formación de un
programador. Concebimos la clase como espacio de trabajo.
Una de las cuestiones centrales de nuestra metodología de enseñanza es el aprendizaje en la
práctica. Por ese motivo, a lo largo de la cursada estarán muy presentes las ejercitaciones, es
decir, la práctica de actividades de diversos tipos y niveles de complejidad que te permitirán
afianzar el aprendizaje y comprobar que lo hayas asimilado correctamente. De esta forma,
lograrás un aprendizaje más significativo y profundo, la asimilación de los conocimientos de
manera más eficaz y duradera, relacionar lo aprendido con la realidad de los desarrolladores
web, fomentar la autonomía y el autoconocimiento, mejorar el análisis, la relación y la
comprensión de conceptos. Todas estas herramientas te ayudarán a ejercitar una multitud de
competencias.
El aprendizaje entre pares es uno de los elementos centrales de nuestra metodología, por eso,
en cada clase te propondremos que trabajes en mesas de trabajo junto a tus compañeros. A lo
largo de la cursada iremos variando la composición de los grupos para potenciar la
cooperación. Lo que proponemos es un cambio de mirada sobre el curso en cuestión: ya no se
contempla al estudiante transitando su camino académico de manera individual, sino como
parte de un equipo que resulta de la suma de las potencialidades de cada uno. La distribución
en grupos de trabajo fomenta la diversidad y el aprovechamiento del potencial de cada
integrante para mejorar el rendimiento del equipo.
La explicación recíproca como eje del trabajo cotidiano no solo facilita el aprendizaje de los
compañeros, sino que sobre todo potencia la consolidación de conocimientos por parte de
quien explica. Se promueve la responsabilidad, la autonomía, la proactividad, todo en el marco
de la cooperación. Esto lleva a resignificar la experiencia de aprendizaje y a vincularla con
emociones positivas.
El trabajo cooperativo permite entablar relaciones responsables y duraderas, aumenta la
motivación y compromiso y promueve un buen desarrollo cognitivo y social. La cooperación
surge frente a la duda. En caso de tener una pregunta, le consultarás a algún miembro de su
grupo asignado que esté disponible. Si la duda continúa, se convocará al facilitador. Si no lo
2
resuelven, el facilitador pedirá a todos que se detengan para cooperar como equipo en la
resolución del conflicto que ha despertado la duda. Así debatirán todos los integrantes de la
mesa buscando la solución. Si aun así no pueden resolverlo, anotarán la duda, que será
abordada asincrónicamente por el soporte técnico o de forma sincrónica en la siguiente clase
por parte del profesor.
Todos los días, finalizada la jornada, los estudiantes reconocerán a uno de los integrantes del
grupo con quienes compartió ese día. El criterio para ese reconocimiento es la cooperación.
Cada grupo tendrá un facilitador que será elegido a partir de los reconocimientos y generando
un sistema de rotación donde cualquiera puede pasar por ese rol. El facilitador no es una
figura estática, sino que cumple un rol dinámico y versátil. El facilitador es un estudiante que
moviliza el alcance de los objetivos comunes del equipo poniendo en juego la cooperación. Es
quien comparte con la mesa su potencial en favor del resto del equipo, y que por lo tanto
promueve la cooperación.
Información de la materia
● Modalidad 100% a distancia.
● Cantidad de semanas totales: 9
● Cantidad de encuentros sincrónicos semanales: 6
● Clases virtuales en nuestro campus Playground: 54
● Cantidad de clases en vivo: 54
3
Requisitos y correlatividades
Para cursar Back End I se necesita tener aprobadas: Programación Orientada a Objetos y Base
de Datos. Asimismo, para realizar las materias de especialización de back end es necesario
haber realizado Back end I.
Modalidad de trabajo
Nuestra propuesta educativa está diseñada especialmente para esta modalidad 100% a
distancia, mediante un aprendizaje activo y colaborativo siguiendo nuestro pilar de "aprender
haciendo".
Los entornos de aprendizaje son tanto sincrónicos como asincrónicos, con un enfoque que
vincula teoría y práctica, por lo que ambas están presentes en todo momento.
Contamos con un Campus virtual propio en el cual vamos a encontrar actividades, videos,
presentaciones y recursos interactivos con instancias de trabajo individual y en equipo para
profundizar en cada uno de los conceptos.
Además, realizaremos encuentros online y en vivo con el grupo de estudiantes y docentes, a
los que podremos sumarnos desde donde estemos a través de una plataforma de
videoconferencias con nuestra cámara y micrófono para generar una experiencia cercana.
Metodología de evaluación
La evaluación formativa es un proceso continuo que genera información sobre la formación de
nuestros estudiantes y de nosotros como educadores.
A su vez, se genera conocimiento de carácter retroalimentador, es decir, tiene una función de
conocimiento, ya que nos permite conocer acerca de los procesos de enseñanza y
aprendizaje. También tiene una función de mejora continua porque nos permite saber en qué
parte del proceso nos encontramos, validar si continuamos por el camino planificado o
necesitamos tomar nuevas decisiones para cumplir los objetivos propuestos.
Por último, la evaluación desempeña un papel importante en términos de promover el
desarrollo de competencias muy valiosas.
4
Nuestro objetivo es corrernos de la evaluación tradicional, donde muchas veces resulta un
momento difícil, aburrido y tenso. Para ello, vamos a utilizar la gamificación, una técnica
donde se aplican elementos de juego para que el contenido sea más atractivo y te sientas más
motivado e inmerso en el proceso, utilices los contenidos de aprendizaje como retos que
realmente quieras superar y aprendas del error.
A su vez, para registrar dicha formación, utilizamos un conjunto de instrumentos, para
los cuales es fundamental utilizar la mayor variedad posible y técnicas de análisis.
Criterios de aprobación
● Realizar las actividades de Playground (80% de completitud).
● Asistencia a los encuentros sincrónicos (90% de asistencia).
● Obtener un puntaje de 7 o más en la evaluación final.
● Obtener un puntaje de 7 o más en la nota final de la materia.
Contenidos
Módulo 1: Patrones de diseño
Abordaremos los patrones de diseño más utilizados en la capa de back end. Existe una
numerosa variedad de librerías y frameworks que los implementan y su conocimiento es
crucial para comprender y hacer un uso óptimo del stack de tecnologías necesarias para
acelerar el desarrollo.
Clase 1: Bienvenida
● Introducción a la materia
● Pruebas unitarias con JUnit
● Introducción: Test unitarios vs. Test integración
● Beneficios y principio FIRST
● Arquitectura JUnit
● Configuración de la librería
● Anotaciones, assertions
5
● Testeo parametrizado
● Suite, Suite de Suites
● Ejemplo en Java
Clase 3: Integradora
Clase 6: Integradora
6
● Implementación típica en Java
Clase 9: Integradora
7
Clase 11: Acceso a base de datos
JDBC. Statement. Creación de conexiones. Resultset. Inserciones, borrado, actualizaciones y
consultas. Manejo de transacciones.
● DAO
● Presentación en UML
● Implementación típica en Java
○ Clases de acceso a datos
8
○ Utilización de factory y template method
○ Clase de servicio
○ Generación de tipos de excepciones por capas
● Testing unitario de cada capa
● Introducción al concepto de ORM
9
● Java NIO, Manejo de archivos, carpetas y recursos.
● Creación, escritura, lectura, eliminación, copiado y movimiento de ficheros.
● Serialización de objetos
● Manejo de carpetas
● Arquitectura cliente-servidor
● Protocolo HTTP
● Framework
○ Definición
○ Framework vs. Librería
○ Introducción a Spring Framework
○ Spring vs. Spring Boot
● Crear un proyecto en Spring Boot
○ Initializr
○ Estructura del proyecto
○ Aplication.java
10
Clase 22: Patrón MVC
Construcción por parte de los alumnos del resto de las entidades con la capa de acceso a
datos (DAO, Service) con testeos unitarios.
● Anotaciones en el controller.
● DTO.
● ResponseEntity
11
● Consumir API
● Inyección de dependencias
● IoC Inversion of control
● Formas de Inyectar dependencias
● Arquitectura JPA
● Hibernate
● Anotaciones
● Configurar Hibernate con Spring Boot
12
● Características
● Sintaxis
● Ubicación de consultas en Spring
Repaso por parte del docente de la construcción de la capa de acceso a datos (Repository),
capa de negocio (service), APIs (controller) y la capa de la vista (HTML con JavaScript) de una
entidad y su mapeo con la base de datos, mostrando los cambios con respecto al DAO original.
Construcción por parte de los alumnos de la capa de acceso a datos (Repository), negocio
(service), APIs (controller) y vista (HTML con JavaScript) de una entidad y su mapeo con la
base de datos.
● Introducción a MongoDB
● MongoDB vs. Base de datos relacionales
● Spring Data + MongoDB
● Creación de una base MongoDB
● Acceso a MongoDB
● ¿Qué es un microservicio?
13
● Patrones de comunicación entre microservicios
● Monolito vs. Microservicios
● ControllerAdvice
● ExceptionHandler
● Exception Handling para servicios RESTFul
14
Clase 47: Taller de coding sobre nuestro trabajo integrador
● Swagger OpenApi
● Hateoas
Repasamos los temas principales de la materia: clases de negocio, clases de acceso a datos,
uso de ORM, clase de servicio, testeo unitario e integral, vista (templates) y controllers (MVC),
exponer una API REST y llenar un combo con API REST.
15