Download índice de sílabus (abet)

Document related concepts

Oz (lenguaje de programación) wikipedia , lookup

Erik Meijer wikipedia , lookup

Lisp wikipedia , lookup

Programación funcional wikipedia , lookup

Wolfram (lenguaje de programación) wikipedia , lookup

Transcript
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL
Facultad de Ingeniería en Electricidad y Computación
SYLLABUS DEL CURSO
Lenguajes de Programación
1.
CÓDIGO Y NÚMERO DE CRÉDITOS
CÓDIGO:
NÚMERO DE CRÉDITOS: 4
2.
FIEC01552
Teóricos: 4
Prácticos: 0
DESCRIPCIÓN DEL CURSO
Presenta los conceptos fundamentales de diseño e implementación de lenguajes de programación. Enfatiza los
diferentes paradigmas de los lenguajes y tópicos de implementación. Desarrolla proyectos con diferentes
lenguajes representando diferentes paradigmas de lenguajes.
3. PRERREQUISITOS Y CORREQUISITOS
PREREQUISITOS
CORREQUISITO
4.
TEXTO GUIA Y OTRAS REFERENCIAS REQUERIDAS PARA EL DICTADO DEL CURSO
TEXTO GUÍA
REFERENCIAS
5.
FIEC04622 PROGRAMACIÓN ORIENTADA A OBJETOS
1. Sebesta. "Concepts of Programming Languages", 10th Edition, 2012,
Addison-Wesley
1. Pratt, "Programming Languages: Design and Implementation", 4th
Edition, 2000, Prentice Hall
RESULTADOS DE APRENDIZAJE DEL CURSO
Al finalizar el curso el estudiante será capaz de:
1) Conocer la sintaxis y semántica de los lenguajes de programación.
2) Entender el rol del hardware en la implementación de la semántica del lenguaje.
3) Comprender la gramática de los lenguajes para poder comparar sus características y escoger el lenguaje más
apropiado para una aplicación.
4) Reconocer y relacionar la estructura interna de los computadores y su relación con el correcto diseño del
software.
5) Escribir programas utilizando cada lenguaje de diferentes paradigmas que permitan demostrar sus
características y similitudes.
6) Escribir un reporte técnico sobre una investigación realizada sobre un tema de computación utilizando
referencias.
7) Presentación oral de una investigación sobre un tema de computación por cada grupo.
6.
PROGRAMA DEL CURSO
I.
Introducción (2 sesiones - 4 horas)

Introducción al programa — Organización del curso — Valoración de presentaciones, exámenes y
proyectos.

Razones para estudiar lenguajes de programación
II. Arquitectura y Gramática de los Traductores (1 sesiones - 2 horas).

Objetivos de los lenguajes

Modelos de diseños de lenguajes.

Semántica de los lenguajes de programación.
III. Arquitectura de Hardware y Software (1 sesiones - 2 horas).

Discusión de las computadoras de firmware y capas virtuales de arquitectura de hardware y software.

Arquitectura de Máquina.

Discusión de varios tiempos de unión.

Arquitectura de software y máquinas virtuales.
IV. Gramáticas Formales (1 sesiones - 2 horas).

Etapas en la traducción de un lenguaje.

Tipos de Gramáticas
oBNF (Backus Naur Form)

Gramáticas de contexto libre.
V. Lenguajes de estado finito (2 sesiones - 4 horas).

Diagramas de estado

Autómatas Finitos de Estado (FSA) no-determinísticos y determinísticos.
IG1002-3
Página 1 de 4
SYLLABUS DEL CURSO
LENGUAJES DE PROGRAMACIÓN

Gramáticas Regulares

Expresiones Regulares

Algoritmo Recursivo Descendente.
VI. Encapsulación (2 sesiones - 4 horas).

Tipos de datos elementales

Datos estructurados
VII. Tipos de datos (2 sesiones - 4 horas).

Tipos de datos abstractos.

Equivalencia de tipos
VIII. Herencia (2 sesiones - 4 horas).

Herencia, clases derivadas.

Clases abstractas, clases amigas.

Polimorfismo.
IX. Expresiones (1 sesiones - 2 horas).

Expresiones.

Sentencias básicas.
X. Control de subprogramas (1 sesiones - 2 horas).

Registros de activación.

Transmisión de parámetros.
XI. Administración de almacenamiento (1 sesiones - 2 horas).

Almacenamiento de Pila vs. Heap.

Recolección de basura.
XII. Lenguajes a utilizarse en el curso (12 sesiones - 24 horas).

Estructurado y Orientado a Objetos.

Scripting.

