Você está na página 1de 13

ESCUELA SUPERIOR POLITCNICA DEL LITORAL

VICERECTORADO ACADEMICO - DECANATO DE POSGRADOS


FACULTAD DE INGENIERIA EN ELECTRICIDAD Y COMPUTACION
COURSE SYLLABUS
PROGRAMMING LANGUAGES PRINCIPLES

INFORMACIN GENERAL DEL CURSO Y DEL PROGRAMA


Nombre del programa MAESTRA EN CIENCIAS DE LA COMPUTACIN
Nivel del formacin del programa Maestra Investigacin

Nombre de la asignatura Principios de Lenguajes de Programacin


Unidades de Organizacin curricular Unidad bsica
Campos de formacin Formacin profesional avanzada
Horas componente de docencia 72
Horas componente de prcticas 74
Horas componente de aprendizaje 54
autnomo

A. IDIOMA EN EL QUE SER DICTADO


ESPAOL

B. DESCRIPCIN GENERAL DEL CURSO


El curso Principios de Lenguajes de Programacin presenta los conceptos fundamentales de
diseo e implementacin de lenguajes de programacin, enfatizando en los diferentes
paradigmas de lenguajes y criterios de implementacin, abordando tambin enfoques de diseo
de los lenguajes de programacin modernos.

C. PRE-REQUISITOS DE CONOCIMIENTOS
Programacin Orientada a Objetos

D. RESULTADO DE APRENDIZAJE DEL CURSO


1 Comprender conceptos relacionados al diseo de compiladores y lenguajes de
programacin.
2 Aplicar un mtodo formal para describir sintaxis y discutir sobre enfoques para el anlisis
lxico y sintctico.
3 Evaluar publicaciones cientficas de manera crtica.
4 Considerar los criterios de evaluacin de lenguajes de programacin para comparar sus
caractersticas y escoger el lenguaje ms apropiado para sus necesidades.
5 Desarrollar programas utilizando lenguajes con diferentes paradigmas de forma
colaborativa.

E. HABILIDADES DEL CICLO DE INVESTIGACIN A DESARROLLAR


Evaluar publicaciones cientficas de manera crtica
Habilidad para analizar el problema, identificar y definir los requerimientos
computacionales apropiados para su solucin.
Habilidad para disear, implementar y evaluar un sistema computacional, proceso,
componente o programa para alcanzar los objetivos deseados.
Desarrollar software orientado a servir de recurso para investigacin.

F. LISTADO DE TPICOS DEL CURSO


Horas por componente
Docencia Prcticas Aprendizaje
autnomo
1.- Introduccin a los lenguajes de programacin 4 0 4
2.- Evolucin de los principales lenguajes de 4 0 4
programacin
3.- Descripcin de sintaxis y semntica 12 8 4
4.- Tipos de datos, expresiones, declaraciones de 4 8 4
asignacin y control
5.- Subprogramas 8 0 4
6.- Abstraccin de datos 8 2 4
7.- Soporte para Programacin Orientada a Objetos 10 16 6
8.- Programacin Funcional 10 16 10
9.- Programacin orientada a Aspectos 4 8 8
10.- Concurrencia 8 16 6

Total 72 74 54

G. DESCRIPCIN DE TPICOS
Tpico 1
Introduccin al tpico En esta seccin se revisan lenguajes de programacin
ms relevantes y su evolucin hasta la actualidad,
resaltando las razones de diseo y las caractersticas
principales de cada uno de ellos.
Resultado de aprendizaje del Describir las razones del por qu estudiar conceptos
tpico generales de diseo, evaluacin de lenguajes, sus
dominios e influencias a lo largo de la historia.
Palabras claves Principios, Categoras, Influencias de diseo.

Sub-Tpicos
1.1 Razones para el estudio de Principios de Lenguajes de Programacin
1.2 Dominios de la programacin
1.3 Criterios de Evaluacin de Lenguajes
1.4 Influencias en el diseo de Lenguajes
1.5 Mtodos de implementacin
1.6 Entornos de desarrollo

Materiales
Digital (Presentacin PPT) Uso de proyector para presentacin de slides.
Impreso (Libro) Texto impreso para lectura de preliminares del
texto gua.
Digital (Video) Video sobre anlisis de diferentes lenguajes de
programacin actuales.
Digital (Texto en lnea) Preguntas realizadas a los estudiantes acerca
de la lectura.

