cruzando el abismo educativo de la ingeniería de software utilizando software como servicio y...
DESCRIPTION
`Cruzando el abismo educativo de la ingenieria de software utilizando Software como Servicio y computación en nube' Prof. Armando Fox Facultad de Informática, Universidad de California, Berkeley [email protected] JISBD'2012 (XVII Jornadas de Ingeniería del Software y Bases de Datos) Jornadas SISTEDES 2012 (17 a 19 septiembre de 2012) Universidad de AlmeríaTRANSCRIPT
![Page 1: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/1.jpg)
«Cruzando el Abismo Educativo»
de la Ingeniería de Software utilizando Software como Servicio (SaaS)
y Computación en Nube
Armando FoxDirector Académico de Programas
Educativos en LineaUniversidad de California, Berkeley
Sistedes 2012, Almería, España 1
![Page 2: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/2.jpg)
La moderna ingeniería de software es…
• Más fácil y eficaz de enseñar debido a herramientas de primera clase
• Atractivo para los estudiantes y los empleadores debido a las enormes oportunidades que ofrecen las aplicaciones “cloud+client”
• Escalable a bajo costo debido a la computación en nube, ante todo la calificación automatizada desplegando esas mismas herramientas en la nube
• Nos gustaría que los demás replicaran nuestro éxito
2
![Page 3: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/3.jpg)
Outline
• El problema y nuestra respuesta: Revisar el curso pregrado de Software Engineering
• Aprender haciendo en vez de escuchando: herramientas reemplazan metodologías
• Ampliación del curso a 50,000 estudiantes
• Aplicando la experiencia del MOOC en el aula
• Invitación: hágalo usted mismo
3
![Page 4: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/4.jpg)
Desarrollo del software en Silicon Valley
4
• Desarrollo ágil y guiado por pruebas, programación en pareja, procesos ágiles
• Refinamiento iterativo, con despliegue frecuente, guiado por la retroalimentación del cliente
Programación en pareja en Pivotal Labs, San Francisco, CA. Foto: Tonia Fox
![Page 5: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/5.jpg)
El problema…
• El curso Software Engineering tenía reputación floja– Estudiantes: «Nos explican las
metodologías, pero no las aplicamos en proyectos reales»
– Instructores: «Los estudiantes no aplican lo que le enseñamos»
– Empleadores: «Los estudiantes saben programar, pero les faltan habilidades importantes para el desarrollo del software…»
1. Manejar codigo heredado2. Trabajar en equipo y tratar con clientes
no técnicos 3. Automatizar las pruebas de software
* Unanimously #1 among 6 leading software companies we asked
6
![Page 6: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/6.jpg)
Las restricciones
• El estudiante tipico le dedica 12 horas/semana a cada curso– Curso 15 semanas = 3 semanas de empleo a
tiempo completo• Para realizar aplicaciones prototipicas en solo
14 semanas, hay que proporcionarles herramientas de alta productividad
• El futuro del software incluirá computación tanto en la nube como en el cliente móvil…¿cuál escoger?
• El entorno Rails para desplegar aplicaciones Ruby en la nube dispone de las mejores herramientas
7
?
![Page 7: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/7.jpg)
Revisar el curso
• El contenido y los temas del curso deben ser revisados por comites de la Universidad y también externos a la Universidad
• Pero el profesor tiene discreción en como presentar los temas
8
Requisitos y documentación
Mantenimiento y refactorización
Disenõ y construcción Modelos de desarrollo
Arquitectura del software
Pruebas de software
Métricas de calidad Entregue y despliegue
![Page 8: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/8.jpg)
9
Las revisiones
• Enseñanza de los temas utilizando Rails, un entorno de alta productividad para el SaaS
• Aprender haciendo: herramientas reemplazan metodologías
• Enseñar y aprovecharse del Cloud Computing
• Equipos compactos y desarrollo ágil (ideal para el aula)
• Énfasis en pruebas
![Page 9: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/9.jpg)
Una iteración de 2 semanas
10
Discutir con cliente
Prototipo de baja fidelidad
Historias de usuario
Behavior-driven Design (BDD)
RSpecTest-driven development
(TDD) para pruebas unitarias
Medir velocidad
Desplegar en la nube
Codigo heredado
Patrones de diseño
Diseño impulsado por comportamiento
Desarrollo dirigido por pruebas
![Page 10: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/10.jpg)
Outline
• El problema y nuestra respuesta: Revisar el curso pregrado de Software Engineering
• Aprender haciendo en vez de escuchando: herramientas reemplazan metodologías
• Ampliación del curso a 50,000 estudiantes
• Aplicando la experiencia del MOOC en el aula
• Invitación: hágalo usted mismo
11
![Page 11: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/11.jpg)
Metodologías y temas…
• Arquitectura del software, patrones de diseño, practicas de programación
• Test-first development, pruebas unitarias
• Behavior-driven design, pruebas de integración y aceptación
• Gestión ágil basada en iteraciones
• Colaboración en el equipo «dos pizzas» en gestión del codigo fuente
• Despliegue SaaS, seguridad, prestaciones
• Ruby & Rails
• RSpec
• Cucumber
• Pivotal Tracker• Git & GitHub
• Amazon EC2, Heroku
12
…reforzados por herramientas
![Page 12: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/12.jpg)
13
Ejemplo: BDD con prototipo de baja fidelidad
![Page 13: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/13.jpg)
Llegar al acuerdo con el cliente: historias de usuario
Característica: Ajustar a mano el horario del día Como personal del depto. EECS Para poder acomodar cambios a ultima hora Quiero poder ajustar las citas a mano
Escenario: añadir candidato a cita con capacidad disponible Dado que "Velvel Kahan" está disponible a las 10:20 Cuando elijo "Velvel Kahan" del menu de la cita
10:20 con "Armando Fox" Y pulso "Save Changes" Entonces veré la pagina del horario maestro Y veré el texto "Velvel Kahan añadido a la cita 10:20" Y "Armando Fox" tendrá cita con "Velvel Kahan"
a las 10:20 Escenario: quitar candidato de una cita
...etc.14
![Page 14: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/14.jpg)
Conviertiendo historias en pruebas de
aceptación• Herramienta que ejecuta historias «en
texto plano» como pruebas de integración y aceptación
• Cada escenario corresponde a una historia de usuario– Pasos Dado establecen precondiciones– Pasos Cuando simulan las acciones del
usuario con simulador de navegador o bien con Selenium
– Pasos Entonces verifican las aserciónes • Definiciones de los pasos unen cada
línea de la historia a un trozo de código que realiza el intento del paso
• Notamos funcionamiento y cobertura de las pruebas
15
![Page 15: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/15.jpg)
Despliegue
• «Plataforma como servicio» (PaaS) que se encarga de los detalles mecánicos del despliegue– Nivel de servicio gratuito basta para estos
proyectos• Despliegue sencillo = despliegue
frecuente– El cliente revisa las nuevas características
desplegadas durante cada iteración• Retroalimentación del cliente guía el
esfuerzo de la siguiente iteración 16
![Page 16: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/16.jpg)
19
De metodologías a herramientas
• Los estudiantes pueden seguir nuestros consejos (metodologías) con más facilidad
• Los instructores pueden observer y basar la calificación en medidas cuantitativas, y comprender más rápidamente el alcance de cada proyecto
• El progreso del equipo puede ser cuantificado a través de varias iteraciones
• Los estudiantes reciben retroalimentación inmediata indicando si sus estimados fueron realisticas, y ajustan para la proxima iteración
![Page 17: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/17.jpg)
Resultados y Observaciones
• Matriculación en el curso: 35 – 50 – 75 – 110 – 165
• Comentarios de los clientes (25 empresas sin fines de lucro)– 92% “contentos” o “ecstáticos” – 48% le ofrecieron empleo continuado a los
estudiantes – 67% de los equipos tienen intención de
mantener las aplicaciones, aún sin oferta de empleo
• ¡Los estudiantes realmente se ingresan en el proceso ágil! – La complejidad de las historias se nivela en las
últimas iteraciones – Los proyectos varían en alcance, pero apenas en
la calidad del código y de las pruebas • El 60% de los estudiantes opinan que
debemos hacer todo lo posible para ampliar la matriculación en este curso
20
![Page 18: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/18.jpg)
Algunos ejemplos de proyectos
21
![Page 19: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/19.jpg)
Outline
• El problema y nuestra respuesta: Revisar el curso pregrado de Software Engineering
• Aprender haciendo en vez de escuchando: herramientas reemplazan metodologías
• Ampliación del curso a 50,000 estudiantes
• Aplicando la experiencia del MOOC en el aula
• Invitación: hágalo usted mismo
22
![Page 20: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/20.jpg)
Cambios para el MOOC
• Calificadores automatizados sofisticados para tareas de programación (código abierto en GitHub)
• Subdivisión de las conferencias en módulos de 7-10 minutos con preguntas de autoevaluación
• Sin cambio: mismas tareas, exámenes, fechas topes
• Costo directo de calificación automatizada en la nube, descargo del imagen VM, etc.: <$5/estudiante– subvencionado por donaciones de
Amazon, GitHub, Google, Microsoft
24
![Page 21: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/21.jpg)
Una iteración de 2 semanas
25
Discutir con cliente
Prototipo de baja fidelidad
Historias del usuario
Behavior-driven Design (BDD)
RSpecTest-driven development
(TDD) para pruebas unitarias
Medir velocidad
Desplegar en la nube
Código heredado
Patrones de diseño
MO
OC
![Page 22: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/22.jpg)
Calificación Automatizada
26
Entrega de la tarea
Estrategia de calificación
Subir ficheras de código
• pruebas RSpec (funcionamiento)• [luego] reek/flay (estilo)
Subir ficheras con pruebas
• Prueba por mutación (Amman & Offutt): inyectar errores en la aplicación, verificar que no pasan las pruebas
Ingresar URL de aplicación desplegada en la nube (Heroku)
• Prueba remota con RSpec, Cucumber, y Mechanize, también en la nube• [luego] prueba remota con SauceLabs
Preguntas cortas (opción múltiple, etc.)
• Herramientas que emiten formato XML e impresa
Califica-dor
presenta-
ción del estudi-ante
rúbrica
retroalimentación
95100
![Page 23: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/23.jpg)
1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 20000.0%
5.0%
10.0%
15.0%
20.0%
25.0%
30.0%
35.0%
0% 1% 2% 3%4%
8%
15%
28%32%
7%
0%
Fecha de nacimiento
¿Quiénes son los estudiantes?
• 12% fem., 88% masc.• Edad mediana: 27 años• 75% entre 21 y 38 años• De 10 á 106 años
![Page 24: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/24.jpg)
33% título de pos-grado
31% título de grado
12% título grado en progreso o no
completo
8% es-cuela se-cunda-
ria12% título profe-
sional
¿Quiénes son los estudiantes?
• 75% título grado o superior; 7% instructores
• 60% tratan con desarrollo o mantenimientodel SW en el empleo
Estudiantes capaces y con altas esperanzas
![Page 25: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/25.jpg)
¿De dónde son?
1. EE.UU.22.8%
2. India 6.6% 3. Fed. Rusa 6.6% 4. España 5.0% 5. Ucrania 4.7% 6. Brasil 4.1% 7. Colombia 3.4% 8. Canada 2.7% 9. Reino Unido 2.1% 10.Alemania 1.8%
11.Italia 1.7% 12.Polonia 1.7% 13.Romania 1.7% 14.China 1.4% 15.Argentina 1.3% 16.Belarus 1.3% 17.México 1.3%18.Pakistán 1.3% 19.Francia 1.2% 20.130 otros países
25%
![Page 26: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/26.jpg)
Embudo y Estratificación
30
50,000 matriculados
25,000 vieron al menos 1 conferencia
10,000 presentaron al menos
1 tarea
3,500aprobaron
• «Quiero ayudar en el futuro»
• «Mejor que cualquier curso disponible á mi alcance»
«desgaste» de 90%+ confirmado por la experienca de 3 otros MOOCs en Stanford
y MIT
![Page 27: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/27.jpg)
Outline
• El problema y nuestra respuesta: Revisar el curso pregrado de Software Engineering
• Aprender haciendo en vez de escuchando: herramientas reemplazan metodologías
• Ampliación del curso a 50,000 estudiantes
• Aplicando la experiencia del MOOC en el aula
• Invitación: hágalo usted mismo
31
![Page 28: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/28.jpg)
Como el MOOC mejoró el curso residencial
• Calificación automatizada…– permite que los ayudantes de enseñanza
se enfoquen en revisar los diseños, no en calificar
– Nos exige tareas libres de errores– Notar: debido a las mismas herramientas
que motivaron nuestros revisiones del curso
• Mejor organización de las conferencias: mayor asistencia, menos alumnos distraídos
• Mínima dependencia en recursos informáticos de la Universidad (debido a la nube)
32
![Page 29: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/29.jpg)
MOOC comparado con curso residencial
• Esfuerzo (horas/semana) y calificación de los estudiantes MOOC: dentro del 10% comparado con estudiantes en Berkeley, …pero… – No hay contacto directo entre estudiantes
MOOC y profesores/ayudantes – MOOC no exige proyecto con cliente
(profesor y ayudantes supervisan y facilitan revisión del diseño)
• Oportunidad: combinar las mejores características del MOOC con la experiencia del curso residencial
33
![Page 30: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/30.jpg)
Desventajas/Dolores/Trampas
• Criterios de calificación son demasiado anchos o estrechos – Desarrollo de las rúbricas por ensayo y error, yá
que el MOOC lleva 4 semanas de retraso comparado con curso residencial
– Afinar la retroalimentación de los calificadores para enfocar el contexto de las pruebas que no pasan
• Imposible impedir el plagio: en curso residencial, los exámenes se toman en el aula– Tal vez no es problema mientras el MOOC no
ofrezca crédito académico• Fechas tope de los proyectos a veces no
coincidían con la disponibilidad del cliente– Estimar «velocidad» requiere múltiples medidas
consistentes
34
![Page 31: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/31.jpg)
Outline
• El problema y nuestra respuesta: Revisar el curso pregrado de Software Engineering
• Aprender haciendo en vez de escuchando: herramientas reemplazan metodologías
• Ampliación del curso a 50,000 estudiantes
• Aplicando la experiencia del MOOC en el aula
• Invitación: hágalo usted mismo
35
![Page 32: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/32.jpg)
Obstáculo: ¡demasiados libros!
36
![Page 33: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/33.jpg)
Respuesta: Nuevo texto conciso y
barato
37
• Conecta los temas de acuerdo con sus funciones en una iteración ágil
• Se refiere a libros adicionales para obtener más detalles sobre cada tema
• Un capítulo = una semana• Una sección del capítulo =
un módulo de video (conferencias)
• Libro electrónico con actualizaciones gratuitas (7 veces desde primera publicación en enero)
€9.99 electrónica€19.99 impresaDescuento 20%
en CreateSpace.com
![Page 34: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/34.jpg)
Reacciones de nuestros colegas
«Sería mucho más probable preferir alumnos de este programa que de cualquier otro que he visto.»Brad Green, Gerente de Desarrollo y de Pruebas, Google Inc.
«Es un placer ver un texto que hace hincapié en la producción de software útil y real. También aplaudo el énfasis en obtener resultados al inicio del proceso, pues nada estimula más la moral y la actividad de los estudiantes.»Frederick P. Brooks, ganador del Premio Turing y autor del libro clasico The Mythical Man-Month
38
![Page 35: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/35.jpg)
Apoyando a los maestros
• 24 Julio: UC Berkeley se une a EdX• “SaaS parte II” a ofrecer en noviembre
– Técnicas avanzadas, trabajando en equipos «dos pizzas», manejando código heredado, JavaScript, seguridad y prestaciones en la nube
• Mejorando las evaluaciones a través de minería de datos – ¿Cuáles preguntas son las más dificiles?– ¿Cuáles son las que más discriminan entre
niveles de comprensión? 39
![Page 36: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/36.jpg)
Programa beta:Pruebelo en su aula
• Recursos para utilizar como lo desee– Conferencias pregrabadas– Exámenes y tareas de
programación– Texto conciso y barato– Materias adicionales para
el instructor – Calificadores
automatizados compatibles con el entorno EdX (será código abierto antes del fin de año)
40
Descuento del 20% en el libro impreso e
informes sobre el programa beta
![Page 37: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/37.jpg)
¿Qué representa SaaS+Ágil para el aula y la empresa?
• Debido a computación en la nube, el talento en desarrollo puede convertirse en recompensa rápidacon baja barrera de entrada
• Los MOOCs pueden ayudar tanto con el reclutamento y la formación continua
• Excelentes herramientas + nube + MOOC + libro= preparación de los futuros líderes del software
41
SaaS + nube
Desarrollo ágilRails
« triangul
o amoroso
»
![Page 38: Cruzando el abismo educativo de la ingeniería de software utilizando Software como Servicio y computación en nube](https://reader035.vdocuments.pub/reader035/viewer/2022081404/55848fc1d8b42a05388b4616/html5/thumbnails/38.jpg)
¡Gracias!
Agradecimientos: Profs. David Patterson, Andrew Ng, Daphne Koller, Daniel Garcia, y personal de enseñanza
de CS 169 desde 2007 al presenteTraducción: es.wikipedia.org, Google Translate, y
Estudiantes Posgrados Latinoamericanos en Ingeniería y Ciencias (LAGSES) de UC Berkeley
Donaciones y/o apoyo: Amazon Web Services, GitHub, Google Inc., Microsoft Corp., New Relic, Pivotal Labs,
Sauce Labs
42