I - Oferta Académica Materia Carrera Plan Año Período DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN COMPUT. 28/ cuatrimestre

Documentos relacionados
Lenguajes de Programación II

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

PARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN. Carrera y plan: Analista Programador Universitario Plan 2008.

Tipo de Datos Abstractos y Programación Orientada a Objetos

Compiladores e Intérpretes

PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO

Algoritmos y Programación III

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Programa Regular. Comprender y manejar conceptos avanzados en redes de datos.

INGENIERÍA EN COMPUTACIÓN. INGENIERÍA EN COMPUTACIÓN División Departamento Licenciatura

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

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II

Programa Regular. Programación y Bases de Datos es una materia obligatoria correspondiente al segundo año de la carrera de Bioingeniería.

Materia Carrera Plan Año Período Ord.C

DEPARTAMENTO DE: Ciencias Básicas CARRERA/S: Licenciatura en Sistemas de Información (RES.HCS. Nº676/11)

EI MT1008 Programación II

NOMBRE DE LA ASIGNATURA

DESARROLLO DE SOFTWARE

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia:

En la materia los estudiantes completarán los conocimientos básicos de la informáticay como resolver problemas utilizando soluciones algorítmicas.

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA ELECTRÓNICA SÍLABO PLAN DE ESTUDIOS 2000

SYLLABUS de la Asignatura. Programación INF1201

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

Universidad Tecnológica Nacional Facultad Regional San Francisco. Ingeniería en Sistemas de Información. Análisis de Sistemas

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO:

Programa Regular. Asignatura: Organización y Arquitectura de Computadoras.

Pontificia Universidad Católica del Ecuador

PLANIFICACIÓN PROGRAMACION II

ASIGNATURA: PROGRAMACIÓN ORIENTADA A OBJETOS

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

Programa Regular. Asignatura: Lenguajes Formales y Autómatas. Carrera: Ingeniería en Informática. Ciclo Lectivo: Segundo Cuatrimestre 2017

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Licenciatura en Ciencias de la Computación. Facultad de Ciencias. Programa de la asignatura.

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Guía docente de la asignatura

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

SISTEMAS EN TIEMPO REAL

FORMATO DE CONTENIDO DE CURSO PLANEACIÓN DEL CONTENIDO DE CURSO. : Informática para Ingenieros I CÓDIGO :

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

Arquitectura y Sistemas de Operativos

LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

Lenguajes de Programación I

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

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

Facultad de Ingeniería - Universidad Nacional de Cuyo P1- PROGRAMA DE ASIGNATURA

TEMARIO. - Programa de teoría

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE:

Nº DISPOSICIÓN:... DEPARTAMENTO DE: Ciencias Básicas CARRERA/S: Licenciatura en Sistemas de Información

Estructuras de Datos I

Técnicas y Lenguajes de Programación. Bases de Datos.Técnicas de Computación.ANSI C.


UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

Estructuras de Datos II

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

Cuerpo de Profesores Técnicos de Formación Profesional

SYLLABUS CÓDIGO:

Programa Regular. conocimientos generales acerca de la Ingeniería de Software. Se aplicaran los

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

MOO - Metodología y Programación Orientada a Objetos

PLANIFICACIÓN DE LA MATERIA PROGRAMACION ORIENTADA A OBJETOS (Plan 2004) NOMBRE DE MATERIA: PROGRAMACION ORIENTADA A OBJETOS

Programa de Estudios por Competencias COMPILADORES

Algoritmos y Programación I. Curso Prof. Arturo Servetto

Algoritmos y Programación II

PROGRAMA DE ASIGNATURA

El alumno debe tener cursadas Introducción al Análisis de sistemas y Estructuras y Algoritmos.

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS SILABO LENGUAJE DE PROGRAMACION ORIENTADO A WEB

ASIGNATURA: ANALISIS Y DISEÑO ORIENTADO A OBJETOS

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

Grado en Ingeniería Informática Sistemas de Información Universidad de Alcalá Curso Académico 2015/16 Curso 1º Cuatrimestre 2º

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

GRADO EN INGENIERÍA EN TECNOLOGÍAS INDUSTRIALES (Plan 2010). (Unidad docente Obligatoria) 6 Idiomas docencia: Catalán

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

Nº 1: INTRODUCCIÓN A LA TEORÍA DE LA COMPUTACIÓN

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

Sistemas Operativos Página 1 de 6

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

ASIGNATURA: ESTRUCTURA DE DATOS II