Actividades
Actividad 1.1: Se realizarn preguntas a los estudiantes para
Encuesta sobre uso de lenguajes de conocer su nivel de experiencia e inters
programacin personal en el aprendizaje de lenguajes de
programacin. Por medio de grficos
estadsticos el curso podr conocer la
relevancia asignada a cada lenguaje,
motivando de esta forma al estudio de
diferentes paradigmas de programacin.
Actividad 1.2: Se presentarn las herramientas de
Presentacin introductoria a los lenguajes de programacin y trabajo en grupo que sern
programacin y paradigmas utilizadas en el curso para el desarrollo de
aplicaciones utilizando diferentes paradigmas
de programacin.
Actividad 1.3: El captulo de preliminares del texto gua
Lectura de preliminares del texto gua contiene una interesante resea histrica de los
lenguajes de programacin ms comunes. Por
medio de la lectura de este captulo los
estudiantes podrn conocer aspectos
importantes del diseo de cada lenguaje.
Actividad 1.4 En este video se presenta un anlisis crtico de
Video sobre pros y contras de lenguajes de algunos lenguajes de programacin utilizados
programacin modernos en la actualidad, lo cual contribuir a que los
estudiantes amplen su criterio para evaluar
diferentes lenguajes de programacin.

Actividad 1.5 Preguntas abiertas sobre los temas tratados.


Preguntas abiertas

Tpico 2
Introduccin al tpico En esta seccin se abordan los conceptos relacionados con
paradigmas de programacin y cmo estos conceptos han
sido aplicados con enfoques distintos a lo largo de la
historia.
Resultado de aprendizaje del Analizar el proceso evolutivo de los lenguajes de
tpico programacin y las decisiones de diseo de los principales
lenguajes.
Palabras claves Ortogonalidad, Tiempo-Compartido.

Sub-Tpicos
2.1 Fortran y la IBM 704
2.2 Programacin Funcional: LISP
2.3 El primer paso hacia la sofisticacin: ALGOL 60
2.4 Los inicios del tiempo-compartido: BASIC
2.5 Los inicios de la abstraccin de dados: SIMULA 67
2.6 Diseo ortogonal: ALGOL 68
2.7 Programacin basada en lgica: Prolog
2.8 Nuevas tendencias en programacin: Clojure

Materiales
Digital (Video) Video sobre evolucin de los principales
lenguajes de programacin
Impreso (Libro) Lectura sobre programacin funcional en LISP
y Clojure.
Digital (Presentacin PPT) Presentacin sobre paradigmas de
programacin y criterios de evaluacin.

Actividades
Actividad 2.1: Se presentar una resea histrica de los
Video sobre evolucin de los lenguajes de diferentes lenguajes de programacin que han
programacin ms relevantes. sido relevantes, identificando en cada ejemplo
la presencia de conceptos relacionados con
paradigmas de programacin y caractersticas
del lenguaje.
Actividad 2.2: Se revisarn los principales paradigmas de
Presentacin sobre paradigmas de programacin y se abordar en detalle los
programacin y criterios de evaluacin criterios de evaluacin de lenguajes, haciendo
un anlisis crtico que permita identificar
caractersticas a considerar en nuevos
lenguajes de programacin.
Actividad 2.3: Lectura sobre programacin funcional,
Lectura sobre programacin funcional tomando como referencia los lenguajes de
programacin LISP y Clojure.
Actividad 2.4: Discusin en clase sobre abstraccin de datos
Discusin en clase y diseo ortogonal.

Tpico 3

Introduccin al tpico En esta seccin se presentarn los conceptos


relacionados con sintaxis y semntica en lenguajes de
programacin.
Resultado de aprendizaje del Definir y diferenciar los trminos sintaxis y semntica,
tpico discutiendo los mtodos ms comunes para describir
sintaxis, gramticas libres de contexto (BNF). En esta
discusin se incluye tambin derivaciones, rboles de
anlisis sintctico y ambigedad. Comprender el
funcionamiento de un compilador, entendiendo los
procesos de anlisis lxico y sintctico.
Palabras claves Sintaxis, semntica, BNF

Sub-Tpicos
3.1 Introduccin a la sintaxis y semntica en lenguajes de programacin
3.2 El problema general de describir sintaxis
3.3 Mtodos formales para descripcin de sintaxis
3.4 Atributos de gramticas
3.5 Anlisis lxico

Materiales
Digital (Presentacin PPT) Introduccin a los conceptos de sintaxis y
semntica
Impreso (Libro) Lectura del texto gua sobre descripcin de
sintaxis y semntica
Impreso (Paper) Lectura de artculo sobre otro enfoque de
anlisis semntico
Desarrollo de ejercicios de refuerzo Desarrollo de ejercicios para refuerzo de
(Simulaciones en Lnea) conceptos y tcnicas abordadas en clase

