Vous êtes sur la page 1sur 7

UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos

Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675


Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

Ciclo Académico:
Año de la Carrera: Horas de Clases Semanales Régimen de Cursado
i
Teoría Práctica Otros (1) Anual 1er.Cuatr. 2do.Cuatr. Otros (2)
4TO. 2 2 2 x
(1) Observaciones: CLASES DE CONSULTA
(2) Observaciones:

Docente/s
ii
Teoría Práctica
R/I Apellido y Nombres Departamento/División R/I Apellido y Nombres Departamento/División
R REINAGA HECTOR CS EXACTAS Y NATURALES I VIDAL GRACIELA CS EXACTAS Y NATURALES

Observaciones:

Espacios Curriculares Correlativos Precedentes


Aprobada/s Cod. Asig. Cursada/s (1) Cod. Asig.
Estructura de Datos 1656 Fundamentos de Ciencias de la Computación 1662
Laboratorio de Programación 1660 Programación Lógica y Funcional 1670

Espacios Curriculares Correlativos Subsiguientes


Aprobada/s Cod. Asig. Cursada/s Cod. Asig.
Intérpretes y Compiladores 1678

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 procedural (imperativa – OO) y declarativa. 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 procedimental (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.
La importancia del estudio de los fundamentos de los Lenguajes de Programación para la formación académica,
profesional y personal del estudiante de LeS queda patente en las razones que relacionan T. W. Pratt y M. V.
Zelkowitz, en Programming Languages: Design and Implementation:
• Mejorar la habilidad para desarrollar algoritmos eficaces: muchos LP incluyen características que, cuando se
usan de forma apropiada, benefician al programador pero si se usan incorrectamente, pueden desperdiciar grandes
cantidades de tiempo de cómputo o conducir al programador a errores lógicos que consumen mucho tiempo.
• Mejorar el uso del LP disponible: a través del entendimiento de como se implementan las características del LP
que uno usa, se mejora la habilidad para escribir programas más eficientes.

VIGENCIA AÑOS 2011

Pag - 1 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos

Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675


Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

• Acrecentar el propio vocabulario con construcciones útiles sobre programación: el LP sirve a la vez como
una ayuda y como una restricción para el pensamiento. Las personas usan el LP para expresar pensamientos, pero
también sirve para estructurar la manera en que uno piensa, en la medida en que es difícil pensar en formas que no
permiten una expresión directa en palabras.
• Hacer posible una mejor elección del LP: cuando se presenta la situación, un conocimiento de diversos LP
puede permitir la elección de un LP que sea precisamente el idóneo para un proyecto particular.
• Facilitar el aprendizaje de un nuevo LP: un lingüista, a través de una comprensión profunda de la estructura
subyacente de los lenguajes naturales, suele poder aprender un nuevo idioma con más rapidez y facilidad que el
novato esforzado que entiende poco de la estructura incluso de su lengua nativa. De manera similar, un
conocimiento concienzudo de diversas construcciones de LP y técnicas de ejecución permite al programador
aprender un nuevo LP con más facilidad.
• Facilitar el diseño de un nuevo LP: pocos programadores piensan alguna vez en sí mismos como diseñadores
de LP; sin embargo, todo programa tiene una interfaz de usuario que es, de hecho, una forma de LP. La interfaz de
usuario se compone de los comandos y formatos de datos que se suministran para que el usuario se comunique
con el programa. El diseñador de la interfaz de usuario para un programa grande como un editor de texto, un
sistema operativo o un paquete de gráficos debe ocuparse de muchas de las mismas cuestiones que están
presentes en el diseño de un LP para usos generales. Este aspecto del diseño de programas se suele simplificar si
el programador está familiarizado con diversas construcciones y métodos de implementación de LP ordinarios.

2- OBJETIVOS GENERALES:
Conocer los mecanismos y aspectos relacionados al diseño e implementación de los lenguajes de programación
referentes a datos, operaciones y control.

3- CONTENIDOS MÍNIMOS:
Introducción e historia de los lenguajes de programación. Entidades y Ligaduras. Sistema de Tipos. Niveles de
Polimorfismo. Datos y Tipos de datos elementales. Variables. Tipos de Datos estructurados. Tipos de datos
abstractos. Operaciones. Expresiones. Control de secuencia entre sentencias. Control de secuencia de
subprogramas. Control de datos. Unidades de Programas.

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


Unidad 1: Conceptos introductorios.
Lenguaje máquina, lenguaje humano, lenguaje de programación. Compiladores, interpretes y maquinas virtuales.
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.
Unidad 2: Sintaxis y Semántica
Métodos formales para describir la sintaxis de los lenguajes de programación. Gramáticas con atributos. Métodos
formales para la descripción de la semántica de los lenguajes de programación.
Unidad 3: Nombres, Ligaduras, Chequeo de Tipos y Alcance
Nombres. Variables. Concepto de ligazón. Cheque de tipos. Compatibilidad de tipos. Alcance. Alcance y duración
de vida. Ambientes de referencia. Constantes con nombre. Inicialización de variables
Unidad 4: Tipos de datos
Tipos de datos primitivos. Cadenas de caracteres. Tipos de datos ordinales definidos por el usuario. Arreglos.
Registros. Uniones. Conjuntos. Punteros. Casos de estudio.
Unidad 5: Expresiones y sentencias de asignación
Expresiones aritméticas. Operadores sobrecargados. Conversiones de tipos. Expresiones lógicas y relacionales.
Evaluación de corto circuito. Sentencias de asignación. Asignaciones mixtas Casos de estudio.
Unidad 6: Estructuras de control a nivel de sentencias
Sentencias compuestas. Sentencias de selección. Sentencias iterativas. Saltos incondicionales. Sentencias
protegidas. Casos de estudio.

VIGENCIA AÑOS 2011

Pag - 2 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos

Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675


Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

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


Unidad 7: Subprogramas
Generalidades. Aspectos del diseño de subprogramas. Ambiente local de referencia. Métodos de pasaje de
parámetros. Parámetros que son nombres de subprogramas. Subprogramas sobrecargados. Subprogramas
genéricos. Registros de Activación. Compilación separada y compilación independiente. Aspectos del diseño de
funciones. Acceso al ambiente no local. Operadores sobrecargados diseñados por el usuario. Excepciones -
Corutinas. Casos de estudio.
Unidad 8: Implementación de Subprogramas
Semántica general de CALL y RETURN. Implementación de subprogramas en distintos lenguajes. Reglas de
alcance estáticas. Bloques. Implementación de las reglas de alcance dinámicas. Implementación de pasaje de
parámetros. Casos de estudio.
Unidad 9: Tipos Abstractos de Datos
Concepto de abstracción. Encapsulación. Introducción a la abstracción de datos. Aspecto de diseño. Tipos de
datos abstractos parametrizados Casos de estudio.

5- 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. Cada unidad temática se evalúa por las aplicaciones desarrolladas en forma grupal y/o
individual.

6- METODOLOGÍA DE TRABAJO PARA LA MODALIDAD PRESENCIAL:

A cada módulo del programa le corresponden un conjunto de aplicaciones a desarrollar. La práctica se intercala con la
teoría buscando una rápida adquisición y fijación de los conceptos. El alumno puede desarrollarlos en forma grupal y/o
individual. El desarrollo del código debe efectuarse en computadora.

7- ACREDITACIÓN : Alumnos Presenciales.


Regularización

Se logra aprobando mediante la presentación y aprobación de todos los casos a desarrollar y el 75% de asistencia a
los teóricos y prácticos.

Aprobación Final

Los temas de examen final se asignan previamente a este, dado que deben ser preparados por el alumno. El examen
final consiste en el desarrollo de un proyecto en el cual el alumno debe resolver una situación problemática mediante
la aplicación de los conceptos, técnicas y herramientas de programación vistas en el curso mas otras (fuertemente
relacionadas) en un problema de mediana complejidad. Durante el examen el alumno entrega un escrito y expone el
trabajo realizado.

8- METODOLOGÍA DE TRABAJO PARA ALUMNOS EN EL SISTEMA DE ASISTENCIA TÉCNICA PEDAGÓGICA


(SATEP)

En la página de la asignatura http://sites.google.com/site/profeprog/ se establecen los horarios de consulta del


equipo de cátedra, los alumnos pueden acudir por asistencia en dichos días y horarios. También pueden
comunicarse al correo electrónico: profeprog@yahoo.com.
Todo el material (apunte, trabajos prácticos y software) esta disponible en http://sites.google.com/site/profeprog/.

VIGENCIA AÑOS 2011

Pag - 3 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos

Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675


Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

9- ACREDITACIÓN : Alumnos No Presenciales (SATEP)


Regularización

Entrega de los trabajos prácticos resueltos.


Aprobación Final

Los temas de examen final se asignan previamente a este, dado que deben ser preparados por el alumno. El
examen final consiste en la aplicación de las herramientas de programación vistas en el curso mas otras
(fuertemente relacionadas) en un problema sencillo pero real. Durante el examen el alumno entrega un escrito y
expone el trabajo realizado.

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

En la página de la asignatura http://sites.google.com/site/profeprog/ se establecen los horarios de consulta del


equipo de cátedra, los alumnos pueden acudir por asistencia en dichos días y horarios. También pueden
comunicarse al correo electrónico: profeprog@yahoo.com.

Todo el material (apunte, trabajos prácticos y software) esta disponible en http://sites.google.com/site/profeprog/.

11- ACREDITACIÓN : Alumnos Libres


Aprobación Final

Entrega de los trabajos prácticos resueltos, 15 días antes del examen.

Desarrollo de un Caso: se asignarán previamente al examen los temas para el desarrollo de caso, dado que deben
ser preparados por el alumno. Este consiste en la aplicación de las herramientas de programación vistas en el
curso mas otras (fuertemente relacionadas) en un problema sencillo pero real. Durante el examen el alumno
entrega un escrito y expone el trabajo realizado.

VIGENCIA AÑOS 2011

Pag - 4 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos


Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675
Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

12. BIBLIOGRAFIA (BASICA)

Refer. Apellido/s Año Título de la Obra Capítulo/ Lugar de Editorial Unidad Bibliotec SIUNPA Otro
Edición Edición UA
0-13-678012-1 Pratt T. Y Zelkowitz M. 1998 Lenguajes de Programación, diseño Todos Mexico Prentice Hall UACO
e implementación. 3ra.ed.
0-201-51858-9 Sethi R. 1992 Lenguajes de Programación: Todos USA Addison- UACO
conceptos y constructores Wesley
0-8053-7133-8 Sabesta R. 1999 Concepts of Programming Languajes. Todos USA Addison- X
4ra. Ed. Wesley
Ghezzi Carlo, Jazayeri 1998 Programming Languages Concepts John Wiley X 3ra edicion
Mehdi and Sons

COMPLEMENTARIA

Refer. Apellido/s Año Título de la Obra Capítulo/ Lugar de Editorial Unidad Bibliotec SIUNPA Otro
Edición Edición UA
Watt David, 1990 Programming Languages: Prentice Hall.
Concepts and Paradigms.
Watt David 1991 Programming Languages: Sintaxis Prentice Hall
and Semantic.
Mitchell, John, 2000 Foundations for Programming The MIT X
Languages Press
84-8322-040-7 Meyer B. 1990 Construcción de Software orientada New York Prentice Hall UACO
a Objetos. 2da. Ed.
968-444-333-1 Aho A., Sethi R, 1998 Compiladores. Principios, técnicas Todos Mexico Addison- X
Ullman J. y Herramientas Wesley
968-880-205-0 Kerninghan B. Y 1991 El lenguaje de programación C, Mexico Prentice Hall UACO
Ritchie D. 2da. Ed.
Sánchez Dueñas y Compiladores e Interpretes: un Todos España Ediciones
Valverde Andreu enfoque pragmático Díaz Santos

· Recursos en Internet
Autor/es Apellido/s Autor/es Nombre/s Título Datos adicionales Disponibilidad / Dirección electrónica

VIGENCIA AÑOS 2011


Pag - 5 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica Río Gallegos


Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675
Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

· Recursos en Internet
Autor/es Apellido/s Autor/es Nombre/s Título Datos adicionales Disponibilidad / Dirección electrónica
Alexander Winzer, Site de SIMLESEM Technical University of http://www.infosys.tuwien.ac.at/pl-book/simplesem/
Vienna, Institute of
Information Systems

VIGENCIA AÑOS 2011


Pag - 6 -
UNIVERSIDAD NACIONAL DE LA PATAGONIA AUSTRAL

Unidad Académica
Programa de: FUNDAMENTOS DE LENGUAJES DE PROGRAMACION Cod. EC. 1675
Carrera: LICENCIATURA EN SISTEMAS Cod. Carr. 072

13- VIGENCIA DEL PROGRAMA


AÑO Firma Profesor Responsable Aclaración Firma
2011 Reinaga Héctor

14- 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.

i
Si el espacio curricular está implementado en una modalidad diferente de teóricos y prácticos, tildar en Otros y consignar esta
característica en observaciones
ii
Si el espacio curricular está implementado en una modalidad consignada por Otros y no pueden ser discriminados los miembros
del equipo, incluirlos todos en la columna de teóricas y consignar esta característica en observaciones. En R/I se debe registrar si
el docente es Responsable o Integrante. El Responsable del espacio curricular debe estar registrado en la columna de la Teoría.
El responsable del espacio curricular no puede estar únicamente en la Práctica.

VISADO

División Departamento Secretaría Académica

Fecha: Fecha: Fecha:

Pag - 7 -

Vous aimerez peut-être aussi