Universidad Católica San Pablo Escuela Profesional de Ciencia de la Computación SUMILLA CS112. Ciencia de la Computación I (Obligatorio)

FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

PLANIFICACIÓN DE LA MATERIA PROGRAMACION II AÑO 2005

Planificaciones Taller de Programación I. Docente responsable: VEIGA ANDRES ARTURO. 1 de 5

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES

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

Secretaría de Docencia Dirección de Estudios Profesionales

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

Programación. Programa de la asignatura

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Otros: FATOS XHAFA XHAFA- ANGELA MARTIN PRAT - JOSEFINA LOPEZ HERRERA

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

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

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

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA

INGENIERIA DE SOFTWARE I

SEMINARIO DE LENGUAJES (OPCION C)

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación. Programación I

UNIVERSIDAD DE GUADALAJARA

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Unidad Académica Responsable: Departamento de Informática y Ciencias de la Computación CARRERA a las que se imparte: Ingeniería Civil Informática

Transcripción:

Ministerio de Cultura y Educación Universidad Nacional de San Luis Facultad de Ciencias Físico Matemáticas y Naturales Departamento: Informatica Area: Area V: Automatas y Lenguajes (Programa del año 2015) (Programa en trámite de aprobación) (Presentado el 31/08/2015 00:51:53) I - Oferta Académica Materia Carrera Plan Año Período DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN COMPUT. 28/12 2015 2 cuatrimestre II - Equipo Docente Docente Función Cargo Dedicación CAGNINA, LETICIA CECILIA Prof. Responsable P.Adj Exc 40 Hs ERRECALDE, MARCELO LUIS Prof. Colaborador P.Adj Exc 40 Hs ROGGERO, PATRICIA BEATRIZ Prof. Co-Responsable P.Adj Exc 40 Hs FUNEZ, DARIO GUSTAVO Responsable de Práctico JTP Exc 40 Hs III - Características del Curso Credito Horario Semanal Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total Hs Hs Hs Hs Hs Tipificación Periodo Duración Desde Hasta Cantidad de Semanas Cantidad de Horas IV - Fundamentación Las prácticas de programación desarrolladas en cursos previos como Programación I y Programación II, brindan al futuro Ingeniero una experiencia concreta en la resolución de problemas utilizando ciertos lenguajes de programación. Esta experiencia brinda también al alumno una primera aproximación a distintos aspectos y construcciones de los lenguajes de programación utilizados, como así también a los paradigmas a los cuales estos pertenecen. Acotar el conocimiento de un Ingeniero a un paradigma o lenguaje particular, acota su visión de las herramientas existentes a las particularidades del lenguaje y paradigma utilizados. Esto no responde en general a las necesidades actuales, con un mercado laboral que plantea problemas de diversa índole, cuya resolución efectiva puede requerir de construcciones y paradigmas de lenguajes diversos. Todo esto además, en un contexto donde permanentemente se le ofrecen al profesional informático nuevos lenguajes (o adaptaciones de los ya existentes) y paradigmas que intentan dar respuesta a las necesidades que los nuevos tipos de aplicaciones demandan. Es así que surge la necesidad de brindar al futuro Ingeniero una visión más global de los lenguajes, que profundice más allá de la consideración superficial de sus características y se exploren los principales conceptos de diseño subyacentes y su efecto sobre la implementación de los lenguajes. Esta visión, de acuerdo a la bibliografía especializada en el tema permite, entre otras cosas, mejorar la habilidad para desarrollar algoritmos eficaces, mejorar el uso del lenguaje de programación disponible, acrecentar el propio vocabulario con construcciones útiles de programación, hacer posible una mejor elección del lenguaje de programación y facilitar el aprendizaje de un nuevo lenguaje. Si a todo esto, se le suma la identificación de los principios subyacentes a los principales paradigmas en lenguajes de programación, y una comparación crítica entre los Página 1