Funcional.
7.
CARGA HORARIA: TEORÍA/PRÁCTICA
Dos sesiones de dos horas cada una por semana.
8.
CONTRIBUCIÓN DEL CURSO EN LA FORMACIÓN DEL ESTUDIANTE
Se revisan tópicos involucrados en el diseño e implementación de los lenguajes, en especial de los paradigmas
orientados a objetos y funcional.
Los estudiantes reconocen la importancia de adquirir y mejorar conocimientos a
lo largo de su vida profesional, así como mejorar su comunicación.
En este curso se cubren conceptos de lenguajes de programación y organización de computadoras.
Los
estudiantes analizan, diseñan e implementan soluciones de software con métodos de ingeniería. Se desarrollan
3 proyectos en diferentes lenguajes de programación, donde cada uno aplica un paradigma de programación
diferente.
Los estudiantes deberán realizar una presentación oral sobre un tema de computación investigado por
cada grupo.
Los estudiantes deberán presentar un reporte técnico sobre un tema de computación por cada
grupo. El reporte debe incluir referencias utilizadas en su investigación.
Durante el proceso de análisis, diseño e
implementación los estudiantes deben actuar éticamente.
FORMACIÓN BÁSICA
9.
FORMACIÓN
PROFESIONAL
X
FORMACIÓN
HUMANA
RELACIÓN DE LOS RESULTADOS DE APRENDIZAJE DEL CURSO CON LOS RESULTADOS DE
APRENDIZAJE DE LA CARRERA
RESULTADOS DE
APRENDIZAJE DE LA
CARRERA*
a)
b)
IG1002-3
Habilidad para aplicar el
conocimiento apropiado
de Computación y
Matemáticas en esta
disciplina.
Habilidad para analizar un
problema, e identificar y
definir los requerimientos
computacionales
apropiados para su
Media
RESULTADO
S DE
APRENDIZAJ
EDEL
CURSO**
5
Alta
3,5
CONTRIBUCIÓ
N (Alta, Media,
Baja)
Página 2 de 4
EL ESTUDIANTE DEBE:
Planteamiento de algoritmos y posterior
implementación de proyectos para
solucionar problemas de ingeniería.
Diseñar una solución para un problema
de ingeniería.
SYLLABUS DEL CURSO
LENGUAJES DE PROGRAMACIÓN
solución.
Habilidad para diseñar,
implementar, y evaluar un
sistema computacional,
proceso, componente o
programa que cumpla los
requerimientos solicitados.
d) Habilidad para trabajar
efectivamente en equipo y
lograr un objetivo común.
c)
e)
g)
h)
i)
j)
Comprensión de temas
profesionales, éticos,
legales, seguridad, social y
de responsabilidad.
f)
Habilidad para
comunicarse
efectivamente con
grandes audiencias.
Habilidad para analizar el
impacto computacional
global y local en las
personas, organizaciones
y sociedad.
Reconocer la necesidad y
una habilidad para
mantener un constante
desarrollo profesional a lo
largo de la vida.
Habilidad para usar las
técnicas, habilidades, y
herramientas necesarias
para la práctica de la
Computación.
Capacidad de liderar,
gestionar o emprender
proyectos.
Media
5
Evaluar, a través de una comparación
de lenguajes, el diseño de soluciones a
problemas de ingeniería para su
posterior implementación.
Media
6,7
Alta
6,7
Funcionar en grupos de trabajo para:
analizar, diseñar e implementar una
solución; así como para realizar una
investigación.
Actuar éticamente. En la página web del
curso se indica lo que está permitido.
Alta
6,7
Baja
7
Alta
1,2,6
Aprender a aprender, especialmente
sobre los lenguajes de programación.
Además, debe realizar investigaciones.
Alta
1,2,3,4,5
Realizar proyectos con lenguajes
modernos, incluso algunos en desarrollo
(nuevas versiones).
Baja
5
Liderar un grupo de trabajo en el
desarrollo de proyectos.
Realizar una investigación y posterior
presentación oral sobre un tema de
computación investigado. Esta actividad
se realiza de forma grupal.
Reconocer los beneficios de utilizar
software libre y aplicaciones de código
abierto.
10. EVALUACIÓN DEL CURSO
Actividades de Evaluación
Exámenes
X
Lecciones
Tareas
X
Proyectos
X
Laboratorio/Experimental
Participación en Clase
Visitas
Otras
X
11. RESPONSABLE DE LA ELABORACIÓN DEL SYLLABUS Y FECHA DE ELABORACIÓN
Elaborado por
Fecha
IG1002-3
Javier Tibau M.Sc.
9 Mayo, 2013
Página 3 de 4
SYLLABUS DEL CURSO
LENGUAJES DE PROGRAMACIÓN
12. VISADO
SECRETARIO ACADÉMICO DE LA
UNIDAD ACADÉMICA
NOMBRE:
DIRECTOR DE LA SECRETARÍA
TÉCNICA ACADÉMICA
NOMBRE:
FIRMA:
FIRMA:
Resolución y Fecha de aprobación en el
Consejo Directivo:
13. VIGENCIA DEL SYLLABUS
RESOLUCIÓN DEL CONSEJO
POLITÉCNICO:
FECHA:
IG1002-3
Página 4 de 4
SYLLABUS DEL CURSO
LENGUAJES DE PROGRAMACIÓN