Profesor | Roberto Anzaldua Gil | ma ju | 18:30 a 20 | Taller de Lenguajes de Programación |
Ayudante | José Carlos León Pérez | lu mi | 20 a 21 | Taller de Lenguajes de Programación |
Ayud. Lab. |
Presentación
Semestre: 2015-2
Requisitos
Haber aprobado el curso de estructuras de datos y el curso de programación y modelado. Si son del plan anterior a 2013, haber aprobado el curso de introducción a ciencias de la computación II.
Contenido y objetivos del curso
Los temas relacionados con este curso, son muy extensos, por lo que en este, se verá una introducción para darle al alumno una base sólida para manejar patrones y mejorar la calidad del software que desarrolle.
Se estudiarán dos áreas:
Patrones de diseño de software
La mayoría de los sistemas de software, requieren resolver una serie de problemas para los cuáles existen soluciones generales desarrollados por expertos que siguen una organización y estructura al momento de programar la solución. Eso es justamente un patrón de diseño de software e incluir estas soluciones, permite que nuestros sistemas sean más eficientes, que sea más fácil extenderlo y aumentan su vida útil.
El alumno aprenderá a:
a) Identificar los problemas que se resuelven utilizando patrones de diseño
b) Escoger el patrón de diseño adecuado
c) Estructurar los sistemas de software adecuadamente
d) Aumentar la vida útil de los programas
e) Entender mejor cómo funcionan los sistemas de software
Diseño de software y programación
Existen diversas formas de mejorar el código que realizamos: nombres de variables, organización del código, reducción de bloques innecesarios, disminución de anidamiento en ciclos. Todas estas mejores prácticas, nos ayudan a tener un código más legible y de un excelente valor para las personas que lleguen a trabajar con nuestros sistemas, además de facilitarnos la tarea de programar.
De esta parte, el alumno aprenderá a:
a) Escribir código más legible
b) Reducir el número de anidamientos
c) Optimizar la estructura de sus sistemas
d) Entender la importancia de los nombres (variables, clases, proyectos)
e) Disminuir el tiempo de desarrollo de programas
Evaluación
30% Tareas prácticas (ejercicios de programación)
20% Tareas teóricas (habrá exposiciones)
50% Exámenes (de programación y escritos)
Se pasará lista. Por cada 10 faltas, se bajará un 10% de la calificación total.
Bibliografía
Analysis patterns, reusable object models, Martin Fowler
Bibliografía complementaria
Martin Fowler, Patterns of enterprise application architecture, Addison-Wesley Professional
Clean code: A handbook of agile software Craftmanship, Hall