FORMATO OFICIAL DE MICRODISEÑO CURRICULAR FACULTAD: INGENIERIA PROGRAMA: ELECTRONICA 1. IDENTIFICACIÓN DEL CURSO NOMBRE DEL CURSO: CÓDIGO: PRERREQUISITOS: TALLER DE PROGRAMACIÒN No. DE CRÉDITOS ACADÉMICOS: 3 HORAS SEMANALES: 4 INTRODUCCIÒN A LA PROGRAMACIÒN ÁREA DEL CONOCIMIENTO: CIENCIAS BÀSICAS DE INGENIERÌA UNIDAD ACADÉMICA RESPONSABLE DEL DISEÑO CURRICULAR: INGENIERÌA ELECTRÒNICA COMPONENTE BÁSICO X COMPONENTE FLEXIBLE TIEMPO (en horas) DEL TRABAJO ACADÉMICO DEL ESTUDIANTE Actividad Académica Del Trabajo Presencial Estudiante Trabajo Independiente Total (Horas) Horas (Semanal) 4 5 9 TOTAL (Semestral) 64 80 144 1 2. PRESENTACIÒN RESUMEN DEL CURSO La programación de computadores permite la utilización de estas en la solución de problemas de Ciencia, Ingeniería y Administración de Negocios entre otros. Este uso se basa en su habilidad para trabajar a gran velocidad, para producir resultados exactos, para almacenar grandes cantidades de información y para llevar a cabo secuencias de operaciones largas y complejas. Entonces, el estudiante de Ingeniería debe estar en capacidad de hacer uso de ellas, aunque no sea el objetivo mismo de su formación, para tratar de encontrar una solución rápida y adecuada haciendo uso de la programación y de lenguajes de última generación, frente a varias alternativas que por su complejidad llevarían demasiado tiempo estudiarlas. Siendo el objeto del curso de taller de programación la elaboración de interfaces bien presentadas, el curso tiene un carácter más técnico que puramente visual. En la vida real, los volúmenes de información que se manejan en cálculo numérico hacen que se deba tener conocimiento a nivel de bases de datos y manejo de archivos, haciendo necesario que buenas técnicas de programación deba tenerlas el alumno. Dentro del curso se estudian las diferentes técnicas de manejo de datos, diferentes objetos que permiten realizar una interfaz agradable al usuario que interactúa con ella. Este curso es ofrecido a los estudiantes del programa de Ingeniería Electronica de cuarto semestre y pudiese ofrecer como electiva básica de ingeniería a los alumnos de Ingeniería agrícola e Ingeniería de Petróleos. Objetivo: Proporcionar al estudiante las herramientas necesarias para el desarrollo de aplicaciones usando un lenguaje visual de alto nivel. Objetivos Generales: Manejo adecuado de las estructuras de programación y técnicas en el manejo de datos. Manejo de datos en archivos tipo texto y binarios. Manejo de motores de bases de datos y configuración de drivers para interactuar adecuadamente con los componentes del lenguaje. Manejo de componentes, sus propiedades, eventos y métodos que se pueden aplicar a los mismos. Manejo de los diferentes tipos de formularios. Principal, MDI, Children. Creación de objetos y uso de estructuras de forma dinámica en modo ejecución de la aplicación. Manipulación y creación de objetos gráficos con los métodos que proporciona el lenguaje. 2 3. JUSTIFICACIÓN. El curso de Taller de Programación es de gran importancia para los estudiantes de Ingeniería Electrónica, porque les permite adquirir, comprender y utilizar lenguajes de programación orientados a objetos, como herramienta fundamental en el desarrollo de aplicaciones. Les permite a los estudiantes a través de las aplicaciones desarrolladas interactuar con el exterior de la PC a través de sus puertos para manipular cualquier tipo de procesos. 4. COMPETENCIAS TRANSVERSALES / GENÈRICAS Con generalidad, contribuir a la formación y desarrollo del razonamiento científico. Proveer al alumno de unas mínimas capacidades de abstracción, concreción, concisión, imaginación, intuición, razonamiento, crítica, objetividad, síntesis y precisión. Capacitar al alumno para modelar matemáticamente una situación, así como para plantear soluciones a las aplicaciones con interfaz graficas agradables utilizando un lenguaje de programación orientado a objetos. ESPECÌFICAS Hace referencia a las acciones que efectúa el futuro profesional con el fin de entender un hecho o problema en un contexto determinado. Quien posee esta competencia reconoce y relaciona un lenguaje de programación como una herramienta fundamental en el desarrollo de problemas típicos de la ingeniería. INTERPRETATIVA SABER Cognitivas Utiliza de manera formal, el lenguaje de programación para resolver un problema de ingeniería mediante una solución numérica adecuada y un aspecto visual agradable. Muestra interés por el desarrollo de las actividades propuestas. Expresa en forma creativa sus aportes. Resuelve problemas de optimización en situaciones de la vida real. ARGUMENTATIVA Representa aquellas actuaciones que lleva a cabo el estudiante de Ingeniería con el fin de explicar o sustentar una hipótesis, proyecto, plan, idea, decisión o acontecimiento. 3 El establecimiento de relaciones de causalidad, la articulación y delimitación conceptual de los procesos que llevarán a una solución exitosa, la explicación de la lógica con la cual aborda la solución de un problema y la validez de un planteamiento, o de la validez de las conclusiones frente a los argumentos o premisas, subyacen como elementos centrales en esta competencia. PROPOSITIVA Se inculca en el estudiante la formulación de diferentes alternativas para solucionar un problema, capacidad para señalar, realizar generalizaciones o fijar opciones de acción, alternativas en la toma de decisiones, formulación de nuevas hipótesis, formulación de procedimientos o diseños nuevos o alternativos, la articulación dentro de una teoría de conceptos o procedimientos, o entre explicaciones teóricas alternativas. Inculcar igualmente unos conocimientos mínimos sobre bases de datos y los diferentes motores que existen. Saber discernir cuál de entre un abanico de posibilidades en la solución de un problema o en el desarrollo de una aplicación, es el más, en función de las características que concurran. HACER Procedimentales Instrumentales Conocimiento en conceptos fundamentales de técnicas de manejo de datos en estructuras estáticas. Conocimientos sólidos en el manejo y uso apropiado de las estructuras de programación para resolver problemas básicos de ingeniería. Conocimiento y manejo de Matrices Conocimiento y manejo de Propiedades, eventos y métodos. Manejo de las diferentes técnicas de manejo de datos mediante el uso de estructura dinámicas. Manejo de Bases de datos para el almacenamiento de datos de forma masiva. Manejo del entorno IDE de C++ Builder para el desarrollo de aplicaciones. Manejo del método Canvas para la realización de cualquier tipo de gráfica y manipulación en formatos BMP, JPG entre otros. 4 Competencia “Ser Disciplinado”: El curso de Taller de Programación contribuye fundamentalmente al desarrollo de la competencia Ser Disciplinario que busca que el estudiante conozca y comprenda las teorías de lo científico de la disciplina, lo cual supone apropiarse de determinadas teorías y métodos propios de la disciplina para la comprensión cada día más aproximada del mundo. Desarrollar el pensamiento algorítmico en el estudiante de ingeniería para aplicarlo a la resolución de problemas utilizando las máquinas computacionales como herramienta y los lenguajes de programación visual del momento. Generar en el estudiante hábito para trabajo independiente a nivel de lectura y formulación de soluciones, como una forma de garantizar el aprendizaje continuo. Competencia “Ser Ciudadano”: SER Actitudinales Manifiesta honestidad en la elaboración de trabajos, uso del tiempo destinado para la asignatura y en los procesos de evaluación. Comparte sus conocimientos y habilidades con sus compañeros Colabora con sus actitudes en el proceso de aprendizaje en el aula. Valora y reconoce los aportes de las personas que han contribuido con el avance de la disciplina. Respeta las apreciaciones que hacen sus docentes y compañeros. Manifiesta agrado por el rigor conceptual y teórico en la construcción del conocimiento. Muestra agrado y compromiso con lo que estudia. Demuestra sentido de trabajo en equipo, solidaridad, sentido de identidad y pertenencia enriqueciendo el ejercicio de la academia. Competencias Ser Científico: Pensamiento matemático que permita interpretaciones lógicas y sistémicas de la realidad. Pensamiento flexible e innovador. Pensamiento abstracto y complejo. Capacidad para desarrollar aplicaciones, mediante uso de buenas técnicas de manejo de datos y herramientas de programación que pueda comprobar en un lenguaje específico de programación visual de alto nivel. 5 El docente, al igual que el estudiante, es una persona en permanente proceso de formación y desarrollo de sus dimensiones, con una visión autocrítica para enriquecerse desde su ejercicio pedagógico. En consecuencia, se establece el: Deber Ser del docente: Cumplir con excelencia su compromiso con la misión institucional y con su propia misión como profesor de la institución. Contribuir en la construcción y consolidación de la comunidad universitaria y una cultura fundamentada en valores. Tener una comprensión global del currículo y del proceso formativo que le permita enriquecerlo y recrearlo. Contribuir en los procesos de auto evaluación y planeación académica del programa. Promover la creatividad, el espíritu innovador, reflexivo y participativo de los estudiantes. Promover la conformación de equipos de investigación que coadyuven, al fortalecimiento de la comunidad académica y la excelencia del programa. Fomentar, propiciar y participar en procesos de investigación y proyección social de la universidad y en especial del programa. Estar en permanente relación con la comunidad académica de la disciplina, en el ámbito nacional e internacional mediante la participación de asociaciones y organizaciones que promuevan la investigación y el conocimiento. Saber del docente: Poseer una sólida formación en el campo del saber o de la ciencia a desarrollar con los estudiantes. Tener experiencia académica y/o profesional en el área de desempeño académico. Estructurar experiencias de aprendizaje ágiles, dinámicas y participativas para los estudiantes. Hacer más relevante, pertinente y funcional el contenido de la docencia. Preparar los materiales de apoyo que requiere la experiencia. Brindarle al estudiante retroalimentación continúa y permanente sobre su proceso formativo. Establecer el espacio y el tiempo para la asesoría individual y en pequeños grupos. Poner en común con estudiantes y otros docentes sus elaboraciones teórico – prácticas. Propiciar unas relaciones interpersonales alrededor del conocimiento, marcadas por la calidad humana, la empatía, la sinergia con los estudiantes y colegas que faciliten el trabajo en equipo. 6 5. DEFINICIÒN DE UNIDADES TEMÀTICAS Y ASIGNACIÓN DE TIEMPO DE TRABAJO PRESENCIAL E INDEPENDIENTE DEL ESTUDIANTE POR CADA EJE TEMÀTICO No. NOMBRE DE LAS UNIDADES TEMÁTICAS DEDICACIÓN DEL ESTUDIANTE (horas) HORAS TOTALES (a + b) a) Trabajo Presencial b) Trabajo Independiente 8 8 16 12 12 24 PRELIMINARES DE PROGRAMACION 1 Repaso de las estructuras de programación. Asignación, if , while, do ... while, for, break y continue. Repaso de las estructuras de datos. Variables, Constantes, Operadores (matemáticos, lógicos y relacionales) y Expresiones Uso de vectores para manejar datos en técnica de pila y cola. Aplicación en consola: Convertir notación infija a postfija en una expresión. Cadenas de caracteres, char, c-string, c++ string, AnsiString. Funciones y conversión de tipo, adición y comparación. FUNCIONES, ESTRUCTURAS, UNIONES, ARRAYS DE ESTRUCTURAS Y ARCHIVOS 2 Recursividad. Definición y declaración de estructuras Definición de parámetros en funciones. Parámetros por valor y por referencia Uniones entre estructuras y tipos definidos por el usuario. Pasando estructuras a funciones como parámetros. Arreglos de estructuras Archivos Binarios y de Texto: Creación del objeto, Apertura del archivo, Cierre del archivo, Manipulación del archivo. Input, Output y Streams, 7 ESTRUCTURAS DINAMICAS 3 Técnicas de manejo de datos. Lifo y Fifo. Notación de expresiones. Prefijo, Infijo, Postfijo. Declaración y manejo de variables tipo puntero. Funciones Malloc, Calloc, Realloc, Free, New, Delete Asignación, comparación y aritmética de punteros. Manejo de pilas y colas con punteros. Enlace sencillo y doble. Punteros a puteros y punteros a funciones. Uso de pilas y colas para pasar expresiones en notación infija a postfija. Manejo de multilistas Manejo de Arboles. Técnicas de ordenamiento de datos: Lineal y QuickSort. 8 8 16 16 22 38 PROPIEDADES, EVENTOS Y METODOS 4 Visión general del IDE de C Builder. Ventana principal, Inspector de objetos, Diseñador de formularios (creación, destrucción y visualización, formularios MDI, formularios hijos), Editor de código. Estudio detallado del IDE de Builder. Menú principal, Barra de herramientas, Paleta de componentes, Administrador de proyectos. Uso del inspector de objetos para modificar propiedades Diseño de Menúes y Pop Menúes. La variable Apliccation, Paletas de componentes: Estándar, Aditional, Win32, System, Data Access, Data Controls, QReport, Dialogs. Métodos asociados a componentes Eventos asociados a teclas Eventos asociados a la creación y destrucción de formularios Eventos asociados al mouse, Cuadros de mensaje de diálogos: Messagebox, Inputbox, InputQuery. 8 BASES DE DATOS E INFORMES 5 Configuración de drivers para acceso a archivos de diferentes bases de datos con BDE Administrator o con Herramientas Administrativas del Sistema Operativo. Sistemas de bases de datos Breve introducción al SQL Creación de tablas, Acceso a campos. Controles de datos y fuentes de datos. Consultas y Modificaciones El motor de base de datos de Borland Generación de Reportes con QReport Rejillas y barras de navegación 12 24 36 8 6 14 64 80 144 MANEJO DE GRAFICOS, PUERTOS, APLICACIÓN FINAL 6 Introducción al GDI. Uso del método Canvas. Generación de gráficos y Manipulación de gráficos importados. Lines, Polylines, Multiple Polylines, Polygons, Multiple Polygons, Rectangles and Squares, A Rectangle With Edges, Ellipses and Circles, Round Rectangles and Round Squares, Pies, Arcs, The Arc's Direction, Angular Arcs, Chords, Bézier Curves. Manejo de componentes para acceso a puertos de la PC, Ultima Serial y Comport. Estructura y configuración de un proyecto de C++ Builder TOTAL 9 ESTRATEGIAS PEDAGOGICAS: Las diferentes estrategias que se usarán para el desarrollo del curso Taller de Programación, girarán en torno a los siguientes ejes: Generales: Propiciar la interacción entre los estudiantes y el docente, mediante la elaboración de una composición sobre un tema relacionado con la programación visual, intercambiarlos y opinar sobre los sentimientos que les produjo cada una de las composiciones. Propiciar la adquisición de conocimientos de programación involucrando a los estudiantes en una actividad educativa mediante la utilización del Foro, en el cual se persigue que el estudiante genere una lluvia de ideas cuya intención es percibir qué es lo que saben del tema y qué les falta por aprender. Para que el estudiante logre una adecuada conceptualización, es necesario que él recurra a la lectura permanente. En este momento el docente se convierte en orientador del dicente para conseguir la información adecuada de cada tema en particular que le permita recurrir a buenas fuentes de conocimiento. Planificar ejercicios y aplicaciones que puedan ayudar a los procesos de observación, análisis y síntesis. El docente dejará ejercicios individuales que el estudiante deberá realizar en un tiempo específico o desarrollo de aplicaciones grupales para afianzamiento de los temas desarrollados. Presenciales 1. 2. 3. 4. Aprendizaje Directivo Mediado (Clases magistrales por parte del docente) Desarrollo de Proyectos Aprendizaje colaborativo (Trabajo en grupo) Talleres basados en desarrollo de aplicaciones. Práctica: Interacción estudiante-profesor apoyado por: Herramientas Tecnológicas de Interacción Práctica: Revisión Bibliográfica Apoyado por: Herramientas Tecnológicas Biblioteca y consultas en la WEB. No presenciales 1. 2. 3. 4. 5. Tareas y ejercicios extra clase Preparación de clase Preparación de evaluación Desarrollo de Proyectos Preparación de Talleres. 14 ACTIVIDADES DE APRENDIZAJE De Docencia (Responsabilidad del docente): Situar al estudiante y a la práctica de la profesión de la ingeniería, en el contexto general de las Tecnologías Informáticas, y en especial de los computadores y su programación, y en el papel que ellas han jugado, juega y jugarán en quehacer del ingeniero en la sociedad. Presentación de los conceptos básicos de la programación visual en computadoras. Diseño, Preparación de ejemplos tipo. Resolución de ejemplos tipo. Diseño, preparación y solución de ejercicios propuestos. Dirección del análisis de ejercicios propuestos en sesiones presenciales. Orientación en el desarrollo de aplicaciones de problemas y aplicaciones básicas. De Trabajo Colectivo (Responsabilidad de docentes y alumnos:) Construcción de conceptos. Solución de ejercicios propuestos. Desarrollos con aplicaciones diferentes. Ejercicios de análisis y modelado. De Estudio Independiente (Responsabilidad del estudiante): Estudio de textos y exploración de sitios WEB pertinentes a los temas: Algoritmos, métodos de solución de problemas, Programación de computadoras, Lenguajes de programación de Alto Nivel. Revisión de los ejemplos resueltos. Resolución de ejercicios propuestos. Implementación en la computadora de los ejemplos estudiados en clase. 7. EVALUACIÓN DEL APRENDIZAJE Indicadores Indicadores de competencias: Identifica vectores y matrices Escribe en lenguaje C, Programas que involucran arreglos. Escribe en lenguaje C, Programas que involucre estructuras, tanto estáticas como dinámicas. Identifica los argumentos pasados por valor o por referencia, como parte de las funciones. Emplea Motores de bases de datos para la manipulación de datos como archivo físico. Maneja las propiedades, eventos y métodos de los objetos que comúnmente se usan en el desarrollo de aplicaciones con interfaz grafica. Construye aplicaciones que den solución a problemas básicos de ingeniería. 15 Estrategias de evaluación Se evaluarán conceptos y aplicaciones vistas en el curso. Estas serán pruebas escritas; alguna de ella se realizará en grupo de dos estudiantes. Se realizarán talleres. En el transcurso del curso se entregará material escrito para que sea revisado por los estudiantes sobre temas que serán vistos en las clases siguientes. Las lecturas complementarias, se evalúan como conversatorios, donde el estudiante expone el propósito del artículo, las conclusiones y dará una crítica si esta es pertinente Criterios de Calificación Las soluciones propuestas deben demostrar ser efectivas como soluciones a los problemas planteados. Se valora tanto la calidad lógica de la solución como la aplicación de prácticas sanas de programación. Se valora también el cumplimiento de las tareas propuestas en el término estipulado. Uso adecuado de las herramientas de programación y buen manejo de las estructuras de datos dinámicas. Presentación visual de cada una de las aplicaciones. Buenas técnicas en el manejo de datos y de motores de bases de datos. Instrumentos Cinco exámenes evaluados de 0.0 a 5.0. Pruebas cortas no avisadas, evaluadas de 0.0 a 5.0 computadas con los trabajos extraclase. Desarrollo de guías de laboratorio para los diferentes métodos. Material con problemas propuestos para ser desarrollados por el estudiante en tiempo independiente. Nota: Las evaluaciones y los trabajos de cada unidad se realizarán en un plazo no mayor a 8 días una vez se haya finalizado la exposición de la o las unidades a evaluar. DETALLES DE LA EVALUACIÓN DEL APRENDIZAJE UNIDAD TEMÁTICA 1 y 2. 3 4. 5. 6. ESTRATEGIA DE EVALUACION Parcial Teórico Parcial Teórico Trabajos prácticos Parcial Teórico Trabajos prácticos Trabajo práctico (Bases de datos) Trabajo práctico (Canvas - Puertos) 16 PORCENTAJE (%) 20% 15% 5% 15% 5% 20% 20% RECURSOS 8.1. BIBLIOGRAFÍCOS 8.1.1. Bibliografía Básica: Borland C++ builder 6 Developer`s Guide, Bob Swart, Mark Cashman, Paul Gustavson and Jarrod Hollingworth, SAMS, 201 west 103 rd street, Indianapolis, Indiana 46290. The complete reference, Borland C++ Builder, Herb Schildt. Mc Graw Hill. Osborne. 1009 p. 8.1.2 Bibliografía Complementaria: El lenguaje de programación C++, Luis Alberto Álvarez González. Valdivia Marzo de 1999.100p. Borland C++ Builder Programming 8.2 AUDIOVISUALES VIDEOBEAM, COMPUTADOR 8.3 SOFTWARE LENGUAJE DE PROGRAMACION VISUAL C DE MICROSOFT ó BUILDER C DE BORLAND OBSERVACIONES: El ambiente de programación sugerido para desarrollar la asignatura Taller de Programación es C bien sea de Borland (C Builder) o de Microsoft (Visual C), teniendo en cuenta que la mayoría de libros de Ingeniería Aplicada orientan el desarrollo de aplicaciones y programas con estos lenguajes. DILIGENCIADO POR: Ing YAMIL ARMANDO CERQUERA ROJAS Especialista en Sistemas Universidad Nacional FECHA DE DILIGENCIAMIENTO: Marzo 6 de 2007 Epílogo Las tendencias actuales en una enseñanza universitaria de calidad dan menos importancia que antes a la transmisión de unos contenidos, por lo demás en continuo cambio y revisión, y expresan, en cambio, mayor interés por la adquisición, por parte del alumno, de técnicas y hábitos de estudio, de capacidad de análisis crítico, de inventar y descubrir, etc. En suma, ponen el énfasis en que el estudiante aprenda a aprender. 17