Actividades
Actividad 3.1: Introduccin general de los temas a tratar en
Introductoria a la arquitectura y gramtica de la seccin y motivacin
los traductores
Actividad 3.2: La lectura propuesta detalla los aspectos
Lectura sobre descripcin de sintaxis y relevantes relacionados con los conceptos de
semntica sintaxis y semntica desde un punto de vista
general, introduciendo tambin las tcnicas
ms comunes para identificacin de
ambigedades y anlisis sintctico
Actividad 3.3: Tcnicas para identificacin de ambigedades,
Revisin de tcnicas conversin de autmatas no determinsticos
en determinsticos, rboles de anlisis
sintctico
Actividad 3.4: Desarrollo de ejercicios sobre tcnicas de
Ejercicios sobre tcnicas de anlisis sintctico deteccin de ambigedades, autmatas
determinsticos y conversin a autmatas no
determinsticos
Actividad 3.5: Resumen de los conceptos abordados en el
Resumen de los temas tratados tpico y su aplicacin en ejercicios prcticos
Actividad 3.6: Ejercicios relacionados al anlisis lxico por
Ejercicios realizados por los alumnos parte de los alumnos y guiados por el profesor

Tpico 4

Introduccin al tpico Este tpico tratar los conceptos relacionados con tipos
de datos, expresiones, declaraciones de asignacin y
control
Resultado de aprendizaje del Describir los atributos de variables, incluyendo tipos y
tpico conceptos de enlace.
Palabras claves Enlace, Equivalencia de tipos, mbito de variables.

Sub-Tpicos
4.1 Introduccin a tipos de datos y expresiones
4.2 Variables
4.3 El concepto de enlace
4.4 mbito y tiempo de vida
4.5 Tipos de datos primitivos
4.6 Tipos de dados String, Array y Lista
4.7 Chequeo de tipos
4.8 Tipado fuerte
4.9 Equivalencia de tipos

Materiales
Digital (Presentacin PPT) Presentacin sobre introduccin general a los
temas del tpico
Impreso (Libro) Lectura sobre chequeo de tipos y tipado fuerte
Impreso (Libro) Lectura sobre historia del lenguaje de
programacin LUA (Roberto Ierusalimschy)
Digital (Simulaciones en Lnea) Preguntas y ejercicios del tpico

Actividades
Actividad 4.1: Se realizar una introduccin de los temas a
Introduccin general de los temas a tratar y tratar en el tpico y su importancia en los
motivacin lenguajes de programacin
Actividad 4.2: Lectura relacionada al chequeo de tipos y
Lectura sobre chequeo de tipos y tipado fuerte tipado fuerte. Bsqueda de material
bibliogrfico relacionado al tema
Actividad 4.3: Discusin en clase acerca de la lectura
Discusin en clase acerca de la lectura
Actividad 4.4: Desarrollo de preguntas y ejercicios
Preguntas y ejercicios del texto gua planteados a los estudiantes

Tpico 5

Introduccin al tpico En este tpico se abordarn los conceptos relacionados


con el diseo y sobrecarga de subprogramas
Resultado de aprendizaje del Relacionar conceptos de diseo y sobrecarga de
tpico subprogramas, incluyendo los mtodos de paso de
parmetros y los efectos colaterales asociados a
subprogramas.
Palabras claves Sobrecarga, Paso de parmetros.

Sub-Tpicos
5.1 Introduccin a subprogramas
5.2 Fundamentos de subprogramas
5.3 Mtodos de paso de parmetros
5.4 Llamada indirecta a subprogramas
5.5 Detalles de diseo para funciones

Materiales
Digital (Presentacin PPT) Revisin de conceptos relacionados con
subprogramas
Impreso (Paper) Lectura del paper Interoperabilidad de
lenguajes de programacin
Digital (Texto en lnea) Lectura sobre Modelos semnticos del paso
de parmetros
Digital (Texto en lnea) Lectura sobre implementacin de modelos de
paso de parmetros

Actividades
Actividad 5.1: Introduccin a los subprogramas y conceptos
Introduccin general de los temas a tratar y relacionados
motivacin
Actividad 5.2: Lectura sobre Modelos semnticos del paso de
Lectura sobre Modelos semnticos del paso de parmetros
parmetros
Actividad 5.3: Lectura sobre implementacin de modelos de
Lectura sobre implementacin de modelos de paso de parmetros
paso de parmetros
Actividad 5.4: Discusin en clase acerca de la lectura
Discusin en clase acerca de la lectura
Actividad 5.5: Resumen de los temas tratados en el tpico
Resumen de los temas tratados en el tpico
Actividad 5.6: Lectura crtica y resumen de ideas principales
Recensin de artculo asignado del artculo sobre Interoperabilidad de
lenguajes de programacin

