Nombre de la materia: Programacin Cdigo: 2010200 Grupo B Carga horaria: 24 hrs Materias con las que se relaciona: VERTICAL HORIZONTAL 1. Elementos de Programacin y Estructura de Datos (2010003) 2. Arquitectura de Computadoras I (2010013) 3. Algebra II (2008022) 4. Clculo II (2008143) 5. Ingls II (1803002) 1. Introduccin a la programacin (2010010) 2. Teora de Grafos (2010037)
Desarrollar una base slida en el rea de programacin Mejorar las habilidades de programacin en base a tcnicas de verificacin Desarrollar habilidades de generacin de cdigo autodocumentado Estimular el razonamiento lgico y abstracto en la resolucin de problemas del mundo real.
El curso de programacin es fundamental en la formacin del estudiante de la carrera de informtica, debido a que en esta asignatura los estudiantes profundizaran razonamiento lgico algortmico en la resolucin de problemas computacionales tomando en cuenta, principios de la filosofa de programacin orientada a objetos, de cdigo limpio y reutilizable, correcto, etc. Buscando la mejora continua en sus destrezas de programacin, teniendo una actitud crtica y reflexiva respecto su estilo de programacin. Por lo que se desea dar especial nfasis al razonamiento, abstraccin, lgica y la construccin de algoritmos, que podrn ser aplicados en cualquier lenguaje de programacin, puesto que la utilizacin de los lenguajes de programacin est sujeta al tipo de problema que se desea resolver. Sin embargo para que el estudiante tenga experiencias concretas y reales todos los conceptos tericos aprendidos se utilizar un lenguaje de programacin, para este propsito se eligi el lenguaje Java.
II. JUSTIFICACIN III. OBJETIVOS 3
UNIDAD 1.- Elementos de Programacin y Lenguajes Objetivos de la Unidad. Identificar los principales elementos de programacin Analizar el proceso de abstraccin procedimental de datos Analizar principios de la programacin orientada objetos. Reflexionar sobre la importancia de la programacin orientada a objetos.
Contenido 1.1 Sintaxis y semntica 1.2 Abstraccin procedimental y de Datos 1.3 Tipos abstractos de datos 1.4 Clases y objetos 1.4.1 Conceptos 1.4.2 Relaciones entre clases
UNIDAD 2: Polimorfismo y Herencia avanzada Objetivos de la Unidad
Identificar las caractersticas de Herencia Disear soluciones aplicando el concepto de Herencia Construir Jerarquas de Clases Identificar las caractersticas principales de Polimorfismo. Disear soluciones aplicando el concepto de Polimorfismo. Identificar las caractersticas y aplicabilidad de las Interfaces. Contenido 2.1 Herencia 2.1.1 Concepto 2.1.2 Enmascaramiento de variable y sobreescritura de mtodos 2.1.3 Jerarquas de clases (paquetes) 2.1.4 Polimorfismo 2.2 Herencia mltiple 2.3 Interfaces
IV. SELECCIN Y ORGANIZACIN DE CONTENIDOS 4
UNIDAD 3 .- Refactorizacin Objetivos de la Unidad. Identificar las caractersticas principales de la Refactorizacin Definir estrategias para hacer Refactorizacin Identificar las principales reglas de Refactorizacin Analizar las ventajas de la aplicacin de la Refactorizacin
Contenido 3.1 Introduccin 3.2 Tratamiento de BadSmell 3.3 Metfora de los dos sombreros 3.4 Composicin y Mtodos 3.5 Migracin de caractersticas en mtodos 3.6 Reglas de Refactorizacin
UNIDAD 4.- Programacin guidada por verificacin Objetivos de la Unidad. Describir las cualidades esenciales de la programacin guiada por verificacin Identificar las caractersticas de los Assertions y su aplicabilidad Analizar el Principio de Invarianza Identificar los componentes principales del los tests de unidad Disear tests de unidad
Contenido 4.1 Introduccin 4.2 Assertions 4.3 Principio de Invarianza 4.4 Tests de unidad 4.4.1 Introduccin 4.4.2 Cmo escribir Test de Unidad 5
UNIDAD 5.- Verificacin para simulacin con objetos Objetivos de la Unidad. Asegurar un correcto aislamiento de la clase bajo test mediante Mock Objects Simular el comportamiento de cdigo existente mediante Stubs Identificar caractersticas y aplicabilidad del Dummy Code
UNIDAD 6.- Programacin orientada por componentes Objetivos de la Unidad. Describir las cualidades esenciales de la programacin guiada por componentes Identificar la principales restricciones para componentes Analizar las interfaces de los componentes Disear componentes reutilizables
Contenido 6.1 Conceptos bsicos 6.2 Definicin de interfaces de componentes 6.3 Definicin de restricciones para componentes 6.4 Uso de componentes
La metodologa de enseanza que se consider apropiada para lograr el mximo aprovechamiento del estudiante dentro del proceso enseanza-aprendizaje ser:
1. Clase dialogada. 2. Uso de analogas y metforas relacionadas con los temas a desarrollar. 3. Mtodo basado en la resolucin de problemas. 4. Dinmicas grupales incorporando elementos ldicos para la comprensin de las unidades temticas.
V. METODOLOGAS 6
UNIDAD DURACIN (HORAS ACAD.) DURACIN EN SEMANAS
UNIDAD 1.- Elementos de Programacin y Lenguajes
12
2
UNIDAD 2: Polimorfismo y Herencia avanzada
24
4
UNIDAD 3 .- Refactorizacin
24
4
UNIDAD 4.- Programacin guidada por verificacin
24
4
UNIDAD 5.- Verificacin para simulacin con objetos
18
3
UNIDAD 6.- Programacin orientada por componentes
18
3 VI. CRONOGRAMA O DURACIN EN PERIDOS ACADMICOS POR UNIDAD
El nivel de conocimientos de los estudiantes se medir y calificar mediante pruebas escritas, participacin activa en actividades desarrolladas en las clases y trabajo prcticos. Para motivar la participacin activa de los estudiantes se calificar los aportes que realice en clase.
Porcentaje de distribucin de la nota Actividades en clases: 10% Trabajos Prcticos: 10% Exmenes: 80% Total: 100%
VII. CRITERIOS DE EVALUACIN 7
Textos Base: Refactoring Improving de Design of Existing Code, Martin Fowler, Editorial Addison Wesley,2002. Introduccin a la programacin con Orientacin a Objetos, Carmelia Muoz Caro, Alfonso Nio Ramos, Aurora Vizcaino Barcel, Editorial Prentice Hall, 2002.
Textos de referencia y consulta: http://ebooks.elportal.info/Addison%20Wesley%20-%20Refactoring%20- %20Improving%20the%20Design%20of%20Existing%20Code.pdf http://www.chuidiang.com/ood/refactoring/refactoring.php http://el-golem.com.ar/index.php/poc/22-que-es-la-programacion-orientada-a-componentes http://wwwdi.ujaen.es/asignaturas/progav/progav-tema4.pdf