UNIVERSIDAD NACIONAL CURSO: CARRERA: REQUISITOS: NATURALEZA: UBICACIÓN: AREA DISCIPLINARIA: PERIODO: PROFESOR(ES): EMAIL: HORA ESTUDIANTE: Créditos 3
Horas Semanales 8
Sede Regional Chorotega, Campus Liberia EIF-200 Fundamentos de Informática Ingeniería en Sistemas de Información Admisión a carrera. Teórico/Práctico. I Ciclo del I Nivel de carrera. Ingeniería de Software. I Ciclo 2012. Marlene Durán López
[email protected] Jueves 12:00-13:00 Horas Presenciales Prácticas 2
Teóricas 2
Horas estudio independiente 4
DESCRIPCIÓN: El curso pretende establecer la base de los conocimientos para la carrera de Ing. en sistemas introduciendo al estudiante en los distintos métodos y técnicas para la resolución computacional de problemas desde una perspectiva algorítmica, para lo cual la práctica y el ejercicio constante darán la pauta para el aprendizaje. De igual modo el curso procura dar a conocer de manera más concreta el perfil del profesional en Ingeniería en Informática, para que pueda Identificar mejor sus posibilidades de desarrollo profesional así como sus derechos y obligaciones como estudiante de la carrera y de la UNA. Mediante las actividades realizadas en el aula y como parte de las horas de estudio independiente se promueve que el estudiante sea proactivo, independiente y propositivo en el cumplimiento de sus responsabilidades académicas en el curso y que muestre, en todas sus acciones académicas, una conducta ética, en acuerdo con las normas establecidas por la Universidad Nacional. La práctica consiste en proponer soluciones algorítmicas a diferentes problemas computacionales, mediante el uso del lenguaje de programación C++. OBJETIVO GENERAL: Al final de este curso el estudiante estará en capacidad de plantear y diseñar soluciones algorítmicas a problemas computacionales desde la perspectiva del paradigma de Orientación a Objetos OBJETIVOS ESPECÍFICOS: 1. Conocer el perfil de los profesionales en Ingeniería de Sistemas de Información e Informática Educativa. 2. Identificar y ejercer sus deberes y derechos hacia el curso, la carrera y su desempeño profesional en general. 3. Conocer la terminología básica de las ciencias de la computación. 4. Analizar, diseñar y desarrollar soluciones algorítmicas a problemas computacionales. 5. Plantear, diseñar y probar soluciones computacionales a situaciones reales basadas en el Paradigma de Orientación a Objetos y aplicar los aspectos básicos de este paradigma.
1
CONTENIDOS: Tema I: Inducción, conceptos básicos de la Computación. 1- Orientación Profesional. Áreas de la informática. Tipos de labores. Perfil del profesional graduado de la UNA: Ingeniería en Sistemas de Información e Informática Educativa. 2- Deberes, derechos del estudiante y docente de la Escuela de Informática. 3- Historia de la computación. Generación de Computadores. Tipos de computadores. 4- Configuración básica de un sistema computacional. Componentes de las computadoras: E/S, periféricos, componentes internos, y su funcionamiento. 5- Definición y funciones de: sistemas operativos, lenguajes de programación, Compiladores, intérpretes, ensambladores, definición y tipos de paradigmas. Tema II: Nociones básicas de programación 1. Presentación de problemas lógicos y la solución dada por el ser humano. Presentación y diseño de algoritmos como recurso para la solución. 2. Introducción al ciclo de desarrollo de un programa, y la forma en que se aplicará a problemas de pequeña magnitud. 2.1. Etapas para la solución de un problema: 2.1.1. Enunciado del problema 2.1.2. Análisis del problema (incluye: Entrada, Proceso, Salida y la tabla de variables) 2.1.3. Diseño del algoritmo (pseudocódigo o diagrama de flujo) 2.1.4. Codificación (*) 2.1.5. Validación y detección de errores. (*) 2.1.6. Diseño modular y refinamiento sucesivo. 2.2. Estándares de programación. 3. Implementación de algoritmos mediante un lenguaje de desarrollo, utilizando el ciclo de desarrollo de un programa (2.1). 3.1. Estructuras básicas para la solución de un problema. 3.1.1. Identificadores, variables, constantes, operadores de asignación, operadores matemáticos, operadores relacionales, operaciones lógicas, precedencia de los operadores. 3.1.2. Estructuras secuenciales 3.1.3. Estructuras condicionales y de control de flujo (if/else, switch/case). 3.1.4. Estructuras repetitivas (ciclos: while, do-while, for) 3.2. Estructuras de datos básicas como: cadenas de caracteres, arreglos uni y bidimensionales. Tema III: implementación de soluciones a problemas basados en el Paradigma de Programación Orientada a Objetos. 1. Definición de objeto, Atributos, Métodos o conductas, Estado. Representación en UML. Comportamiento de un objeto. Interfaz del objeto. Clasificación de los métodos. Abstracción. Encapsulamiento 2. Definición de clase. Creación de clases. Diferencia entre clase y objeto. El consumidor y el desarrollador de clases. Parámetros y argumentos. Instancia estática. Programa llamador. METODOLOGÍA: Se propone como metodología las clases magistrales y demostraciones prácticas del tema, acompañadas con ejercicios dentro y fuera de clase, desarrollados en grupos y de forma individual, se promueve la investigación, la lectura y la solución a problemas, que permitan al estudiante el acercamiento de los temas con la realidad del entorno, y a su vez generar aportes a su propio
2
aprendizaje. De igual forma se promueve la participación activa del estudiante mediante su presentación en público e intercambio de ideas, fomentando la retroalimentación y la asimilación de conceptos importantes. Se hará uso del aula virtual, como herramienta de apoyo, donde el estudiante podrá descargar la materia, tareas, proyectos y otros, así mismo donde podrá participar de las diferentes opciones de aprendizaje que brinda la herramienta, de igual forma los trabajos que realice el estudiante y que sean de interés grupal deberá subirlos a la plataforma. El estudiante tiene la responsabilidad de ingresar semanalmente a la dirección web: http://www.engrade.com/ y descargar o verificar las actividades para la semana. También se pretende que el estudiante sea propositivo en idear y formular conjuntamente con el profesor y compañeros actividades varias, donde se dé a conocer el quehacer de la carrera y del curso. MEDICIÓN: Quices Tareas I Prueba de ejecución II Prueba de ejecución Proyecto Final TOTAL (NA)
10% 20% 20% 25% 25% 100%
La suma de los porcentajes obtenidos en los rubros anteriores determina la nota de aprovechamiento (NA), si esta es superior o igual a 70 % el estudiante aprueba el curso, si esta es superior o igual a 60% y menor que 70% tiene derecho a un examen extraordinario que abarcará toda la materia del curso y si la NA es menor a 60% el estudiante reprueba el curso. CRONOGRAMA: Semana Semana 1 9 feb.
Contenido Actividades Tema I: Bienvenida, Presentación y actividad. Orientación Profesional, Deberes y derechos del Diagnóstico general y expectativas estudiante/docente. Historia de la computación, Generaciones, tipos de Entrega y discusión de la carta al estudiante. computadoras. Inducción al aula virtual. Configuración básica de un sistema computacional. Clase Magistral.
Semana 2 16 feb.
Semana 3,4
Definiciones de conceptos básicos computacionales, tipos y sus Funciones: sistemas operativos, lenguajes de programación, Compiladores, intérpretes, ensambladores, paradigmas. Tema II: Algoritmos: Definición, Propiedades, Notaciones, Diseño y elaboración. Ciclo de desarrollo de un programa.
Repaso y clase magistral. Identificación de elementos computacionales. Actividad en grupo: ejercicios de resolución de problemas mediante algoritmos.
Clase magistral.
3
23 feb y 1 mar.
Estructuras básicas: Identificadores, variables, constantes, palabras reservadas, comentarios, expresiones, operadores de asignación, operadores matemáticos, operadores relacionales, operaciones lógicas, precedencia de los operadores.
Actividad individual: Elaboración de diagramas de flujo.
Semana 5,6 8 y 15 mar.
Estructuras secuenciales Estructuras condicionales y de control de flujo (if/else, switch/case). Estándares de Programación: Reglas Básicas.
Quiz #1. Clase magistral Introducción a la Herramienta de desarrollo C++. Prácticas en C++. Asignación Tarea #1.
Semana 7 Estructuras repetitivas (ciclos: while, do-while, for) 22 de Implementación de algoritmos: marzo Aplicación de las estructuras en el lenguaje programación C++.
de
Clase magistral. Prácticas en C++. Trabajo en individual
Semana 8: I Prueba de ejecución: 29 de marzo Semana 9: Semana Santa: 2 al 7 de abril Semana 10 Continuación: Estructuras repetitivas (ciclos: while, do- Clase magistral. 12 abril Prácticas en C++. while, for) Trabajo en individual Implementación de algoritmos: Aplicación de las estructuras en el lenguaje de programación C++. Semana 11,12. 19, 26 abril Semana 13 3 mayo
Estructuras de datos básicas como: cadenas de caracteres,
Estructuras de datos básicas: arreglos uni y bidimensionales. Aplicación de las estructuras en el lenguaje de programación C++. estructuras
en
el
lenguaje
de
Semana 14 10 mayo
Aplicación de las programación C++.
Semana 15 17 de mayo
Tema III Programación Orientada a Objetos: Los Objetos: Atributos, Métodos o conductas, Estado. Representación en UML. Comportamiento de un objeto. Interfaz del objeto. Clasificación de los métodos. Abstracción. Encapsulamiento
Clase magistral. Prácticas dirigidas. Prácticas dirigidas. Ejercicios para realizar en la casa. Quiz #2
Clase magistral. Prácticas dirigidas. Clase magistral. Prácticas dirigidas. Repaso General y Dudas para el exámen.
4
Semana 16 24 de mayo
Semana Académica Programación Orientada a Objetos
Semana 17 31 de mayo
Programación Orientada a Objetos: Entrega Proyecto. Las clases: Creación de clases. Diferencia entre clase y objeto. El consumidor y el desarrollador de clases. Parámetros y argumentos. Instancia estática. Programa llamador Prácticas para exámen Temas de exámen
Clase magistral. Participación en actividades
Semana 18 7 junio Semana 19- II Prueba de ejecución 14 de jun. Semana 20 – Promedios 21 de Jun. Semana 21 - Examen extraordinario 28 de jun. 8 am
REFERENCIAS: Ávila J. (2008). Crestomatía de temas para EIF200 Fundamentos de Informática. Deitel P Y Deitel H. (2009). Cómo programar en C++. (6ta ed). México: Prentice Hall. Joyanes L. (2006). Programación en C++. Algoritmos, estructuras y objetos.(2ª ed). Madrid: McGraw Hill. Joyanes L. (1996). Fundamentos de Programación Algoritmos y Estructuras de Datos. (2a ed). Madrid: McGraw Hill. Joyanes L. (1987). Metodología de la programación. México: McGraw Hill. López, L. (2006). Metodología de la programación orientada a objetos. México : Alfaomega. Oviedo E. (2004). Lógica de programación. (2ª ed). Bogotá: Ecoe ediciones. Savitch W. (2000). Resolución de problemas con C++. (2a ed). México: Prentice Hall. Smith J. (2001). Desarrollo De Proyectos Con Programación Orientada A Objetos Con C++. Mexico: Thomson.
DISPOSICIONES GENERALES Prohibido el uso de celular en clases u otros dispositivos digitales que interrumpan la atención del estudiante. La asistencia es obligatoria. 3 ausencias se pierde el curso. Una ausencia en la cual no se presente un comprobante valido que respalde el motivo de ausencia, no podrá ser justificada. 3 llegadas tardías equivalen a una ausencia. Las asignaciones deben ser entregadas en las fechas establecidas por la profesora, de forma impresa o en formato digital según se le solicite. Todo trabajo escrito deberá apegarse a las normas APA. Se prohíbe la navegación en Internet, durante la ejecución de la clase, a excepción del ingreso al aula virtual o con propósitos meramente investigativos para el curso en acción. El estudiante deberá mostrar una conducta de respeto, trabajo en clase, prestar la atención debida, participar en clase, y en actividades programadas por la carrera o la universidad. El estudiante que no asista a clases, debe buscar la materia y presentar sus dudas en la hora de atención a estudiantes.
5
La entrega de asignaciones debe hacerse en la fecha acordada y en el formato especificado, para el formato digital debe subirse el archivo al aula virtual. No se aceptarán las entregas tardías. En caso de ausencia del estudiante debe enviar su asignación (en caso de ser formato impreso) o subirlo al aula virtual. Solo en caso de que el aula virtual estuviera fuera de servicio, la entrega será remitida a
[email protected] .
para la realización de pruebas
No se permite el ingreso al recinto de examen pasados 20 minutos de iniciada la prueba. Debe ir al baño antes de iniciar la prueba. Prohibido el uso de celular u otros dispositivos digitales, no indispensables para la prueba, se prohíbe el acceso a Internet. DISPOSICIONES GENERALES PARA LOS INSTRUMENTOS DE MEDICION.
TAREAS Y QUICES: Las tareas serán asignadas y entregadas en el formato especificado por la profesora. Dichas tareas serán asignaciones grupales o individuales, donde el estudiante deberá investigar sobre un tema, resolver un problema o implementar una solución. Los quices se realizaran en clase, en los primeros minutos de la lección asignada para tal efecto, los temas a evaluar serán entregados por la profesora con previo aviso. PROYECTO FINAL: Parte práctica: Consiste en la programación de un sistema, mediante el lenguaje de programación C++, implementando los conceptos necesarios estudiados en clase. Grupos de 2 personas. Proyecto Programado Programación parte escrita
25%: 22% 3%.
La parte escrita (impresa) comprende los siguientes puntos: PARTE ESCRITA 5%
Portada Descripción del Problema. Descripción de las principales estructuras usadas (while, if, switch/case etc ). Código fuente. Ejecución del programa. Limitaciones
EXAMENES: El primer corresponde a una prueba teórico-practico, en formato escrito. La segunda prueba es práctica, en la cual el estudiante implementa una solución algorítmica a través de un lenguaje de programación en la computadora. Ambos de forma individual.
6