Asignatura : Lenguajes de Programación (código 0494)

Carrera: Licencitura en Sistemas (código 030)

 

Ciclo Académico:  2.004

Año de la Carrera:

Horas de Clases Semanales

Régimen de Cursado

1RO.

Teoría

Práctica

Otros (1)

Anual

1er.Cuatr.

2do.Cuatr.

Otros (2)

3

3

2

 

 

X

 

(1) Observaciones:

(2) Observaciones:

 

Docente/s

Teoría

Práctica

Apellido y Nombres

Departamento/División

Apellido y Nombres

Departamento/División

CASAS, SANDRA

Cs. Exactas y Naturales

REINAGA, HECTOR

Cs. Exactas y Naturales

 

 

 

 

 

Espacios Curriculares Correlativos Precedentes

Aprobada/s

Cod. Asig.

Cursada/s

Cod. Asig.

PROGRAMACION III

0470

 

 

FUNDAMENTOS DE CIENCIAS DE LA COMPUTACION

0471

 

 

 

Espacios Curriculares  Correlativos Subsiguientes

Aprobada/s

Cod. Asig.

Cursada/s

Cod. Asig.

 

 

 

 

 

 

 

164

 

1-       FUNDAMENTACIÓN

El objetivo de la asignatura es introducir los conceptos teóricos relacionados con el diseño, especificación e implementación de lenguajes de programación, y reflejar dicho conocimiento en los lenguajes más representativos de los diferentes paradigmas de programación. Se asume que el alumno esta debidamente familiarizado con la programación imperativa y el desarrollo de programas estructurados en Pascal y C. Desde este punto de partida se presentan los conceptos de programas traductores, simulación y máquinas virtuales. Se ilustran los mecanismos utilizados para implementar un lenguaje imperativo (datos, operaciones, binding, ámbitos de referenciamiento, memoria, pasaje de parámetros, control y subprogramas). Estos mecanismos son presentados como elecciones particulares de situaciones más generales, en las cuales se adoptan otros criterios de especificación y diseñó de lenguajes. En particular se analizan las diferencias entre Pascal y C.

 

A partir del conocimiento previamente adquirido de teoría de autómatas, gramáticas y computabilidad, se analizan los fundamentos del reconocimiento léxico, sintáctico y semántico.  El cierre de esta fase se cumple presentando técnicas de generación de código intermedio, optimización y generación del código objeto.

 

Como contrapartida a la programación imperativa, se presentan los paradigmas de programación lógica, funcional y orientada a objetos. Estos se abordan proporcionando los conceptos relativos al diseño, especificación e implementación de los lenguajes mas representativos: Prolog,  Lisp y Java. Lo cual implica el aprendizaje de estos lenguajes.

 

Al terminar el curso, se espera que el alumno sea capaz de enfrentar la elección de un lenguaje de programación para un problema dado, aplicando los conceptos vistos en clases.

 

 

2-      CONTENIDOS MÍNIMOS:

Introducción e historia de los lenguajes de programación. Lenguajes aplicativos e imperativos. Gramática y Lenguaje. Clasificación de Chomsky. Datos y Tipos de datos elementales. Variables. Tipos de datos estructurados. Tipos de datos abstractos. Operaciones. Expresiones. Control de secuencia entre sentencia. Control de secuencia de subprogramas. Control de datos. Unidades de Programas. Estructuras de Fortram, Algol y APL. Sistemas de programación funcional: LISP, APL, PROLG, C, ADA, Snobol 4.

 

 

3-      OBJETIVOS GENERALES:

Estudiar las características, propiedades y aspectos de especificación, diseño e implementación de los lenguajes de programación para:

-          Mejorar la habilidad para desarrollar algoritmos eficaces

-          Mejorar el uso del lenguaje de programación disponible

-          Acrecentar el propio vocabulario con construcciones útiles sobre programación

-          Hace posible una mejor elección del lenguaje de programación

-          Facilitar el aprendizaje de un nuevo lenguaje de programación

-          Facilitar el diseño de un nuevo lenguaje

 

4-      ORGANIZACIÓN DE LOS CONTENIDOS –  PROGRAMA ANALÍTICO

Capítulo 1:  Conceptos introductorios. Lenguaje máquina, lenguaje humano, lenguaje de programación. Historia de los lenguajes de programación. Aspectos de evolución de los lenguajes de programación. Importancia, desafíos y objetivos de los lenguajes de alto nivel.

 

Capítulo 2: Compiladores, traductores e Interpretes

Análisis léxico y autómatas. Análisis Sintáctico y gramáticas de tipo 2. Análisis Semántico y gramáticas de atributos. Generación de Código Intermedio. Optimización. Generación de Código Objeto. Tabla de Símbolos.

 

Capítulo 3: Implementación de lenguajes imperativos

Datos. Operaciones. Control de Secuencia. Control de Datos. Manejo de Memoria. Variables. Binding y ámbitos de referenciamiento. Pasaje de parámetros. Control, subprogramas y recursion. Ejemplos: Pascal, C, Algol, Fortran, Modula-2.

 

Capítulo 4: Programación Lógica

Programación lógica. Cálculos con relaciones (Relaciones. Reglas y Hechos. Consultas.). Introducción a Prolog. Estructuras de datos en Prolog. Técnicas de programación. Control en Prolog. Cortes. Implementación de Prolog.

 

Capítulo 5: Programación Funcional

El paradigma funcional y las matemáticas. El conflicto de la asignación, implementación de las operaciones típicas. Control. asignación. Ejecución en demanda (lazy evaluation) y sus potencialidades. LISP.

 

Capítulo 6: Programación Orientada a Objetos.

Conceptos fundamentales de OOP: objetos, clases, métodos y mensajes, herencia, polimorfismo. Encapsulamiento. Rehuso. Lenguajes Java y Delphi.

 

 

 

