UNIVERSIDAD PILOTO DE COLOMBIA PLAN ANALÍTICO DEL PROGRAMA FACULTAD DE INGENIERIA ÁREA COMÚN DE INFORMÁTICA 1. PRESENTACIÓN DE LA ASIGNATURA O CURSO ACADÉMICO Nombre del curso Introducción a la Programación AI000012 Código del curso (opcional) Área de Formación (básica, profesional, Básica complementaria, investigativa) Tipo de curso (teórico, práctico, teórico – práctico) Teórico – práctico Carácter del curso (obligatorio, electivo) Obligatorio Créditos académicos 3 Horas de acompañamiento 4 Horas de Trabajo Independiente 5 Fecha de actualización Marzo de 2008 2. DESARROLLO DEL CURSO Palabras claves Algoritmos Programación UML JAVA JUSTIFICACIÓN: La ingeniería de software ha diseñado una forma diferente para desarrollar aplicaciones informáticas, que consiste en visualizar el mundo tal y como es, es decir, colecciones de objetos que se pueden representar de forma general incluyendo sus características (atributos) y sus respectivas operaciones (funciones miembro y/o métodos). Aunque este paradigma Orientado a Objetos puede ser soportado en cierto grado en los lenguajes tradicionales; los lenguajes orientados a objetos proporcionan el esqueleto en la funcionalidad de los objetos, clases, métodos y mensajes, para hacer posible la creación de programas que sean más exactos y menos complejos. La orientación de objetos es un nivel de abstracción de computadora más allá del de los procedimientos y datos, anima al desarrollador de software a concentrarse en los temas importantes e ignorar el resto. Por tal motivo el ingeniero debe estar en capacidad de generar soluciones acordes con la tecnología que va a encontrar en el mercado laboral con el ánimo de satisfacer sus necesidades informáticas. La programación orientada a objetos permite, entre otros aspectos, escribir programas robustos debido a la posibilidad de modularizar y reutilizar código. Es por tanto necesario 1 que todos los que se dediquen a realizar software en cualquier área, además de los conceptos de diseño y modelado, conozcan los principios de la orientación a objetos, el código, la sintaxis y la semántica de un lenguaje de programación orientado a objetos con los cuales desarrollen habilidades para la construcción de software con múltiples propósitos. Se trata de brindar al estudiante las herramientas teórico - prácticas que le permitan asumir nuevos derroteros para la generación de propuestas en el área de la computación, uso y aplicación de las bases conceptuales y practicas en la industria como un marco de referencia en su proceso de formación especifica en el área científica en el cual nos movemos. Cualquier profesional se verá abocado, en más de una ocasión, a dar solución a diversas problemáticas inherentes a su profesión, para lo que deberá tener una buena capacidad de análisis, que le permita realizar un proceso de abstracción de la realidad de manera tal que la modele y pueda tener alternativas de solución posibles, A través de este espacio académico se le proporciona al estudiante unos conocimientos y herramientas que le permitan aumentar su capacidad de análisis, que le permitan modelar la realidad como uno de los métodos más viables para la solución de problemas, además que desarrollen destrezas en la construcción de algoritmos. PROPÓSITOS FORMATIVOS: Desarrollar en el estudiante, el pensamiento lógico deductivo, a través de la solución de diferentes problemas donde se requiera un proceso de razonamiento y análisis profundo. Desarrollar habilidades necesarias que le permitan la construcción de Algoritmos. Desarrollar la capacidad de interpretación mediante el uso de estructuras lógicas expresadas en un lenguaje natural y a través de la orientación a objetos de tal forma que las pueda codificar en un lenguaje de programación (JAVA). Desarrollar la capacidad del estudiante para resolver cualquier tipo de problema informático a través del modelamiento en UML y la implementación de la solución en JAVA. 2 COMPETENCIAS A DESARROLLAR O FORMAR: La metodología utilizada en el desarrollo propende a que el estudiante: Realiza un proceso de análisis de un problema, utilizando una metodología específica; donde defina Cliente, usuario, requerimientos funcionales, mundo del problema y requerimientos no funcionales. Aprende a manejar elementos básicos de un lenguaje de modelado visual como UML, con la finalidad que construya los modelos, los interprete y especifique su estructura y comportamiento. Aprende a utilizar los principios básicos de la programación orientada a objetos “Alta cohesión, Débil acoplamiento”, para que las clases que construya estén ajustadas a los estándares. Cree algoritmos a partir del planteamiento de un problema y sus especificaciones; y con base en diagramas de clases y objetos ajustados con UML. Implemente programas en JAVA embebidos con ECLIPSE, llevando a cabo los procesos de codificación, compilación, detección de errores y ejecución. Utilice en forma correcta y eficiente las estructuras básicas de un lenguaje orientado a objetos como son: paquetes, constantes, variables, operadores, estructuras cíclicas, estructuras de decisión y funciones. Construye e implemente en un lenguaje orientado a objetos los diagramas de clases o clase definidos en la etapa de análisis y diseño; a través de la codificación de clases y sus respectivas partes(atributos y métodos), como también la creación de objetos y la interactividad o relación entre ellos. Diseñe y construya interfaces en Java para una interactividad de calidad entre el usuario y la aplicación. Que contengan ventanas, botones, botones de opción y chequeo, Etiquetas, menús entre otras. Maneje en forma eficiente el almacenamiento temporal de datos y/u objetos a través de vectores tanto estáticos como dinámicos con el fin de llevar a cabo métodos que requieran la información mas de una vez. 3 METODOLOGIA Y ESTRATEGIAS DIDÁCTICAS: La clase se desarrolla en las aulas del laboratorio de informática y en los salones de la universidad, dado que es una asignatura de diseño y creación de programas basados en computador. Metodología: Asignación de consultas y lecturas previas a la clase magistral para que el estudiante estudie y reflexione respecto a los conceptos a tratar; Exposición magistral del docente de las temáticas utilizando material audiovisual (video beam, proyector de acetatos, tablero, entre otros); Complemento al trabajo del estudiante con el planteamiento y solución de problemas en clase (talleres) y el desarrollo de programas de computador en el laboratorio de Informática. Estrategias: El profesor asigna las lecturas y temas de consulta previos a cada clase, presenta de manera general a través de clase magistral cada tema del contenido y, posteriormente, los estudiantes, reunidos en grupos de 2 o 3 estudiantes complementan dichos temas mediante trabajo dirigido con la solución de talleres en clase y laboratorio respectivamente; a la vez se lleva acabo la evaluación del estudiante. En horarios extractase el alumno de forma voluntaria tiene la oportunidad de acudir a tutorías con el objetivo de aclarar dudas, orientar al estudiante en las lecturas previas a la clase y/o asesoría para resolver problemas de teoría y practica planteados por el profesor titular. 4 EVALUACIÓN FORMATIVA: El docente ejecuta un sistema de evaluación que le permita tener un control directo sobre sus estudiantes, de manera tal que sea posible un proceso interactivo, dinámico y dirigido a cada uno de ellos, en donde deberá existir la retroalimentación constante. Este sistema evaluativo tendrá tres instancias, acorde a las directrices institucionales al respecto, las cuales tendrán un valor del 30%, 30% y al 40%, respectivamente. Para cada instancia se le asigna un valor porcentual de 70% y 30% al trabajo de clase y el trabajo de laboratorio, respectivamente. FUENTES DE INFORMACIÓN: VILLALOBOS, JORGE, Fundamentos de Programación, Ed. Prentice Hall. TJ: Joyanés Luís (1996). Fundamentos de Programación: Algoritmos y Estructura de Datos. McGraw Hill. C: Cairó Osvaldo (1995). Metodología de la Programación. Alfaomega HPC: Deitel & Detiel, C++ – How to Program CEBALLOS, FRANCISCO JAVIER, Programación Orientada a Objetos, Ed. Alfa Y Omega. 5 ORGANIZACIÓN DE LAS UNIDADES DIDÁCTICAS No . 1 Nombre de la Unidad Didáctica de aprendizaje Problemas, Soluciones y Programas. 1.1. Encuadre pedagógico Teoría. 1.2. Encuadre pedagógico Práctica. 1.3 Introducción y metodología para la construcción de software: Análisis del problema (Cliente, Usuario, Requerimientos funcionales, Mundo del problema y Requerimientos no funcionales y/o Condiciones y restricciones; Taller1) Teoría. 1.4. Instalación de Eclipse y java. Estructura básica de un programa Java (variables, constantes, tipos de datos, operadores, tipos de operadores; Taller 0) e Inducción básica de Eclipse Práctica. 1.5. Identificación y partes de un requerimiento funcional (Identificador, Nombre, Resumen, Entradas y Salida; Taller 2) Teoría. 1.6. Creación y compilación de un programa en JAVA en ambiente ECLIPSE (Diferencia entre ambientes consola y Grafico; Taller 1) Práctica. 1.7. Modelado del mundo del problema (Identificar las entidades o clases, Características de las entidades, Relaciones entre entidades y Documentar: Taller 3) Teoría. Actividades del estudiante La primera unidad se desarrolla en 14 sesiones divididas en 7 sesiones de teoría y 7 sesiones de práctica, para las unidades temáticas planteadas. Los estudiantes tienen una participación activa durante la clase teórica confrontando las lecturas previas establecidas y las autoconsultas realizadas, con el desarrollo magistral de la clase, en espacios destinados a resolución de dudas y participación de los estudiantes en ampliación de conceptos. En la clase teórica se desarrolla un taller dirigido, de aplicación de los conceptos tratados. Los estudiantes reciben los conceptos necesarios para poder utilizar las herramientas de programación del curso en las clases de laboratorio. En la clase de laboratorio se desarrolla un taller, donde el estudiante utiliza los conceptos adquiridos en clases teóricas y de laboratorio, para resolver problemas específicos mediante un programa Java de aplicación. El porcentaje evaluativo es de 70% para la teoría y 30% para la práctica. 1.8. Apertura, reconocimiento, modificación y programación de opciones de un proyecto creado con Java en ambiente ECLIPSE (se trabaja con un proyecto ya iniciado, el alumno lo reconoce, programa sus opciones, compila y corrige con la ayuda del docente; Taller 2) Practica. 1.9. Diagramas de Clases: Representación grafica y partes: Entidades, Atributos y 6 Tiempo empleado en el aprendizaje Trabajo de Trabajo acompañamiento Independiente TAD TAG TAT TA TC 14 14 60 Total Horas relación de asociación (Taller 4) Teoría. 1.10. Reconocimiento de Clases, atributos, métodos, carpetas de un proyecto y programación de botones opcionales de un programa en java. (Taller 3) Practica. 1.11 Representación de diagramas de objetos, posibles valores de los atributos y tipos de datos y codificación en java de clases (Taller 5) Teoría. 1.12. Manejo de atributos (declaración), reconocimiento de las clases de la Interfaz y programación de botones opcionales (Taller 4). Practica. 1.13. Codificación de objetos, partes y codificación de métodos: constructores y normales (Taller 6). Teoría. 2 Definición de Situaciones y manejo de La segunda unidad se desarrolla en 6 sesiones divididas en 3 sesiones de teoría casos. 2.1. Introducción, Manejo y declaración de contantes, Concepto, tipos y uso de operadores, manejo de expresiones aritméticas y lógicas y construcción de métodos (Taller 7) Teoría. 2.2 Declaración de atributos, de objetos y de métodos que solucionen un problema o un proceso y que estén representados en un diagrama de clases (Taller 8). Practica. 2.3. Manejo de operadores relacionales y lógicos (<,>,<=,>=,!=,==,&& y ||) conjuntamente con estructuras de decisión (if, if-else, if-elseif-else y switch case). Taller 9). Teoría. 2.4. Uso de estructuras de decisión, creación de objetos y métodos y programación de botones opcionales. (Taller 9). Practica. 3 Manejo de grupos de atributos 3.1 Introducción, Concepto y manejo instrucciones repetitivas 3.1.1. For 3.1.2. While 3.1.3. Do - While. (Taller 10). Teoría. 3.2 Uso de estructuras cíclicas (for, while y do-while. Taller 10). Practica. 3.3. Unidades contenedoras de tamaño fijo 6 6 24 6 6 24 y 3 sesiones de práctica, para las unidades temáticas planteadas. Para las clases teóricas y las clases de laboratorio se desarrollan las mismas estrategias utilizadas en la unidad 1. El porcentaje evaluativo es de 70% para la teoría y 30% para la práctica. La tercera unidad se desarrolla en 6 sesiones divididas en 3 sesiones de teoría y 3 sesiones de práctica, para las unidades temáticas planteadas. Para las clases teóricas y las clases de laboratorio se desarrollan las mismas estrategias utilizadas en la unidad 1. 7 (vectores estáticos). 3.3.1. Declaración de arreglos. 3.3.2. Inicialización de arreglos. 3.3.3. Acceso a elementos de un arreglo. Taller 11). Teoría. 3.4. Uso de vectores estáticos para almacenar datos. Taller 11. Practica. 3.5. Unidades contenedoras de tamaño variable (vectores). 3.5.1. Declaración de vectores. 3.5.2. Inicialización y tamaño de vectores. 3.5.3. Acceso a elementos de un vector. 3.5.4. Agregar elementos a un vector. 3.5.5. Remplazar elementos de un vector. 3.5.6. Eliminar elementos de un vector. Taller 12. Teoría. 3.6. Uso de vectores dinámicos para almacenar datos. Taller 12. Practica. El porcentaje evaluativo es de 70% para la teoría y 30% para la práctica. 6 4 Construcción de la Interfaz gráfica Construcción de la interfaz de usuario 4.1. Elementos gráficos estructurales 4.1.1. Creación de la ventana principal. 4.1.2. Distribución gráfica de elementos. 4.1.3. Divisiones y paneles. 4.1.4. Etiquetas y zonas de textos. 4.1.5. Validación y formateo de datos. 4.1.6. Selección de opciones. (Taller 5) Practica. Construcción del mundo del problema 4.2. Elementos de Interacción. 4.3. Mensajes y lectura simple de datos. 4.3.1. Mensajes en consola. 4.3.2. Mensajes en una ventana. 4.3.3. Capturar información. (Taller 6). Practica. 6 32 La cuarta unidad se desarrolla en 6 3 sesiones de teoría y 6 sesiones de práctica, para las unidades temáticas planteadas. Para las clases de laboratorio se desarrollan las mismas estrategias utilizadas en la unidad 1. El porcentaje evaluativo es de 70% para la teoría y 30% para la práctica. TOTAL DE HORAS DE ACUERDO AL NÚMERO DE CRÉDITOS 32 32 144 TAD: Trabajo de Acompañamiento dirigido; TAG Trabajo de Acompañamiento guiado; TAT: Trabajo de Acompañamiento tutorial; TA: Trabajo autónomo; TC: Trabajo colaborativo. 8 3