Download LenguajesDeProgramación_SílaboUPN_2011

Document related concepts

Programación funcional wikipedia, lookup

Oz (lenguaje de programación) wikipedia, lookup

Scala (lenguaje de programación) wikipedia, lookup

Erik Meijer wikipedia, lookup

Ocaml wikipedia, lookup

Transcript
SÍLABO DEL CURSO
LENGUAJES DE PROGRAMACION
FACULTAD DE INGENIERÍA Y ARQUITECTURA
CARRERA DE INGENIERÍA DE SISTEMAS
1. DATOS GENERALES
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
Facultad
Carrera Profesional
Departamento
Tipo de Curso
Requisito
Ciclo de estudios
Duración del curso
Inicio
Término
1.8.
Extensión Horaria
1.9.
Créditos
1.10. Periodo lectivo
1.11. Docente
:
:
:
:
:
:
:
:
:
:
:
:
:
Ingeniería y Arquitectura
Ingeniería de Sistemas
Ingeniería de Sistemas
Obligatorio
Análisis y Diseño de Algoritmos
VI
17 semanas
22 de agosto del 2011
17 de diciembre del 2011
4 horas semanales (2 horas teoría y 2 horas laboratorio)
3
2011-2
Ing. José Luis Peralta Luján
[email protected]
[email protected]
2. FUNDAMENTACION
Este curso es de naturaleza teórico/práctico, el alumno conocerá la teoría fundamental de los lenguajes
de programación y de esta manera podrá contar con una formación sólida en el área de ciencias de la
computación. Es importante resaltar que los tópicos a estudiar ayudarán a tener un carácter crítico con
respecto a la creación y utilización de nuevas tecnologías de computación, en especial aquellas
relacionadas con el estudio de los lenguajes de programación, su análisis, diseño, construcción y
utilización efectiva.
Además de estudiar los componentes y etapas de construcción de un lenguaje de programación se
presentará a los alumnos paradigmas de programación como programación orientada a objetos,
programación funcional y programación lógica. Y al final se analizarán lenguajes de programación para
el desarrollo de firmware.
3. COMPETENCIA
Al finalizar el curso el alumno conocerá los principios y fundamentos de los lenguajes de programación
para su diseño e implementación, comprenderá procesos básicos de un lenguaje de programación,
aplicará los principales paradigmas de programación, utilizando casos de estudio en lenguajes como C,
Java, Scheme, Prolog y conocerá lenguajes para el desarrollo de firmware.
4. OBJETIVOS ESPECÍFICOS DEL CURSO
OC1.
OC2.
OC3.
OC4.
OC5.
Conocer y comprender los principios y fundamentos que rigen los lenguajes de programación.
Conocer, comprender y aplicar el paradigma de programación orientado a objetos.
Conocer, comprender y aplicar el paradigma de programación funcional.
Conocer, comprender y aplicar el paradigma de programación lógico.
Conocer y comprender los lenguajes de programación para el desarrollo de firmware.
5. CONTENIDOS CONCEPTUALES






Principios y fundamentos de los lenguajes de programación.
Análisis léxico y sintáctico.
Programación orientada a objetos.
Programación funcional.
Programación lógica.
Desarrollo de firmware.
6. CONTENIDOS PROCEDIMENTALES





Comprender los dos componentes iniciales de un lenguaje de programación: Analizador Léxico y
Analizador Sintáctico.
Implementar programas bajo el paradigma de programación orientada a objetos
Implementar programas bajo el paradigma de programación funcional.
Implementar programas bajo el paradigma de programación lógica.
Desarrollar ejemplos y ejercicios: interviene saliendo a la pizarra, mediante trabajos grupales, etc.
que le ayudan a su aprendizaje y dominio de la unidad.
7. CONTENIDOS ACTITUDINALES





Responsabilidad individual y colectiva.
Disposición a la investigación y a la búsqueda de la información adicional.
Actitud crítica para el análisis de problemas.
Valoración de los conocimientos adquiridos.
Disposición al trabajo en equipo.
8. METODOLOGÍA GENERAL DEL CURSO
8.1. Taller grupal en clase, para que los alumnos construyan conocimiento a partir de sus experiencias
previas con los temas a tratar.
8.2. Prácticas de laboratorio, para que el alumno demuestre y aplique los conocimientos vistos en
clase.
8.3. Prácticas integradoras, como medio para que los alumnos desarrollen las capacidades prácticas de
los temas tratados y como preparación para las evaluaciones parciales.
8.4. Desarrollo y exposición de proyecto, donde los estudiantes apliquen el conocimiento dado en el
curso a problemas de mayor complejidad, de forma que ellos puedan extender sus conocimientos.
En estos proyectos recibirá la guía y asesoría del docente.
9. PROGRAMACION
UNIDAD
UNIDAD 1
Fundamentos de
Lenguajes de
Programación.
(5 semanas)
SEM.
1
2
3
4
5
UNIDAD 2
Paradigma de
Programación
Orientado a
Objetos
(3 semanas)
6
7
8
ACTIVIDAD
Introducción al Curso.
Discusión de objetivos planteados y formas metodológicas.
Principios y fundamentos de los Lenguajes de Programación.
Parte léxica de un lenguaje de programación.
Lexemas, tokens y patrones.
AFD como reconocedor de palabras.
Descripción de la sintaxis.
Métodos formales para describir la sintaxis: Notación BNF, BNF extendido,
Derivación, Parser Trees, Gramáticas.
 Presentación de proyectos tentativos y conformación de los grupos de trabajo
 Análisis Léxico y Sintáctico.
 Descripción de la semántica.
 Nombres.
 Variables.
 Ligamientos.
 Evaluación de Tipos, Fuertemente Tipado, Compatibilidad de Tipos.
 Alcances.
