Programa del curso IC Lenguajes de programación. Escuela de Computación. Carrera de Ingeniería de Computación, Plan 410.

Documentos relacionados
Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8

SYLLABUS de la Asignatura. Programación INF1201

Programación Orientada a Objetos

FACULTAD DE INGENIERÍA INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE: ANÁLISIS DE LOS LENGUAJES DE PROGRAMACIÓN.

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

ROGRAMA DE CURSO Código Nombre EL4102. Arquitectura de Computadores Nombre en Inglés Computer Organization SCT

Sistemas Operativos. Curso Página Web: Asignaturas de programación en el plan de estudios

Programa del curso IC Arquitectura de Computadoras. Escuela de Computación. Carrera de Ingeniería de Computación, Plan 410.

PROGRAMACIÓN ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN LICENCIATURA DE INGENIERÍA INDUSTRIAL

ANEXO XVII DE LA RESOLUCION N

LP - Lenguajes de Programación

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Universidad Salesiana de Bolivia

DISEÑO CURRICULAR ALGORÍTMOS, ESTRUCTURAS Y PROGRAMACIÓN II

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Facultad de Ciencias. Plan de estudios de la Licenciatura en Actuaría. Teoría de Redes

UNIVERSIDAD DE GUADALAJARA

Programación para Ingeniería Eléctrica

PROGRAMACIÓN UNIDADES

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

1.-DATOS DE LA ASIGNATURA

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes. Personal

Crear diagramas basados en UML para la representación de la solución a un problema mediante el Paradigma Orientado a Objetos.

Procesadores de lenguaje Tema 1 Introducción a los compiladores

Conceptos de Algoritmos, Datos y Programas

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Créditos: 4 Horas por semana: 4 EL-3307 Diseño Lógico EL-3308 Laboratorio de Diseño Lógico

Esta asignatura apoyará al alumno en la consecución de las siguientes competencias:

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Paradigmas de Programación

ISBPR1: Programación 1

Evolución de la Programación Orientada a Objetos

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES

GUÍA DE APRENDIZAJE INGENIERIA DE REQUISITOS Y MODELADO

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

GUÍA DE APRENDIZAJE SISTEMAS OPERATIVOS

PROGRAMA INSTRUCCIONAL

Programación. Programa de la asignatura

INTELIGENCIA ARTIFICIAL 1

PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO

PROGRAMA ANALÍTICO DE ASIGNATURA

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Asignaturas antecedentes y subsecuentes

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

Nombre de la asignatura : Sistemas operativos I. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9329

Fundamentos de Inteligencia Artificial

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

ASIGNATURA: ANALISIS Y DISEÑO ORIENTADO A OBJETOS

UNIVERSIDAD DE LOS LLANOS Facultad de Ciencias Básicas e Ingeniería Programa Ingeniería de Sistemas SISTEMAS OPERATIVOS

PROGRAMA DE CURSO. Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia. Febrero 2007

Carrera: EMZ Participantes Representante de las academias de ingeniería Electromecánica de los Institutos Tecnológicos.

Ingeniería del Software II

1. Preparar al estudiante para desarrollar aplicaciones de software utilizando un enfoque orientado a objetos.

D. Prerrequisitos, correquisitos y otros requerimientos

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

Programa de Teoría de Anillos

Sistemas de Tiempo Real

Nombre de la Materia Tecnología de Software de Base Electiva Tercer Nivel Ciclo Lectivo 2007 Plan Plan 95 Área

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Inteligencia Artificial II: Conocimiento, Razonamiento y Planeación. Presentación del Curso.

PROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

GRADO EN INFORMÁTICA CURSO 2011/2012. Arquitectura de Computadores

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Programación. Carrera: MAE 0527

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

ESTRUCTURAS DE DATOS

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS. PROYECTO CURRICULAR: Ingeniería de Sistemas

FACULTAD DE CS. QUIMICAS, FISICAS Y MATEMATICAS DEPARTAMENTO ACADEMICO DE INFORMATICA SILABO

AC2 - Arquitectura de Computadores II

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

ÍNDICE TEMÁTICO Horas Teóricas. Horas Prácticas 1. Objetivo y Funciones de un Sistema Operativo Arquitectura de un Sistema Operativo 8 6 3

UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS DEPARTAMENTO DE MATEMÁTICAS PROGRAMACIÓN DE COMPUTADORES

GUÍA DOCENTE Arquitecturas Avanzadas de Computadores

ESCUELA DE INGENIERIA Informática Y Sistemas

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

Programa del curso IC Diseño de Software. Escuela de Computación Carrera de Ingeniería en Computación, Plan 410

UNIVERSIDAD NACIONAL AUTÓNOMA LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN

Carrera: Participantes Miembros de la academia de Metal- Mecánica

Programa del curso IC Compiladores e Intérpretes. Escuela de Computación. Carrera de Ingeniería de Computación, Plan 410.

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

