UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave: 08USU4053W FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: OPTATIVA 21: TÓPICOS SELECTOS DE SOFTWARE I DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios: Ingeniería Ingeniería de Software Optativa OPSW21 Séptimo Ciencias de la Computación e Informática Créditos 4 Total de horas por semana: 4 Teoría: 2 Práctica 3 Taller: Laboratorio: Prácticas complementarias: Trabajo extra clase: Total de horas semestre: 64 Fecha de actualización: Junio 2013 Materia requisito: Propósito del curso: El alumno podrá diseñar y desarrollar programas escritos en el lenguaje de programación Ruby. Conocerá su estructura, sintaxis, y semántica. También conocerá sus propiedades avanzadas como reflexión, programación funcional, metodología de pruebas, métodos dinámicos y metaprogramación. Esto le permitirá al alumno conocer de manera profunda las características del lenguaje y aprovechar todas sus facilidades tales como legibilidad, facilidad de mantenimiento de código, enfoque hacia el programador en vez de a la máquina y alta productividad. Al final del curso el estudiante: Utilizar el lenguaje Ruby en general. Aplicar el lenguaje Ruby como una herramienta para resolver problemas de desarrollo de software Desarrollar aplicaciones web con las características especiales de Ruby para este contexto. Comprender los límites y alcances de un lenguaje de tan alto nivel como Ruby Aplicar metodologías de alto nivel de desarrollo y modelado de aplicaciones enfocadas a Web.
COMPETENCIAS (Tipo Y Nombre de la competencias que nutre la materia y a las que contribuye). El curso promueve las siguientes competencias: Competencias Básicas: Solución de problemas. Trabajo en equipo y liderazgo. Comunicación. Competencias Profesionales: Proyectos de Ingeniería Ingeniería de Proceso Competencias Específicas: Básicos de Computación en Ingeniería del Software DOMINIOS COGNITIVOS. (Objetos de estudio, temas y subtemas) Desarrollo de aplicaciones con Ruby UNIDAD I: INTRODUCCIÓN A 1 Sintáxis y semántica 1.2 Palabras reservadas 1.3 Constantes, variables y tipos. 1.4 Control de flujo 1.5 Bucles 1.6 Excepciones 1.7 - Funciones. OBJETOS CON 2.1 Objetos 2.2 Libreria de clases 2.3 Modulos y Mixins 2.4 Clases, metodos y atributos. 2.5 Propiedades Dinamicas de Ruby 2.5.1 Modificacion de codigo en tiempo de ejecucion. 2.5.2 Reflexion.. RESULTADOS DE APRENDIZAJE. (Por objeto de estudio). Identifica y describe el lenguaje y las herramientas. También debe ser capaz de realizar programas sencillos en Ruby. Reconoce más a fondo el lenguaje y será capaz de hacer programas sencillos de un archivo que realicen ejercicios básicos de programación. Desarrollará ejemplos y es capaz de describir el proceso ejecución del código y como modificarlo. UNIDAD III: TRABAJANDO CON 3.1 Cadenas de caracteres 3.2 Expresiones regulares 3.3 Cálculos numéricos 3.4 Rangos y Símbolos 3.5 Fechas y Horas 3.5 Arreglos, diccionarios y otros objetos numerables 3.6 Estructuras de datos avanzadas. 3.7 Archivos y manejo de Entrada/Salida. UNIDAD IV: PRUEBAS Emplea y reconoce las herramientas, así como también conoce la mayoría de las librerías incluidas en el lenguaje. Reconoce el concepto de Test Drivien
4.1 Introduccion a programación orientada a pruebas (TDD) 4.2 Configuración y Comparadores 4.3 Organización de pruebas 4.4 Eventos y etiquetas 4.5 Mocking y Stubbing UNIDAD V: METAPROGRAMACIÓN EN 5.1 Open Classes 5.2 Métodos Dinámicos 5.3 Bloques de Código 5.4 Código que escribe código. UNIDAD VI: EN (ANDROID) 6.1 JRuby 6.2 Ruboto 6.3 Interfaz gráfica 6.4 Trabajando con el API nativo Development y como esta arraigado en la cultura de la comunidad Ruby. Reconoce y aplica las técnicas de metaprogramación que se usan en las mas populares librerías de Ruby. Desarrolla y diseña una sencilla aplicación para Android usando los conocimientos adquiridos en las anteriores unidades. OBJETO DE ESTUDIO UNIDAD I: INTRODUCCIÓN A OBJETOS CON UNIDAD III: TRABAJANDO CON UNIDAD IV: PRUEBAS UNIDAD V: METAPROGRAMACIÓN EN UNIDAD VI: EN METODOLOGIA (Estrategias, secuencias, recursos didácticos) Para el logro de los objetivos del curso, se propiciará la participación activa del alumno, el proceso enseñanza aprendizaje consistirá de las siguientes actividades: Exposición y guía por parte del maestro Participación del alumno en los diferentes temas Exposición de temas por parte del alumno Prácticas de laboratorio Desarrollo de tareas e investigaciones Solución de casos de estudio Desarrollo de proyectos EVIDENCIAS DE APRENDIZAJE. Tareas de Investigación Prácticas de Laboratorio Exposiciones
(ANDROID) FUENTES DE INFORMACIÓN (Bibliografía, Direcciones electrónicas) 1. Hal Fulton (2006) The Ruby Way. (Segunda Edición). Pearson 2. Dave Thomas, Chad Fowler, Andy Hunt (2009) Programming Ruby 1.9: The pragmatic Programmers Guide. (Cuarta Edición). The Pragmatic Programmers 3. Paolo Perrota (2010) Metaprogramming in Ruby: Program Like the Ruby Pros. The Pragmatic Programmers. 4. Lenguaje de Programación Ruby - http://www.ruby-lang.org/. 5. JRuby http://www.jruby.org/. 6. Ruboto http://www.ruboto.org/. EVALUACIÓN DE LOS APRENDIZAJES (Criterios e instrumentos) Se toma en cuenta para integrar calificaciones parciales: Discusión Individual y por equipo, tareas y prácticas, lo cual otorga un valor del 20% 3 Exámenes parciales escritos donde se evalúan conocimientos, comprensión y aplicación con un valor de 80% cada uno. La acreditación del curso se integra por promedio de las 3 calificaciones parciales. Nota: para acreditar el curso la calificación mínima aprobatoria será de 6.0 La evaluación del proceso enseñanza aprendizaje se realizará de manera continua a través de todo el curso, tomando en cuenta los siguientes aspectos para cada parcial: Forma Aspecto Peso (%) Individual Examen Teórico 20 Examen Práctico 15 Participación en Clase 10 Equipo Tareas: lecturas e 10 investigaciones Documentación 15 de prácticas de laboratorio Exposición del 10 proyecto desarrollado Documentación 10 técnica del proyecto 5 Documentación del tema de exposición Exposición de un tema 5
Cronograma Del Avance Programático S e m a n a s Objetos de estudio 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 UNIDAD I: INTRODUCCIÓN A OBJETOS CON UNIDAD III: TRABAJANDO CON UNIDAD IV:. PRUEBAS UNIDAD V:. METAPROGRAMACIÓN EN UNIDAD VI: EN (ANDROID)