mismos, se puede decir que se le brindan al Ingeniero, las herramientas necesarias para enfrentar sus necesidades presentes y futuras a la hora de elegir y usar de manera adecuada un lenguaje de programación. V - Objetivos Al finalizar el curso se espera que el alumno sea capaz de: Tener una perspectiva general de los paradigmas claves que se usan en el desarrollo de lenguajes de programación modernos, sus bases teóricas, aplicativas y de implementación: lenguajes Imperativos, Funcionales, Lógicos y Orientados a Objetos. Desarrollar una visión clara del tipo de situaciones en que los distintos paradigmas son adecuados y hacer uso de lenguajes multi-paradigma que permitan una fácil integración de los mismos y su interacción con lenguajes de programación existentes. Desarrollar y ejecutar programas cortos usando un lenguaje multi-paradigma. Evaluar en forma crítica distintos lenguajes de programación existentes y futuros. Entender la implementación de distintos lenguajes con suficiente detalle como para reconocer la relación entre un programa fuente y su comportamiento en ejecución. Extender sus conocimientos sobre los temas anteriores con bibliografía adecuada y mínima supervisión. VI - Contenidos UNIDAD I. Razones del estudio de lenguajes de programación. Historia de los lenguajes de programación. Características de un buen lenguaje. La estructura y operación de una computadora. Computadora de hardware, de firmware y simulada por software. Traductores. Computadoras virtuales y ligaduras. Tiempos de ligadura. Paradigmas de lenguajes: imperativo, funcional, orientado a objetos y lógico. UNIDAD II. Sintaxis de los lenguajes de programación. Criterios sintácticos generales. Métodos para la descripción de la sintaxis y semántica de los lenguajes. Especificación de tipos de datos elementales y estructurados. Declaraciones. Chequeo de tipos. Conversión de tipos. Equivalencia de tipos. UNIDAD III. Definición y activación de subprogramas. Administración de la memoria. Fases de la administración de memoria. Administración de memoria estática. Administración de memoria basada en pila. Heap con elementos de tamaño fijo y de tamaño variable. Mecanismos de recuperación. Ejemplos. UNIDAD IV. Control de subprogramas. Llamada-retorno simple. Subprogramas recursivos. Control de datos. Ambientes de referenciación. Alcance estático y dinámico. Datos compartidos en subprogramas. Parámetros. Pasaje de parámetros. Ambientes comunes explícitos. Alcance dinámico. Alcance estático. Variantes en control de subprogramas. Excepciones. Corutinas. Subprogramas planificados. Comandos en guardia. Tareas. UNIDAD V. Tipos de datos abstractos. Evolución del concepto de tipo de datos. Ocultamiento de la información. Encapsulamiento mediante subprogramas. Tipos de datos abstractos genéricos. Programación Orientada a Objetos: herencia, polimorfismo. Subclases y subtipos. Herencia simple y múltiple. Aspectos de diseño en Smalltalk, C++ y Java. UNIDAD VI. Introducción a los lenguajes funcionales,ventajas e inconvenientes. Ejemplos. Introducción a los lenguajes lógicos, ventajas y desventajas. El lenguaje Prolog. Página 2

Lenguajes de programación multi-paradigma. Definición. Utilidad. Integrando características del enfoque imperativo, orientado a objetos, lógico y funcional. Otros paradigmas de programación: lenguajes que soportan distribución y concurrencia. UNIDAD VII. Accediendo al hardware en distintos Lenguajes de Programación. Introducción a la conexión de Dispositivos de Entrada/Salida. Características del software para facilitar la Entrada/Salida. VII - Plan de Trabajos Prácticos Los prácticos de la asignatura son del tipo: a) Prácticos de aula, con un total de 30 horas. b) Prácticos de formación experimental, con un total de 15 horas. a) Prácticos de aula: Práctico 1: Tipos de Datos Elementales. Objetivos: ejercitar sobre operaciones, signatura, declaraciones, tipos de datos elementales, chequeo de tipos y ligaduras. Metodología: resolución de ejercicios en lápiz y papel. Implementar algunos de los ejercicios en máquina. Práctico 2: Tipos de Datos Estructurados. Objetivos: análisis de la especificación e implementación de tipos de datos estructurados en diferentes lenguajes. Metodología: resolución de ejercicios en lápiz y papel. Implementar algunos de los ejercicios en máquina. Práctico 3: Administración de Memoria. Objetivos: ejercitar definición y activación de subprogramas, mecanismos de administración de memoria, problemas asociados al uso de punteros y métodos de recuperación. Metodología: resolución de ejercicios en lápiz y papel. Práctico 4: Control de Secuencia y Datos en Subprogramas. Objetivos: realizar ejercicios referidos a ambientes de referenciación, implementación de reglas de alcance estático y dinámico. Desarrollo de ejercicios con variantes en control de subprogramas: excepciones y concurrencia en Java. Metodología: resolución de ejercicios en lápiz y papel. Ejercicios en máquina para variantes en control de subprogramas. Práctico 5: Tipos de Datos Abstractos y POO. Objetivo: análisis de la forma en que conceptos como herencia, encapsulamiento y polimorfismo son especificados, e implementados, en lenguajes de programación orientada a objetos. Metodología: resolución de ejercicios en lápiz y papel. Implementar algunos de los ejercicios para corroborar los conceptos en máquina. Práctico 6: Lenguajes Multi-paradigma. Objetivo: este práctico deberá estar compuesto por ejercicios que cubran, al menos, los temas programación imperativa, programación orientada a objetos, programación funcional y programación lógica. Metodología: resolución de ejercicios, cuya resolución consista del uso de cada uno de los paradigmas. b) Prácticos de formación experimental: Laboratorio 1: Implementación del Algoritmo de Recolección de Basura. Objetivos: desarrollo del algoritmo donde se utilicen e implementen facilidades de administración de memoria utilizando el lenguaje Java. Metodología: resolución en computadora de escritorio que permita visualizar los conceptos mencionados. Laboratorio 2: Aplicaciones de E/S Página 3