EI MT1008 Programación II

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Sintaxis y Semántica del lenguaje

PROCESADORES DEL LENGUAJE

PROGRAMA DE LA ASIGNATURA "Arquitectura de Redes"

Análisis Espacial aplicando Técnicas de Inteligencia Artificial

Torruco, Rubén Jerónimo Yedra Fecha de elaboración: Mayo / 2010 Fecha de última actualización: F1011 Programación orientada a objetos 1/10

GUÍA DOCENTE. Ingeniería Informática en Sistemas de Información Doble Grado:

PROGRAMA INSTRUCCIONAL INTELIGENCIA ARTIFICIAL

CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones

SÍLABO DE METODOLOGÍAS DE PROGRAMACIÓN

Carta Descriptiva. Datos del Instructor. Instructor: Dr. Efrén David Gutiérrez Casas Oficina: Y4-206C

PROGRAMA INSTRUCCIONAL COMPUTACIÓN PARA INGENIEROS

Transcripción:

Programa del curso IC-4700 Lenguajes de programación Escuela de Computación Carrera de Ingeniería de Computación, Plan 410.

I Parte. Aspectos relativos al plan de estudios 1 Datos generales Nombre del curso: Código: Tipo de curso: Lenguajes de programación IC-4700 Teórico - Práctico N o de créditos: 4 N o horas de clase por semana: 4 N o horas extraclase por semana: 12 Ubicación en el plan de estudios: Requisitos: IC-3002 Análisis de algoritmos \\ IC-3101 Arquitectura de computadoras Correquisitos: El curso es requisito de: Asistencia: Ninguno IC-5701 Compiladores e interpretes Obligatoria Suficiencia: Posibilidad de reconocimiento: Si Vigencia del programa: II semestre 2017. Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 2 de 9

2 Descripción General Este curso se estudian con detalle los paradigmas fundamentales de los lenguajes de programación. Se aprenden lenguajes representativos de cada paradigma y se estudia la teoría más relevante del diseño de lenguajes. 3 Objetivos Objetivo General Estudiar los conceptos fundamentales y los principales principios de diseño de los lenguajes de programación. Estudiar los cuatro paradigmas principales de programación y ofrecer criterios para comparar, evaluar y seleccionar lenguajes de programación en relación con sus diferentes usos. Objetivos Específicos Aprender un lenguaje ejemplo para cada uno de los cuatro paradigmas principales de programación, así como conocer varios otros lenguajes para representar conceptos que no tengan los lenguajes ejemplo. Comprender algunos principios generales de diseño de lenguajes. Ofrecer criterios para comparar, evaluar y seleccionar lenguajes de programación. Dar criterios para discernir cuál es el lenguaje de programación más adecuado para un problema dado. 4 Contenidos Introducción y conceptos fundamentales. Evolución histórica de los lenguajes de programación. Principios de diseño de lenguajes de programación. Sintaxis, semántica y pragmática. Conceptos fundamentales Valores, datos y tipos. Expresiones. Almacenamiento y control. Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 3 de 9

Asociación ( binding ). Abstracción. Encapsulación. Secuenciadores. Programación imperativa. [Lenguajes: C o Ada o CLU] Modelos de almacenamiento (punteros, arreglos, etc.) Mecanismo de paso de parámetros Portabilidad Preprocesamiento, entrada y salida estándar Modularidad Generalidad Ocultamiento de información Independencia de representación Referencia a los conceptos fundamentales Programación funcional. [Lenguaje: preferiblemente Standard ML y Haskell. Otros lenguajes: Lisp, Scheme] Expresiones y aritmética Funciones como ciudadanos de primera clase Manejo de listas como primitivas Principios de diseño y programación funcional Streams (evaluación perezosa) Programación funcional con tipos Polimorfismo paramétrico Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 4 de 9

Programación lógica. [Lenguaje: Prolog o Turbo Prolog. Otros lenguajes ilustrativos: Oz o Gödel] Relaciones vs funciones Hechos y consultas Calculo de predicados Dominios, datos compuestos y listas. Unificación. Control de flujo Backtracking y orden de descripción. Corte y Fail. Programación orientada a objetos. [Lenguaje Smalltalk, Eiffel, Java. Otros lenguajes ilustrativos: BETA, C++, Object Pascal (Delphi)] Objetos y Mensajes Expresiones y aritmética Clases y Métodos Instancia y tipos de variables Herencia y polimorfismo Jerarquía de clases Colecciones Principios de diseño y programación OO Bloques de código y mensajes en cascada Estudio analítico de otros lenguajes [lenguaje ilustrativo: Java] Elementos avanzados de lenguajes de programación Concurrencia, paralelismo y distribución. [Modelo de concurrencia de Java] [Herramientas para programación máquinas multinúcleo] Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 5 de 9

[Lenguajes: occaml, POOL, C-Linda, Orca]. Sistemas de tipos. Ligas entre programas de distintos lenguajes. Elementos del diseño de lenguajes de programación. Evaluación y selección de lenguajes de programación. Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 6 de 9

