Download Pontificia Universidad Javeriana Departamento de Ingeniería de
Document related concepts
Transcript
Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Lenguajes de Programación Syllabus Nombre de la Asignatura Id de la Asignatura Fecha de Actualización Horas semanales Créditos Académicos Pre-Requisitos Vigencia Lenguajes de Programación 4204 Julio 2014 Horas Contacto Clase : 4 3 Estructuras de datos 2014-03 Horas Trabajo Independiente : 2 Objetivos Aprender los conceptos y herramientas esenciales para implementar un lenguaje de programación. Revisar diferentes paradigmas de programación, diferentes a los que el estudiante ha utilizado hasta el momento, para el estudiante pueda seleccionar el lenguaje de programación más adecuado para el problema que se desee resolver. Proporcionar al estudiante los conocimientos necesarios para que pueda entender la teoría que existe detrás de los diferentes lenguajes de programación. Habilidades que contribuye a Desarrollar Estrategias Pedagógicas 1. El curso combina varias estrategias docentes. La teoría del curso se entregará a través de clases expositivas tradicionales y se evaluarán a través de tres parciales. 2. La mayoría de las clases teóricas se alternarán con sesiones prácticas orientadas a aplicar los conceptos aprendidos en clases. Los estudiantes deberán desarrollar un proyecto semestral en el cual construirán un intérprete para un lenguaje de programación. La mayoría de las sesiones prácticas estarán orientadas a resolver aspectos específicos de dicho proyecto. 3. La última parte del curso sobre paradigmas de programación, tendrá asociados talleres, en los cuales se resolverán problemas específicos asociados a cada paradigma. Evaluación Primer Parcial Segundo Parcial Parcial Final Talleres Proyecto 20% 20% 20% 20% 20% Referencias Bibliográficas Texto guía: [1] Scott, "Programming Language Pragmatics." 2003 Referencias Bibliográficas: [2] Hopcroft, "Introduction to Automata Theory, Languages, and Computation.” 2006 [3] Linz, "An Introduction to Formal Languages and Automata" 2012. [4] Aho et al, "Compilers: Principles, Techniques, and Tools" 2006. [5] Pierce, "Types and Programming Languages." 2002 [6] Russell et al "Artificial Intelligence. A modern approach" [7] Harper, "Practical Foundations for Programming Languages" [8] Krishnamurthi, "Programming Languages: Application and Interpretation" Programa por semana y por clase Semana Clase Tema 1 1 Presentación del Curso 1 2 Motivación: autómatas y expresiones regulares 2 3 Conceptos básicos y de repaso 2 4 Conceptos formales sobre autómatas. AFD 3 3 4 5 6 7 Conceptos formales sobre autómatas. AFND Aplicación de conceptos de autómatas Expresiones y lenguajes regulares 5 5 6 6 7 7 8 9 10 11 12 13 Aplicación de conceptos de expresiones regulares Análisis léxico Aplicación de conceptos de análisis léxico Parcial 1 Motivación: sintaxis y gramáticas Sintaxis y gramáticas 8 9 9 10 10 11 11 14 15 16 17 18 19 20 Laboratorio: Aplicación de conceptos de sintaxis y gramáticas Semántica de lenguajes de programación Aplicación de conceptos de semántica Programación imperativa Aplicación de conceptos de programación imperativa Primera Entrega del proyecto Control de Flujo 12 12 13 14 14 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Aplicación de conceptos de control de flujo Tipos de datos Parcial 2 Subrutinas Aplicación de conceptos de subrutinas Segunda Entrega del proyecto Programación funcional Calculo Lambda Lógica Proposicional y de Primer Orden Taller de programación funcional Programación Lógica Prog. Concurrente y Paralela Parcial 3 Taller de programación lógica 15 15 16 17 17 18 18