Objetivos: desarrollo de ejercicios donde se utilicen e implementen facilidades de E/S en diferentes lenguajes. Metodología: resolución de ejercicios en computadora de escritorio que permitan analizar y comparar los conceptos mencionados. Elaboración y entrega de informe. VIII - Regimen de Aprobación El alumno puede regularizar (luego rendir el examen final) o promocionar, las condiciones son: A. Régimen para alumnos Regulares: 1) Tener un mínimo de 70% de asistencia a las clases prácticas y teóricas. 2) Aprobar los prácticos de laboratorio. 3) Entregar, resueltos, al menos el 80% de los ejercicios de prácticos de aula, solicitados por la cátedra. 4) Aprobar un examen parcial, que incluye todos los prácticos, o alguna de sus respectivas recuperaciones, con al menos el 70% correcto del total. Tal como lo establece la reglamentación vigente, Ord. 32/14 CS, este examen parcial tendrá dos (2) recuperaciones B. Régimen para alumnos Promocionales: 1) Ídem a lo requerido para alumnos Regulares, salvo que el alumno deberá asistir al 80% de las clases tanto teóricas como prácticas. 2) Aprobar con un mínimo de 7 (siete) un examen integrador oral y/o escrito al final del cuatrimestre. 3) La nota final se computará promediando las notas obtenidas en cada uno de los puntos mencionados previamente. C. Para aprobar la materia, los alumnos regulares deberán rendir un examen final, el cual podrá ser oral y/o escrito. D. No se admite rendir la materia en condición de libre. IX - Bibliografía Básica [1] "Programming Languages - Design and Implementation". Pratt, Terrence y Zelkowitz, Marvin. Cuarta edición. Prentice Hall, 2001. [2] "Lenguajes de Programación - Diseño e Implementación". Pratt, Terrence y Zelkowitz, Marvin. Tercera edición. Prentice Hall, 1999. [3] "Concepts of Programming Languages". Sebesta, Robert. Addison-Wesley. Sexta Edición, 2004 y Décima Edición, 2012. [4] "El lenguaje de Programación C". Kernighan, Brian y Ritchie, Dennies. Prentice Hall, 1991. [5] Apunte de la cátedra: "Sintaxis, Traducción, Fases de la Compilación". [6] Apunte de la cátedra: "Evolución del Concepto de Tipo de Datos-Tipo de Datos Abstractos-Programación Orientada a Objetos". X - Bibliografia Complementaria [1] "Smalltalk-80. The Language and its implementation". Goldberg, Adele y Robson, David. Addison-Wesley, 1985. [2] The Java class libraries. Chan, Patrick - Lee, Rosanna y Kramer, Douglas. Addison Wesley. Segunda Edición, 1998. [3] "Piensa en Java". Eckel Bruce. Pearson Alhambra. Cuarta Edición, 2007. XI - Resumen de Objetivos El curso tiene como objetivo introducir al alumno a la problemática del diseño e implementación de lenguajes de Página 4

programación, incluyendo fundamentos teóricos y prácticos. El estudio se realiza teniendo en cuenta todos los paradigmas actuales de programación, realizando un estudio comparativo de las técnicas de implementación de cada uno de ellos. XII - Resumen del Programa Historia de los lenguajes de programación. Evolución de los paradigmas de programación. Computadoras virtuales. Características esenciales de los lenguajes de programación y su implementación: tipos de datos y su representación, control de secuencia y datos en subprogramas. Administración de Memoria. Abstracción de Datos. Variantes en el control de subprogramas. Programación Multi-paradigma. XIII - Imprevistos Firma: ELEVACIÓN y APROBACIÓN DE ESTE PROGRAMA Profesor Responsable Aclaración: Fecha: Página 5