II Parte. II Parte. Aspectos operativos 5 Metodología de enseñanza y aprendizaje Los estudiantes harán programas no triviales para cada paradigma fundamental (imperativo, orientado a objetos, funcional y lógico) Para cada uno de los paradigmas fundamentales se usará un lenguaje principal como ejemplo de estudio. Se ilustrarán variante del paradigma con lenguajes afines. Habrá pruebas cortas en que se evaluará tanto la materia teórica vista en clase como la implementación de las tareas programadas. 6 Evaluación El curso será evaluado con tres rubros principales: proyectos programados, exámenes parciales y un último rubro que comprende pruebas y tareas cortas. Proyectos programados (60%): Se asignarán cuatro proyectos programados, uno por cada paradigma estudiado. Se requerirá de un manejo adecuado de los conceptos fundamentales de cada pardigma para poder construir los proyectos exitosamente. Los proyectos se trabajarán individualmente. Las entregas están programadas en las semanas 7, 10, 13 y 16. Exámenes parciales (20%): Se aplicarán dos exámenes parciales, cada uno correspondiente a 10% del rubro. Los exámenes están programados para en las semanas 14 y 19. Pruebas y tareas cortas (20%): Se asignarán cuatro tareas cortas programadas, una por cada paradigma de programación estudiado. Adicionalmente se aplicarán pruebas cortas durante el semestre, éstas serán anunciadas con una semana de antelación. Proyecto programados 60 Pruebas y tareas cortas 20 Exámenes parciales 20 100 % 7 Bibliografía Obligatoria Scott, M. Programming Language Pragmatics 2da ed, Morgan Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 7 de 9

Kaufmann, 2006. Kernighan, B., Ritchie, D. El lenguaje de programación C. Prentice Hall Hispanoamericana, 1985. Lipovača, M. Learn you a Haskell for Great Good! A beginners guide Disponible en: www.learnyouahaskell.com Blackburn, P.; Bos, J.; Striegnitz K. Learn Prolog Now! Disponible en: www.learnprolognow.org Complementaria Barendregt, H.P. The Lambda Calculus: its Syntax and Semantics North-Holland, Amsterdam, 1985. Borland International. Turbo Prolog Reference Guide V 2.0. Borland International, 1988. Camacho, L. Lógica Simbólica Editorial Tecnológica, Cartago (última edición). Copi, I.M. Lógica Simbólica EUDEBA, Buenos Aires, 1997. Digitalk Inc. Smalltalk V: Tutorial and programming Handbook. Digitalk Inc. 1986. Friedman. From Babbage to Babel and beyond: A brief history of programming languages. Computer Language 17, 1992. pp. 1-17. Friedman, D.; Felleisen, M. The Little Schemer, IV Ed, Science Research Associates Inc, SRA Inc, The MIT Press, 1999. Helo, José. Introducción a la Programación con Scheme, Editorial Tecnológica de Costa Rica, 2000. Hoare. Hints on programming language design. Originalmente publicado en 1973. En Hoare y Jones (ed.), Essays in Computing Science, Prentice-Hall, 1989. También en Horowitz (ed.), Programming languages, a grand tour. Computer Science Press / Springer-Verlag. Gordon, M. Programming Language Theory and its implementation Prentice-Hall, New York, 1988. Louden, K. Lenguajes de Programación, 2da Ed, Thomson, 2004. Lennan, B. Principles of Programming Languages: Design, Evaluation, and Implementation, 2nd. edition. Holt, Rinehart & Winston (ahora Oxford University Press), 1986 (1995) Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 8 de 9

Pratt, T.;Zelkowitz, M. Lenguajes de programación: diseño e implementación, Prentice-Hall Hispanoamericana, 1998. Sethi, R. Lenguajes de programación: conceptos y constructores. Addison-Wesley, 1992. (Trad. edición en Inglés de 1989.) Stansifer. The study of programming languages. Prentice-Hall, 1995. Tennent. Principles of programming languages. Prentice-Hall, 1981. Watt, D. Programming language design concepts. John Wiley & Sons, 2004. Wirth. On the design of programming languages. Originalmente publicado en 1974. En Horowitz (ed.), Programming languages, a grand tour. Computer Science Press / Springer-Verlag. 8 Profesor Aurelio Sanabria Email: aurelio.itcr@gmail.com Página: http://www.ic-itcr.ac.cr/~ausanabria Horario y lugar de consulta: Martes de 10:00 am a 12:00 md Los medios de comunicación oficiales del curso y contactos de los profesores serán brindados en la primera semana de clases. Aurelio Sanabria es profesor del Instituto Tecnológico de Costa Rica en el Centro Académico de Alajuela, cuenta chistes de elefantes y es el único funcionario con un personaje en LOL: «Aurelion sol: el forjador de estrellas» Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410. Página 9 de 9