5-      METODOLOGÍA DE TRABAJO:

A cada módulo del programa le corresponden 1-2 trabajos prácticos. La resolución de los TP se inicia inmediatamente después del dictado del teórico respectivo. El alumno puede desarrollarlos en forma grupal y/o individual. El desarrollo del código solicitado en los TP debe efectuarse en computadora.

 

 

 

6-      METODOLOGÍA DE TRABAJO SUGERIDA PARA EL APRENDIZAJE AUTOASISTIDO (Alumnos Libres)

Utilizar como guía de trabajo el Apunte de cátedra.

Entregar los TP a medida que se resuelven a efectos de obtener rápidamente la corrección.

 

 

 

7-       SISTEMA DE ASISTENCIA TÉCNICA PEDAGÓGICA (SATEP)

Los alumnos pueden acudir por asistencia:

-          los martes de 19-22 en la UARG

-          via correo electrónico: [email protected]

-          Sitio web de la asignatura: http://espanol.geocities.com/profeprog

 

 

 

8-      CRITERIOS  DE EVALUACIÓN:

La evaluación se plantea como un proceso natural por ello se planifica y diseña como una continuidad de las actividades realizadas. Además la decisión de fijar 3 instancias (parciales) permite obtener rápidamente información acerca de la evolución en el proceso de aprendizaje y detectar a tiempo aquellos casos en los que falta un apuntalamiento, refuerzos y apoyo.

 

 

 

9-      ACREDITACIÓN:

·         Alumnos Presenciales

Regularización

Entrega de 6 T.P. en tiempo y forma en fechas a convenir.

Aprobar tres parciales o el recuperatorio.

 

Aprobación Final

Los alumnos solicitarán un tema sobre el cual deberán elaborar un trabajo (teórico y práctico) que presentarán al menos 3 días antes del examen. En el examen, el alumno expondrá el trabajo y contestará a preguntas e interrogantes que se formulen sobre el mismo.

·         Alumnos Libres

Aprobación Final

10 días antes del examen, el alumno debe presentar los 6 T.P.(inciso a)

El día del examen el alumno resolverá un examen escrito-oral.

El alumno debe presentar un trabajo ídem al de regular

.

·         Alumnos No Residentes (SATEP)

Regularización

Entrega de 6 T.P. en tiempo y forma en fechas a convenir.

 

Aprobación Final

El día del examen el alumno resolverá un examen escrito-oral.

El alumno debe presentar un trabajo ídem al dee regular.

 


 

10-   BIBLIOGRAFÍA

 

BASICA

 

Refer.

Apellido/s

Año Edición

Título de la Obra

Capítulo/

Lugar de Edición

Editorial

Unidad

Bibliotec UA

SIUNPA

Otro

0-13-678012-1

Pratt T. Y Zelkowitz M.

1998

Lenguajes de Programación, diseño e implementación. 3ra.ed.

todos

Mexico

Prentice Hall

 

si

 

 

0-201-51858-9

Sethi R.

1992

Lenguajes de Programación: conceptos y constructores

todos

USA

Addison-Wesley

 

 

 

 

84-8322-040-7

Meyer B.

1990

Construcción de Software orientada a Objetos. 2da. Ed.

 

España

Prentice Hall

 

 

 

 

0-387-97144-0

Saint-Dizier P.

1990

An Introduction to Programming in PROLOG

todos

USA

Springer-Verlag

 

no

no

 

968-6099-39-5

Farreny H.

1986

Introducción a LISP

todos

España

MASSON

 

no

no

 

0-8053-7133-8

Sabesta R.

1996

Concepts of Programming Languajes. 3ra. Ed.

todos

USA

Addison-Wesley

 

 

 

 

968-444-333-1

Aho A., Sethi R, Ullman J.

1990

Compiladores. Principios, técnicas y Herramientas

todos

Mexico

Assison- Wesley

 

 

 

 

968-880-205-0

Kerninghan B. Y Ritchie D.

1991

El lenguaje de programación C, 2da. Edi.

 

Mexico

Prentice Hall

 

 

 

 

 

 Sánchez Dueñas y Valverde Andreu

 

 

Compiladores e Interpretes: un enfoque pragmático

todos

España

Ediciones Díaz Santos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Referencia: corresponde al ISBN

 

COMPLEMENTARIA

 

Refer.

Apellido/s

Año Edición

Título de la Obra

Capítulo/

Lugar de Edición

Editorial

Unidad

Bibliotec UA

SIUNPA

Otro

 

Referencia: corresponde al ISBN

 

 

·         Artículos de Revistas

Apellido/s

Nombre/s

Título del Artículo

Título de la Revista

Tomo/Volumen/ Pág.

Fecha

Unidad

Bibliotec UA

SIUNPA

Otro

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·         Recursos en Internet

Autor/es Apellido/s

Autor/es Nombre/s

Título

Datos adicionales

Disponibilidad / Dirección electrónica

 

 

 

 

 

 

 

 

 

 

 

 

 

·         Otros Materiales

Apunte de Cátedra: http://espanol.geocities.com/profeprog

 

Trabajos Prácticos: http://espanol.geocities.com/profeprog

 


 

11-    VIGENCIA DEL PROGRAMA

AÑO

Firma Profesor Responsable

Aclaración Firma

2.004

 

Mg. Sandra Casas

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12-   Observaciones

El presente programa se considera un documento que, a modo de "contrato pedagógico", relaciona a los protagonistas del proceso de enseñanza-aprendizaje  y constituye un acuerdo entre la Universidad y el Alumno.

Los cuatrimestres tienen como mínimo una duración de 15 semanas.

 

 

 

 

Hosted by www.Geocities.ws

1