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