UNIVERSIDAD DE GUADALAJARA
CENTRO UNIVERISTARIO DE CIENCIAS EXACTAS E INGENIERÍA
DIVISION DE ELECTRÓNICA Y COMPUTACIÓN
DEPARTAMENTO DE CIENCIAS COMPUTACIONALES
CLAVE DE LA MATERIA: |
CC208 |
NOMBRE DE LA MATERIA: |
LENGUAJES DE PROGRAMACIÓN COMPARADOS |
TIPO: |
CURSO |
CARÁCTER DEL CURSO: |
OBLIGATORIO |
ÁREA DE FORMACIÓN: |
BASICA PARTICULAR |
PRE-REQUISITOS: |
CC200 |
DEPTO. DE ADSCRIPCIÓN: |
CIENCIAS COMPUTACIONALES |
CARGA HORARIA GLOBAL: |
80 HORAS |
CARGA HORARIA SEMANAL: |
4 HORAS |
VALOR EN CRÉDITOS: |
11 CRÉDITOS |
OBJETIVO GENERAL: |
ANALIZAR LOS PRINCIPALES CONCEPTOS DE LA PROGRAMACIÓN TAL COMO SE MANEJAN EN LOS LENGUAJES IMPERATIVOS, FUNCIONALES, LÓGICOS Y ORIENTADOS A OBJETOS. ENCONTRAR EL COMUN DENOMINADOR ENTRE LOS LENGUAJES E IDENTIFICAR SUS PRINCIPIOS SUSTANCIALES. |
OBJETIVO ESPECÍFICO: |
EXPRESADOS EN CADA MÓDULO |
CONTENIDO PRINCIPAL
Módulo 0. Antecedentes.
Objetivo: Conocer las razones para el estudio de los lenguajes
0.1 Estudio de los lenguajes de programación desde el punto de vista de las áreas de aplicación.[1hora]
0.2 Estudio de los lenguajes de programación desde el punto de vista de su nivel. [2 horas]
0.3 Estudio de los lenguajes de programación desde el punto de vista de los estilos de programación. [3 horas]
Módulo 1: Introducción.
Objetivo: Conocer todo el conocimiento colateral necesario para el diseño y desarrollo de lenguajes de programación
1.1 Lenguaje de programación. [1 hora]
1.2 Características de los lenguajes de programación. [1 hora]
1.3 Diseño de un lenguaje de programación. [1 hora]
1.4 Sintaxis [1 hora]
1.5 BNF's. [1 hora]
1.6 Árboles de reconocimiento. [1 hora]
1.7 Diagramas de sintaxis. [1 hora]
1.8 Autómatas. [1 hora]
1.9 Semántica y sus documentos [1 hora]
1.10 Máquina de Turing. [1 hora]
1.11 Proceso de compilación. [1 hora]
1.12 Proceso de carga y enlace. [1 hora]
Módulo 2: Elementos de un lenguaje de programación.
Objetivo: Conocer los elementos constitutivos de los Lenguajes de Programación
2.1 Nombres y declaraciones. [1 hora]
2.2 Asociaciones. [1 hora]
2.3 Tipos de datos (en sus tres niveles) [1 hora]
2.4 Operadores. [1 hora]
2.5 Evaluación de expresiones. [1 hora]
2.6 Notaciones de expresiones. [1 hora]
2.7 Funciones y su evaluación. [1 hora]
2.8 Recursividad. [1 hora]
Módulo 3: Programación modular y orientada a objetos.
Objetivo: Comprender las similitudes existentes en los lenguajes pertenecientes al estilo imperativo
3.1 Antecedentes generales de la programación modular [1 horas]
3.2 Conceptos generales de la programación modular [1 horas]
3.3 Antecedentes generales de la programación orientada a objetos. [2 horas]
3.4 Conceptos generales de la programación orientada a objetos. [2 horas]
Módulo 4: Programación concurrente
Objetivo: Comprender las similitudes existentes en los lenguajes pertenecientes al estilo de programación concurrente
4.1 Antecedentes generales de la programación concurrente [3 horas]
4.2 Conceptos generales de la programación concurrente [3 horas]
Módulo 5: Programación funcional
Objetivo: Comprender las similitudes existentes en los lenguajes pertenecientes al estilo de programación funcional
5.1 Antecedentes generales de la programación funcional [3 horas]
5.2 Conceptos generales de la programación funcional [3 horas]
Módulo 6: Programación lógica
Objetivo: Comprender las similitudes existentes en los lenguajes pertenecientes al estilo de programación lógica
6.1 Antecedentes generales de la programación lógica [3 horas]
6.2 Conceptos generales de la programación lógica [3 horas]
Módulo 7: Comparación de lenguajes.
Objetivo: El alumno aplicara los conocimientos adquiridos para prácticamente comparar los lenguajes
7.1 Comparar algunos lenguajes desde el punto de vista de elementos, áreas de aplicación y un estilo de programación. [9 horas]
7.2 Investiga sobre otros lenguajes de programación. [9 horas]
Nota: para cada uno de los módulos se utilizan diversos lenguajes de programación para hacer comparaciones y se revisan diversos ejemplos.
Modalidad Enseñanza-Aprendizaje
El curso tiene básicamente dos partes. El la primera parte se hace una presentación de todos los conceptos y elementos significativos para el desarrollo de los lenguajes de programación. La otra parte tiene que ver con la revisón de los diferentes paradigmas de programación, considerando ver cuando menos al lenguaje de programación más representativo para cada paradigma.
Evaluación
30% Proyectos prácticos
20% Exámenes parciales
50% Departamental
BIBLIOGRAFÍA BÁSICA
- Appleby, Doris.
Lenguajes de Programación. McGrawHill
- Sethi, Ravi
Lenguajes de Programación, Addison Wesley 1992
- Tucker, Allen
Lenguajes de Programación, 2da.
Edición,
McGraw Hill, 1987
-
Pratt, T.W.
Lenguajes de Programación, Prentice Hall, México
BIBLIOGRAFÍA COMPLEMENTARIA
- Abrahams, Paul
Unix, Addison Wesley, Estados
Unidos, 1994
-
Koffman, Elliot
Pascal,
Addison Wesley, 1996
- Kernighan, Brian
El Lenguaje de Programación C,
Prentice Hall,
1988
-
Kolman, Bernard
Estructuras de Matemáticas Discretas para la Computación,
Prentice Hall
1986
- Brookshear, J.
Glenn
Teoría de la Computación, lenguajes formales y complejidad,
Addison Wesley 1993
-
Faison, Ted
Borland C++ 3.1
Programación Orientada a Objetos,
Prentice
Hall, 1992
- Cox,
Bradd
Programación Orientada a Objetos, Addison Wesley, Estados
Unidos, 1993
-
Winston, Patrick Henry
Lisp,
Addison
Wesley, Estados Unidos
- Winston, Patrick
Henry
Inteligencia Artificial, Addison
Wesley, Estados Unidos
MATERIAL DE APOYO ACADÉMICO
- Compiladores e intérpretes para los diferentes lenguajes revisados.
- Series de ejercicios de programación con diversas soluciones.
- Proyector de acetatos.