Evaluación T1.
 Fundamentos de la programación orientada a Objetos.
 Abstracción de datos.
 Clases y objetos.
 Encapsulamiento.
 Herencia.
 Clases Abstractas.
 Polimorfismo.
 Clases Interfaz.
 Desarrollo de Programas.








EXAMEN PARCIAL
UNIDAD 3
Paradigma de
Programación
2
9
 Introducción a la Programación Funcional.
 Introducción a Lenguaje Scheme.
 Formas funcionales en Scheme
Funcional
(2 semana)
UNIDAD 4
Paradigma de
Programación
Lógica
(4 semanas)
10
 Desarrollo de programas.
11
 Introducción a la Programación Lógica.
 Fórmulas Lógicas.
 Práctica de Laboratorio: Creación de hechos y reglas en Prolog.
 Proceso de Inferencia Lógico.
 Listas en Prolog.
 Práctica de Laboratorio: Creación de predicados para manejo de listas.
Evaluación T2
 Interfaces.
 Desarrollo de programas.
12
UNIDAD 5
Lenguajes
de
Programación para
Desarrollo
de
Firmware.
(1 semana)
13
14
15
 Lenguajes de alto y bajo nivel para el desarrollo de firmware (Software
empotrado).
Evaluación T3
16
17
EXAMEN FINAL
EXAMEN SUSTITUTORIO
10. SISTEMA DE EVALUACIÓN DEL CURSO
El cronograma de la evaluación continua del curso es el siguiente:
ESPECIFICACIÓN DE TRABAJOS DEL CURSO
T
T1
Descripción
Semana
Evaluación Teórica
5
T2
Práctica de Laboratorio
12
T3
Presentación y Exposición Final de Proyectos del Curso
15
El peso de cada T es:
EVALUACIÓN
T1
T2
T3
TOTAL
PESO
(%)
20
35
45
100%
ESCALA
VIGESIMAL
2,4
4,2
5,4
12
Los pesos ponderados de las clases de evaluación son los siguientes:
EVALUACIÓN
PARCIAL
CONTINUA
FINAL
TOTAL
PESO
(%)
20
60
20
100%
ESCALA
VIGESIMAL
4
12
4
20
La Evaluación Sustitutoria evalúa toda la temática desarrollada en el semestre y se rinde la semana
consecutiva al término de los exámenes finales (12 – 17 de diciembre) y su nota reemplazará,
necesariamente, a la nota de un Examen (Parcial o Final) o a la nota de una T (Evaluación Continua),
de tal manera que el resultado final sea favorable al alumno.
3
11. BIBLIOGRAFIA OBLIGATORIA
#
CÓDIGO
AUTOR
TITULO
1 005.133 SEBE
Sebesta, Robert W.
Concepts of Programming Languages
2 005.133 TUCK
Tucker, Allen
Lenguajes de programación
3 005.13 FRIE
Friedman, Daniel P.
Essentials of Programming Languages
12. BIBLIOGRAFÍA COMPLEMENTARIA
#
4
5
AUTOR
Louden, Kenneth C.
Rodriguez , Jesús J.
TITULO
Lenguajes de programación : principios y práctica
Introducción a la programación: teoría y práctica
13. BIBLIOGRAFÍA DIGITAL
#
6
AUTOR
Juan,
L.
José,
G.
7
Juan,
L.
4
Ibrahim,
pues an
ISBN
LIBRERÍA
DIGITAL
Conceptos
básicos
de procesadores de 9788484168898
lenguaje.
e-libro
Desarrollo
modular
Labra de procesadores de
lenguajes a partir de
9781413563573
Cueva especificaciones
semánticas
reutilizables.
e-libro
Cueva
Faraón,
Llorens L.
Rafael, Molina
C.
8
Ramón, Rizo
A.
Rosana,
Satorre C.
9
TITULO
Dog
Programación:
formalización:
de
algoritmos
9788479087173
matemáticos, análisis
y reutilización.
e-libro
Programación
de
microcontroladores
9788426714282
PIC.
e-libro
URL
http://site.ebrary.com/lib/upn
ortesp/docDetail.action?doc
ID=10075530& p00= conce
ptos%20b%C3%A1sicos%
20de%20procesadores%20
De%20lenguajes
http://site.ebrary.com/lib/up
nortesp/docDetail.action?do
cID=10105331&p00=desarro
llo%20modular%20de%20pr
o
cesadores%20de%20lenguaj
es%20a%20partir%20de%20
especificaciones%20sem%
C3%A1nticas%20reutilizable
s
http://site.ebrary.com/lib/up
nortesp/docDetail.action?doc
ID=10317039&p00=program
a
ci%C3%B3n:%20formalizaci
%C3%B3n:%20de%20algorit
mos%20matem%C3%A1tico
s
,%20an%C3%A1lisis%20y%
20reutilizaci%C3%B3n
http://site.ebrary.com/lib/
upnortesp/docDetail.action?
docID=10212517&p00=pro
gramaci%C3%B3n%20de%2
0
microcontro
ladores