Tpico 6

Introduccin al tpico Esta seccin aborda los conceptos relacionados con la


abstraccin de datos y encapsulacin. Se presentan
ejemplos de estos conceptos aplicados en diferentes
lenguajes de programacin
Resultado de aprendizaje del Relacionar conceptos de lenguajes de programacin
tpico asociados al soporte de abstraccin de datos.
Palabras claves Abstraccin, Encapsulacin.

Sub-Tpicos
6.1 El concepto de Abstraccin
6.2 Introduccin a la abstraccin de datos
6.3 Detalles de diseo para tipos de datos abstractos
6.4 Ejemplo en distintos lenguajes
6.5 Encapsulacin

Materiales
Digital (Presentacin PPT) Presentacin de introduccin de conceptos
Impreso (Libro) Lectura sobre la entrevista a Bjame
Stroustrup, C++.
Digital (Simulaciones en Lnea) Actividad grupal para anlisis de preguntas
asignadas sobre la lectura
Digital (Presentacin PPT) Presentacin para el resumen de los temas
tratados y cierre

Actividades
Actividad 6.1: Se introducen los conceptos de abstraccin de
Introduccin general de los temas a tratar y datos y encapsulacin, as como tambin los
motivacin mecanismos para el soporte de abstraccin de
datos en lenguajes de programacin
Actividad 6.2: Lectura sobre entrevista a Bjarne Stroustrup,
Lectura asignada C++.
Actividad 6.3: Actividad grupal para anlisis y discusin de la
Preguntas sobre la lectura lectura asignada
Actividad 6.4: Resumen general de los temas abordados en
Resumen de los temas tratados el tpico

Tpico 7

Introduccin al tpico En esta seccin se abordarn los conceptos relacionados


con programacin orientada a objetos y los aspectos de
diseo para el soporte de orientacin a objetos
Resultado de aprendizaje del Identificar conceptos de programacin orientada a
tpico objetos en los diferentes lenguajes de programacin
abordados y discutir detalles del diseo para el soporte
a herencia y enlace dinmico
Palabras claves Herencia, Polimorfismo.

Sub-Tpicos
7.1 Introduccin general del tpico
7.2 Programacin orientada a objetos
7.3 Detalles del diseo para lenguajes orientados a objetos
7.4 Soporte para programacin orientada a objetos en LISP
7.5 Soporte para programacin orientada a objetos en C++
7.6 Soporte para programacin orientada a objetos en Java
7.8 Recoleccin de basura

Materiales
Digital (Presentacin PPT) Presentacin de conceptos y temas generales
del tpico
Impreso (Paper) Lectura sobre mtodos de recoleccin de
basura
Digital (Simulaciones en Lnea) Taller sobre mtodos de recoleccin de basura
Digital (Simulaciones en Lnea) Desarrollo de aplicaciones usando
programacin orientada a objetos

Actividades
Actividad 7.1: Se introduce de forma general los temas a
Introduccin general de los temas a tratar y tratar durante el tpico y se detallan los
motivacin requerimientos para la realizacin de
actividades prcticas
Actividad 7.2: Los estudiantes deben preparar el ambiente
Preparacin de ambiente de desarrollo para de desarrollo necesario para la realizacin de
prcticas prcticas en los lenguajes de programacin
seleccionados para este tpico
Actividad 7.3: En esta actividad los estudiantes desarrollarn
Desarrollo de aplicaciones con lenguajes programas utilizando los lenguajes de
orientados a objetos programacin orientados a objetos abordados
en clase
Actividad 7.4: Lectura sobre mtodos de recoleccin de
Lectura asignada basura
Actividad 7.5: Taller (aprendizaje colaborativo), Tema:
Taller Garbage Collection

Tpico 8

Introduccin al tpico En esta seccin se abordan las caractersticas de los


lenguajes de programacin funcionales y las principales
diferencias con los lenguajes imperativos
Resultado de aprendizaje del Aplicar conceptos relacionados con programacin
tpico funcional en el desarrollo de un proyecto grupal.
Palabras claves Programacin Funcional, LISP, Closure.

Sub-Tpicos
8.1 Funciones Matemticas
8.2 Fundamentos de lenguajes de programacin funcional
8.3 El primer lenguaje de programacin funcional: LISP
8.4 Introduccin a Common LISP
8.5 Introduccin a Closure
8.6 Comparacin entre lenguajes funcionales y estructurados

