Download índice de sílabus (abet)
Document related concepts
Transcript
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Computación SYLLABUS DEL CURSO Lenguajes de Programación 1. CÓDIGO Y NÚMERO DE CRÉDITOS CÓDIGO: NÚMERO DE CRÉDITOS: 4 2. FIEC01552 Teóricos: 4 Prácticos: 0 DESCRIPCIÓN DEL CURSO Presenta los conceptos fundamentales de diseño e implementación de lenguajes de programación. Enfatiza los diferentes paradigmas de los lenguajes y tópicos de implementación. Desarrolla proyectos con diferentes lenguajes representando diferentes paradigmas de lenguajes. 3. PRERREQUISITOS Y CORREQUISITOS PREREQUISITOS CORREQUISITO 4. TEXTO GUIA Y OTRAS REFERENCIAS REQUERIDAS PARA EL DICTADO DEL CURSO TEXTO GUÍA REFERENCIAS 5. FIEC04622 PROGRAMACIÓN ORIENTADA A OBJETOS 1. Sebesta. "Concepts of Programming Languages", 10th Edition, 2012, Addison-Wesley 1. Pratt, "Programming Languages: Design and Implementation", 4th Edition, 2000, Prentice Hall RESULTADOS DE APRENDIZAJE DEL CURSO Al finalizar el curso el estudiante será capaz de: 1) Conocer la sintaxis y semántica de los lenguajes de programación. 2) Entender el rol del hardware en la implementación de la semántica del lenguaje. 3) Comprender la gramática de los lenguajes para poder comparar sus características y escoger el lenguaje más apropiado para una aplicación. 4) Reconocer y relacionar la estructura interna de los computadores y su relación con el correcto diseño del software. 5) Escribir programas utilizando cada lenguaje de diferentes paradigmas que permitan demostrar sus características y similitudes. 6) Escribir un reporte técnico sobre una investigación realizada sobre un tema de computación utilizando referencias. 7) Presentación oral de una investigación sobre un tema de computación por cada grupo. 6. PROGRAMA DEL CURSO I. Introducción (2 sesiones - 4 horas) Introducción al programa — Organización del curso — Valoración de presentaciones, exámenes y proyectos. Razones para estudiar lenguajes de programación II. Arquitectura y Gramática de los Traductores (1 sesiones - 2 horas). Objetivos de los lenguajes Modelos de diseños de lenguajes. Semántica de los lenguajes de programación. III. Arquitectura de Hardware y Software (1 sesiones - 2 horas). Discusión de las computadoras de firmware y capas virtuales de arquitectura de hardware y software. Arquitectura de Máquina. Discusión de varios tiempos de unión. Arquitectura de software y máquinas virtuales. IV. Gramáticas Formales (1 sesiones - 2 horas). Etapas en la traducción de un lenguaje. Tipos de Gramáticas oBNF (Backus Naur Form) Gramáticas de contexto libre. V. Lenguajes de estado finito (2 sesiones - 4 horas). Diagramas de estado Autómatas Finitos de Estado (FSA) no-determinísticos y determinísticos. IG1002-3 Página 1 de 4 SYLLABUS DEL CURSO LENGUAJES DE PROGRAMACIÓN Gramáticas Regulares Expresiones Regulares Algoritmo Recursivo Descendente. VI. Encapsulación (2 sesiones - 4 horas). Tipos de datos elementales Datos estructurados VII. Tipos de datos (2 sesiones - 4 horas). Tipos de datos abstractos. Equivalencia de tipos VIII. Herencia (2 sesiones - 4 horas). Herencia, clases derivadas. Clases abstractas, clases amigas. Polimorfismo. IX. Expresiones (1 sesiones - 2 horas). Expresiones. Sentencias básicas. X. Control de subprogramas (1 sesiones - 2 horas). Registros de activación. Transmisión de parámetros. XI. Administración de almacenamiento (1 sesiones - 2 horas). Almacenamiento de Pila vs. Heap. Recolección de basura. XII. Lenguajes a utilizarse en el curso (12 sesiones - 24 horas). Estructurado y Orientado a Objetos. Scripting. Funcional. 7. CARGA HORARIA: TEORÍA/PRÁCTICA Dos sesiones de dos horas cada una por semana. 8. CONTRIBUCIÓN DEL CURSO EN LA FORMACIÓN DEL ESTUDIANTE Se revisan tópicos involucrados en el diseño e implementación de los lenguajes, en especial de los paradigmas orientados a objetos y funcional. Los estudiantes reconocen la importancia de adquirir y mejorar conocimientos a lo largo de su vida profesional, así como mejorar su comunicación. En este curso se cubren conceptos de lenguajes de programación y organización de computadoras. Los estudiantes analizan, diseñan e implementan soluciones de software con métodos de ingeniería. Se desarrollan 3 proyectos en diferentes lenguajes de programación, donde cada uno aplica un paradigma de programación diferente. Los estudiantes deberán realizar una presentación oral sobre un tema de computación investigado por cada grupo. Los estudiantes deberán presentar un reporte técnico sobre un tema de computación por cada grupo. El reporte debe incluir referencias utilizadas en su investigación. Durante el proceso de análisis, diseño e implementación los estudiantes deben actuar éticamente. FORMACIÓN BÁSICA 9. FORMACIÓN PROFESIONAL X FORMACIÓN HUMANA RELACIÓN DE LOS RESULTADOS DE APRENDIZAJE DEL CURSO CON LOS RESULTADOS DE APRENDIZAJE DE LA CARRERA RESULTADOS DE APRENDIZAJE DE LA CARRERA* a) b) IG1002-3 Habilidad para aplicar el conocimiento apropiado de Computación y Matemáticas en esta disciplina. Habilidad para analizar un problema, e identificar y definir los requerimientos computacionales apropiados para su Media RESULTADO S DE APRENDIZAJ EDEL CURSO** 5 Alta 3,5 CONTRIBUCIÓ N (Alta, Media, Baja) Página 2 de 4 EL ESTUDIANTE DEBE: Planteamiento de algoritmos y posterior implementación de proyectos para solucionar problemas de ingeniería. Diseñar una solución para un problema de ingeniería. SYLLABUS DEL CURSO LENGUAJES DE PROGRAMACIÓN solución. Habilidad para diseñar, implementar, y evaluar un sistema computacional, proceso, componente o programa que cumpla los requerimientos solicitados. d) Habilidad para trabajar efectivamente en equipo y lograr un objetivo común. c) e) g) h) i) j) Comprensión de temas profesionales, éticos, legales, seguridad, social y de responsabilidad. f) Habilidad para comunicarse efectivamente con grandes audiencias. Habilidad para analizar el impacto computacional global y local en las personas, organizaciones y sociedad. Reconocer la necesidad y una habilidad para mantener un constante desarrollo profesional a lo largo de la vida. Habilidad para usar las técnicas, habilidades, y herramientas necesarias para la práctica de la Computación. Capacidad de liderar, gestionar o emprender proyectos. Media 5 Evaluar, a través de una comparación de lenguajes, el diseño de soluciones a problemas de ingeniería para su posterior implementación. Media 6,7 Alta 6,7 Funcionar en grupos de trabajo para: analizar, diseñar e implementar una solución; así como para realizar una investigación. Actuar éticamente. En la página web del curso se indica lo que está permitido. Alta 6,7 Baja 7 Alta 1,2,6 Aprender a aprender, especialmente sobre los lenguajes de programación. Además, debe realizar investigaciones. Alta 1,2,3,4,5 Realizar proyectos con lenguajes modernos, incluso algunos en desarrollo (nuevas versiones). Baja 5 Liderar un grupo de trabajo en el desarrollo de proyectos. Realizar una investigación y posterior presentación oral sobre un tema de computación investigado. Esta actividad se realiza de forma grupal. Reconocer los beneficios de utilizar software libre y aplicaciones de código abierto. 10. EVALUACIÓN DEL CURSO Actividades de Evaluación Exámenes X Lecciones Tareas X Proyectos X Laboratorio/Experimental Participación en Clase Visitas Otras X 11. RESPONSABLE DE LA ELABORACIÓN DEL SYLLABUS Y FECHA DE ELABORACIÓN Elaborado por Fecha IG1002-3 Javier Tibau M.Sc. 9 Mayo, 2013 Página 3 de 4 SYLLABUS DEL CURSO LENGUAJES DE PROGRAMACIÓN 12. VISADO SECRETARIO ACADÉMICO DE LA UNIDAD ACADÉMICA NOMBRE: DIRECTOR DE LA SECRETARÍA TÉCNICA ACADÉMICA NOMBRE: FIRMA: FIRMA: Resolución y Fecha de aprobación en el Consejo Directivo: 13. VIGENCIA DEL SYLLABUS RESOLUCIÓN DEL CONSEJO POLITÉCNICO: FECHA: IG1002-3 Página 4 de 4 SYLLABUS DEL CURSO LENGUAJES DE PROGRAMACIÓN