Materiales
Digital (Presentacin PPT) Presentacin de conceptos generales e
indicaciones para prcticas utilizando
lenguajes funcionales.
Digital (Texto en lnea) Lectura sobre programacin en LISP
Digital (Texto en lnea) Lectura sobre programacin usando CLOJURE
Taller (Simulaciones en Lnea) Taller de desarrollo de aplicaciones usando un
lenguaje funcional

Actividades
Actividad 8.1: Esta actividad introduce de forma general los
Introduccin general de los temas a tratar y conceptos relacionados con programacin
motivacin funcional. Los estudiantes debern preparar el
ambiente de desarrollo para utilizar los
lenguajes de programacin designados para el
tpico
Actividad 8.2: Lectura sobre programacin en LISP
Lectura asignada
Actividad 8.3: Desarrollo de software utilizando un lenguaje
Desarrollo de software utilizando un lenguaje funcional, LISP o CLOJURE
funcional, LISP o CLOJURE
Actividad 8.4: Revisin general de los temas abordados en el
Resumen de los temas tratados tpico y las tendencias actuales del desarrollo
de software con lenguajes funcionales

Tpico 9

Introduccin al tpico Introduccin a los conceptos alrededor de programacin


orientada a aspectos, principales diferencias y ventajas
de este enfoque en lenguajes de programacin
Resultado de aprendizaje del Revisar los conceptos asociados con Programacin
tpico Orientada a Aspectos y establecer las diferencias en
relacin con la Programacin orientada a Objetos.
Palabras claves POO, POA
Sub-Tpicos
9.1 Introduccin
9.2 Breve resea histrica
9.3 Definicin de Aspecto
9.4 Diseo y desarrollo de aplicaciones Orientadas a Aspectos
9.5 Lenguajes orientados a Aspectos

Materiales
Digital (Presentacin PPT) Presentacin de conceptos e indicaciones
sobre las actividades del tpico
Impreso (Paper) Lectura sobre programacin orientada a
aspectos
Taller (Simulaciones en Lnea) Taller sobre conceptos y ejemplos de POA

Actividades
Actividad 9.1: Introduccin general del tpico y conceptos
Introduccin general de los temas a tratar y relacionados con programacin orientada
ejemplos aspectos. Principales diferencias de este
enfoque en relacin a los paradigmas de
programacin tradicionales
Actividad 9.2: Lectura sobre programacin orientada a
Lectura asignada aspectos
Actividad 9.3: Taller aprendizaje cooperativo, conceptos y
Taller ejemplos de lenguajes orientados a aspectos

Tpico 10

Introduccin al tpico En esta seccin se introducen los conceptos


relacionados con concurrencia a nivel de subprogramas
y declaraciones. Los estudiantes aplicarn los conceptos
en el desarrollo de programas simples que realicen
tareas de forma concurrente en distintos lenguajes de
programacin
Resultado de aprendizaje del Revisar conceptos relacionados con concurrencia a nivel
tpico de subprogramas y declaraciones. Aplicar los conceptos
en el desarrollo de software.
Palabras claves Hilos, Concurrencia, Paralelismo, Recursos compartidos.

Sub-Tpicos
10.1 Introduccin general del tpico
10.2 Introduccin a concurrencia a nivel de subprogramas
10.3 Semforos y Monitores
10.4 Paso de mensajes
10.5 Hilos en Java y C++
10.6 Concurrencia en lenguajes funcionales
10.7 Concurrencia a nivel de declaraciones

Materiales
Digital (Presentacin PPT) Presentacin de conceptos iniciales e
indicaciones para las actividades prcticas
Impreso (Libro) Lectura sobre conceptos de concurrencia
Digital (Texto en lnea) Lectura sobre programacin concurrente en
JAVA y C++
Digital (Simulaciones en Lnea) Desarrollo de aplicaciones que realizan tareas
en paralelo

Actividades
Actividad 10.1: Se realiza una introduccin general de los
Introduccin general de los temas a tratar y temas a tratar en el tpico. Los estudiantes
motivacin debern preparar el ambiente de desarrollo
para la realizacin de ejercicios prcticos.
Actividad 10.2: En esta actividad se presentan los conceptos
Conceptos relacionados con concurrencia relacionados con programacin concurrente,
los cuales debern ser aplicados por los
estudiantes en el desarrollo de programas que
realicen tareas de forma concurrente.
Actividad 10.3: En esta actividad los estudiantes desarrollarn
Actividad grupal en grupos un programa que requiera de
procesamiento paralelo para la solucin de un
problema particular.

H. RESPONSABLES DE LA ELABORACIN DEL SYLLABUS


Profesor Participacin
Coordinador de la asignatura

Você também pode gostar