ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PLAN DE ASIGNATURAS
MATERIA CODIGO # CRED TOTAL
HORAS
1. PROGRAMACION I 01SIS100400 6 120
2. PROGRAMACION II 01SIS100401 8 160
3. OPERACIÓN DE SISTEMAS MULTIUSUARIOS 01SIS200400 5 100
4. PROGRAMACION ORIENTADA A OBJETOS 01SIS200401 5 100
5. PROGRAMACION VISUAL I 01SIS200402 5 100
6. PROGRAMACION VISUAL II 01SIS200403 5 100
7. ESTRUCTURA DE DATOS 01SIS200404 5 100
8. TEORIA DE SISTEMAS OPERATIVOS 01SIS200405 5 100
9. APLICACIÓN DE SISTEMAS OPERATIVOS 01SIS200406 5 100
10. INTERFACES Y MULTIMEDIA 01SIS200407 5 100
11. TRADUCTORES Y COMPILADORES 01SIS900400 5 100
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: PROGRAMACION I AREA: PROGRAMACION
PREREQUISITO: APROBAR CIENCIAS BASICAS NIVEL: PRIMERO
NUMERO DE CREDITOS: 6 H TOTAL HORAS: 120 H
CODIGO: 01SIS100400 FECHA: _____________
OBJETIVO: Dotar al alumno de una lógica de programación, conocimiento primordial para programar en cualquier lenguaje de alto nivel.
CONTENIDOS: No. HORAS
1.- Lenguaje Algorítmico 40
1.1.1 Evolución de las técnicas de programación
1.1.2 Lenguajes de programación
1.1.3 Algoritmo
1.1.4 Programa
1.1.5 Planteamiento del problema
1.2 1 Análisis del problema
1.2.2 Diseño del algoritmo: Técnicas de diseño; Herramientas de diseño
1.2.3 Verificación del algoritmo
1.3 Pseudocódigos
1.3.1 Concepto
1.3.2 Simbología
1.3.3 Estructura
1.3.4 Tipos de datos
1.3.5 Reglas del Pseudocódigo
1.4 METODOLOGÍA PARA PLANTEAR UN ALGORITMO
2.- Modularización 40
2.1 Instalación Y Configuración Del Compilador
2.1.1 Requerimientos de software
2.1.2 Configuración del acceso directo
2.1.3 Configuración del escritorio
2.1.4 Menús y opciones
2.2 Introducción Al Pascal
2.2.1 Tipos de datos
2.2.2 Estructura del programa
2.2.3 Declaración de variables y constantes
2.2.4 Operadores y expresiones
2.2.5 Funciones estándar
2.2.6 Palabras Reservadas
2.3 Estructuras De Control
2.3.1 Estructuras secuenciales
2.3.2 Estructuras repetitivas
2.3.3 Estructuras de decisión
2.4 Tipos De Errores
2.4.1 Errores sintácticos
2.4.2 Errores semánticos
2.5 Procedimientos
2.5.1 Concepto
2.5.2 Sintaxis
2.6 Funciones
2.6.1 Concepto
2.6.2 Sintaxis
2.7 Regla Del Paso De Parámetros
2.7.1 Paso de parámetros por valor
2.7.2 Paso de parámetros por dirección
2.8 Ambito De Los Identificadores
2.8.1 Variables Globales
2.8.2 Variables locales
3.- Tipos Derivados 40
3.1 Arreglos Unidimensionales
3.1.1 Concepto
3.1.2 Sintaxis
3.1.3 Paso de arrays a módulos
3.1.4 Algoritmos de Ordenamiento
3.1.5 Algoritmos de Búsqueda
3.2 Arreglos Bidimensionales
3.2.1 Concepto
3.2.2 Sintaxis
3.2.3 Paso de matrices a módulos
3.3 Modo Gráfico
3.3.1 Librería estándar
3.3.2 Inicialización
3.3.3 Gráficos por computador
BIBLIOGRAFIA:
- GRANIZO,E; Pseudocódigos. Editorial ESPE, Ecuador - 1999
- JOYANES, L.; Turbo Pascal un enfoque práctico
- BECERRA, Cesar.; Turbo Pascal.
- SOLO PROGRAMADORES, México, Editorial IG Comunication
- SOFTWARE DEVELOPER, México, Editorial IG Comunication
- www.borlandc.com
- www.co.fie-espe.edu.ec / Programacion
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: PROGRAMACION II AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION I NIVEL: SEGUNDO
NUMERO DE CREDITOS: 8 H TOTAL HORAS: 160 H
CODIGO: 01SIS100401 FECHA: _____________
OBJETIVO: Lograr la capacitación integral sobre los fundamentos de la programación y metodología estructurada mediante el dominio del lenguaje de programación C, partiendo de los principios básicos del lenguaje hasta alcanzar los criterios más abstractos de la programación.
CONTENIDOS: No. HORAS
1.- Elementos Básicos En Ansi C 50
1.1 TIPOS DE DATOS Y OPERACIONES
1.1.1 Identificadores y palabras reservadas
1.1.2 Variables, Constantes y expresiones
1.1.3 Secuencias de Escape, constantes tipos de datos.
1.1.4 Estructura de un programa en C
1.1.5 Constantes simbólicas (# define)
1.1.6 Operadores
1.1.6.1 Opereador de Asignación
1.1.6.2 Operadores Aritméticos
1.1.6.3 Operadores Relacionales
1.1.6.4 Operadores Lógicos
1.1.6.5 Operadores a nivel de Bits
1.1.6.6 Otros operadores
1.1.7 Precedencia de Operadores
1.1.8 Evaluación de expresiones
1.1.9 Conversiones de tipo
1.1.9.1 Automática
1.1.9.2 Moldes (Casting).
1.2 ENTRADA / SALIDA POR CONSOLA
1.2.1 Salida: printf()
1.2.2 Entrada: scanf()
1.2.3 Entrada / Salida de caracteres por consola
1.2.4 Entrada / Salida de cadenas de caracteres por consola
1.3 ESTRUCTURAS DE CONTROL
1.3.1 Tipos de estructuras de control: Decisión, Repetición
1.3.2 Sentencias de Decisión Binaria
1.3.3 Sentencias de Decisión Múltiple
1.3.4 Sentencias de Control de Repetición (Lazos ó bucles).
1.3.4.1 While{}(condición);
1.3.4.2 Do {}while(condición);
1.3.4.3 For(valor inicial; condición; incremento)
1.3.4.4 Ciclos de repetición anidados
1.3.5 Sentencias de control incondicional
1.3.5.1 sentencias: return,break, continue, exit().
2.- Funciones Y Tipos De Datos Derivados 60
2.1 PUNTEROS
2.1.1 Variable puntero: Declaración
2.1.2 Operadores de punteros
2.1.2.1 Operador de dirección &
2.1.2.2 Operador de indirección *
2.1.3 Operaciones con punteros
2.1.3.1 Asignación de punteros
2.1.3.2 Aritmética de punteros
2.1.3.3 Comparación de punteros
2.1.4 Inicialización de punteros
2.1.5 indirección múltiple
2.1.6 Problemas con punteros
2.2 FUNCIONES
2.2.1 Tipos de Funciones
2.2.2 Argumentos y parámetros de funciones
2.2.3 Llamada por valor
2.2.4 Llamada por dirección
2.2.5 Prototipos de funciones
2.2.6 Devolución de una valor: return
2.2.7 Devolución de un puntero
2.2.8 Punteros a funciones
2.2.9 Funciones Recursivas
2.2.9.1 Definición, Condiciones .
2.2.9.2 Diferencias entre Funciones recursivas e iterativas.
2.3 ARRAYS
2.3.1 Arrays unidimensionales
2.3.1.1 Inicialización de arrays unidimensionales
2.3.1.2 Punteros a arrays unidimensionales
2.3.1.3 Indexación de punteros
2.3.1 4 Paso de arrays unidimensionales a funciones
2.3.2 Arrays Bidimensionales
2.3.2.1 Inicialización de arrays Bidimensionales
2.3.2.2 Punteros a arrays bidimensionales
2.3.2.3 Indexación de punteros en arrays bidimensionales
2.3.2.4 Paso de arrays bidimensionales a funciones
2.3.3 Arrays de punteros
2.3.4 Arrays asignados dinámicamente
2.3.5 Arrays multidimensionales
3.- Tipos Definidos Por El Usuario 50
3.1 CADENAS
3.1.1 Valores de cadenas constantes
3.1.2 Definición de cadenas dentro de un programa
3.1.3 Cadenas de constantes simbólicas
3.1.4 Inicialización de cadenas implementadas con arrays
3.1.5 punteros de tipo char como cadenas
3.1.6 arrays de cadenas de caracteres
3.1.7 Funciones estándares de manejo de cadenas
3.2 ESTRUCTURAS Y UNIONES
3.2.1 Declaración de una Estructura
3.2.2 Acceso a los miembros de una estructura
3.2.3 Inicialización de una estructura
3.2.4 Variable estructura como miembro de otra estructura
3.2.5 Arreglos de estructuras
3.2.6 Paso de estructuras a funciones
3.2.7 Uniones: declaración y uso
3.3 ARCHIVOS
3.3.1 Introducción
3.3.2 Declaración de punteros a archivo FILE *
3.3.3 Funciones para manejo de archivos de texto
3.3.4 Funciones para manejo de archivos binarios
BIBLIOGRAFIA:
- GRANIZO, E.; “Lenguaje C, Teoría y Ejercicios”
- KERNIGHAN & RICHIE, “Lenguaje C”
- HERBERT, S.; “Programación en Lenguaje C”
- LIPPMAN, S. y LAJOIE, J.; “C++ PRIMER”
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: OPERACIÓN DE SISTEMAS MULTIUSUARIOS AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION II NIVEL: TERCERO
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200400 FECHA: _____________
OBJETIVO: Analizar y capacitar al estudiante en el conocimiento de los sistemas operativos multiusuarios conociendo facetas prácticas de entorno de Windows 2000 Server y Linux .
CONTENIDOS: No. HORAS
1.- Generalidades; Instalación y Configuración de Windows 2000 Server 48
1.1 GENERALIDADES:
1.1.1 Clasificación de Sistemas Operativos
- Sistemas operativos por su estructura (visión interna),
- Sistemas operativos por los servicios que ofrecen y,
- Sistemas operativos por la forma en que ofrecen sus servicios (visión externa).
1.1.2 Conceptos básicos de redes
- Introducción
- Motivos por los que es importante tener redes en las empresas.
- Motivos por lo que las personas quisieran formar parte de una red
- Problemas éticos de las redes
1.1.3 Clasificaciones de las redes
1.1.4 Topologías
1.1.5 Medios físicos de transmisión de datos
1.1.6 Introducción a direcciones IP
1.2 INSTALACIÓN Y CONFIGURACIÓN DE WINDOWS 2000 SERVER
1.2.1 Partición de discos
- Análisis del sistema operativo a utilizar
- Requisitos del sistema
- Sistema de Archivos: NTFS, FAT
- Instalación de Windows 2000 Server
- Creación de dominios: Activite Directory
- Creación de usuarios: Tipos de usuarios
- Utilización de herramientas: Pizarra, Mensajes, Mail, Transferencia de archivos
- Políticas de seguridad
- Creación de Client Server
- Configuración de estaciones de trabajo
- Administración de cuotas
- Instalación de aplicaciones en el servidor y acceso desde las estaciones de trabajo
1.2.2 Laboratorios:
- Instalación de Windows 2000 Server
- Utilización de herramientas
- Creación de Client Server y configuración de estaciones de trabajo
- Administración de cuotas
2.- Instalación y Configuración de Linux 26
2.1 Instalación de Linux
2.2 Creación y configuración de usuarios
2.3 Políticas de seguridad
2.4 Utilización de herramientas
2.4 1 Telnet
2.4.2 FTP
2.4.3 Comandos sobre archivos y directorios
2.4.4 Permisos de grupos usuarios y otros
2.5 Editor VI
2.5.1 Configuración del terminal
2.5.2 Inicio del Vi
2.5.3 Introducción del modo de entrada
2.5.4 Salida del Vi
2.5.5 Comandos sobre movimiento dentro de una ventana
2.5.6 Comandos sobre movimiento de la ventana en el buffer
2.5.7 Comandos sobre modificación de texto
2.6 Laboratorios:
2.6.1 Instalación de LINUX
2.6.2 Utilización de herramientas
2.6.3 Comandos sobre archivos y directorios
2.6.4 Comandos VI
3.- Programación Shell 26
3.1 Variables de caracteres
3.2 Operadores lógicos de shell
3.3 Estructuras de control
3.3.1 If
3.3.2 Case
3.3.3 While
3.3.4 For
3.3.5 Aplicaciones
3.4 Laboratorios:
3.4 1 Programas
BIBLIOGRAFIA:
- ÑACATO, G.; CD interactivo de la materia.
- QUISPHE, J.; Libro UNÍS.
- CANOSA, J.; Programación avanzada en Linux
- ROSEN, K; ROSINSKI, R.; UNÍS Sistema V :
- Hoja Electrónica:
www.monografias.com, www.lawebdelprogramador, www.hispafuentes.com/manuales/6.0/rhl-ig-6.0es/node561.html
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION II NIVEL: TERCERO
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200401 FECHA: _____________
OBJETIVO: Desarrollar en los alumnos habilidades que les permitan desarrollar aplicaciones utilizando criterios de diseño, conceptos y técnicas de la Programación Orientada a Objetos.
CONTENIDOS: No. HORAS
1.- Clases y Objetos 30
1.1 Fundamento de la Programación Orientada a Objetos
1.2 Definición de Clases
1.3 Definición y manejo de las Áreas public, private, protected
1.4 Entrada y salida estándar
1.5 Referencias y funciones inline
1.6 Constructores y Destructores
1.7 Funciones amigas
1.8 Miembros static
2.- Asignación dinámica y sobrecarga de operadores 40
2.1 Array de Objetos
2.2 Almacenamiento dinámico
2.3 Sobrecarga de operadores unarios
2.4 Sobrecarga de Operadores binarios
2.5 Conversión de tipo
2.6 Entrada y salida sobrecargada
3.- Herencia, E/S y plantillas 30
3.1 Herencia Simple y Multiple
3.2 Constructores y destructores en clases derivadas.
3.3 Clases virtuales
3.4 Funciones virtuales
3.5 Polimorfismo
3.6 Clase base abstracta
3.7 Plantillas
3.8 Clases de E /S en C++
BIBLIOGRAFIA:
- JOYANES LUIS; Un Enfoque Orientado a Objetos, McGraw - Hill
- SCHILDT HERBERT; OSBORNE; C++ Guía de Autoenseñanza, McGraw - Hill
- GRANIZO EVELIO; Programación Orientada a Objetos en C++, ESPE; Segunda Edición.
- ADDISON WESLEY; El Lenguaje de Programación C++, Iberoamericana; Segunda Edición.
- WILLIAMS MICKEY; La Esencia de Visual C++ 4, Printice Hall Hispanoamericana S.A.
- Técnicas de Programación
http://www.gnacademy.org/text/cc/Tutorial/Spanish/node3.html
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: PROGRAMACION VISUAL I AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION II NIVEL: TERCERO
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200402 FECHA: _____________
OBJETIVO: Desarrollar programas para computadoras que den solución a problemas que requieren de automatización tales como: procesos Administrativos, Financieros, Operativos y otros, para lo cual se aplicarán herramientas de diseño de ambiente gráfico. El estudiante estará en condiciones de utilizar una de las herramientas visuales más empleadas en nuestro medio.
CONTENIDOS: No. HORAS
1.- Fundamentos de programación con Visual Basic 30
1.1 INTRODUCCIÓN
1.1.1 Paradigmas de la Programación
1.1.2 Introducción a la programación orientada a objetos.
1.1.3 Ventajas y Desventajas de las Aplicaciones Graficas Vs. Aplicaciones DOS
1.1.4 Estandarización para la Notación de Variables y Controles.
1.1.5 Elementos del Entorno Integrado de Desarrollo.
1.2 DESARROLLAR APLICACIONES CON VISUAL BASIC
1.2 1 Descripción de las propiedades métodos y eventos
1.2.2 Mi Primer Proyecto para la familiarización de Eventos
1.2.3 Proyecto con controles e interacción entre Eventos: [ Forms] [ Labels ]
[ Command Bottom ] [ Text Box ]
1.2.4 Variables y su ámbito.
1.2 5 Proyectos con controles y el uso de estructuras de control tradicionales:[If..EndIf ]
[For .. Next] [ While .. Loop] [ Case ] y otros.
1.2 6 Proyectos que usan interacción entre controles y su respectivo manejo: [ Combo ]
[ List Box ] [ Frame ] [ Check ] [ Option ] [ Timer ] [ Image ]
1.2 7 Definir variables Type (Variables de Tipo Estructura)
1.2.8 Manejo de Procedimientos y Funciones
1.2.9 Manejo de módulos
1.3 MANEJO DE ARCHIVOS
1.3.1 Tipos de archivos
1.3.2 Manejo y operación de archivos
1.4 PROYECTOS QUE ADMINISTRAN VARIOS FORMULARIOS
1.4 1 Fundamentos de los Menús
1.4.2 Aplicaciones con Interfaz MDI (Documentos Multiples) y SDI
1.4.3 Diálogos Modales y No Modales y Cajas de Mensajes (Msgbox)
1.4.4 Interacción entre varios formularios.
2.- Aplicaciones con Bases de Datos 40
2.1 BASES DE DATOS
2.1.1 Introducción a las BD
2.1.2 Conceptos Básicos de una BD
2.1.3 Estructura de un BD, Funcionamiento y Utilidad
2.1.4 Diseñar y Crear una Base de Datos
2.2 STRUCTURED QUERY LANGUAGE (COMANDOS SQL)
2.2.1 Que es el SQL y cual es su finalidad
2.2.2 Estructura Básica del SQL ( SELECT / DELETE / UPDATE / INSERT )
2.2.3 Ejercicios prácticos para la aplicación de SQL (Usando Microsoft Access)
2.3 APLICANDO VISUAL BASIC CON BASE DE DATOS Y ADO / ADODBC
2.3.1 Diseñar Aplicaciones con controles ADO / ADODBC: [ DataGrid ]
[ FlexGrid / MFlexGrid ]
2.3.2 Asistentes para aplicaciones con Bases de Datos
2.4 APLICANDO VISUAL BASIC CON BASE DE DATOS Y ODBC
2.4.1 Que es un ODBC y su Finalidad
2.4.2 Crear un ODBC
2.4.3 Crear una Conexión Database / Conection
2.4.4 Crear un RecordSet
3.- Utilización de herramientas de programación avanzada 30
3.1 APLICACIONES ODBC CON CONTROLES OLE O NUEVOS COMPONENTES
3.1.1 Diseño de Aplicaciones de Bases de Datos con nuevos componentes
[ Control Progress ] [ Tree View ] [ List View ] [ Tabbed ] [ Image List ] [ Slider ]
3.2 LIBRERÍAS DLL (DINAMIC LINK LIBRARY)
3.2 1 Tipos de DLL
3.2.2 Crear librerías DLL
3.2.3 Como Implementar una DLL en su Aplicación
3.3 CONTROLES ACTIVE X
3.3.1 Que es la tecnología Active X y su finalidad
3.3.2 Como se crea un Control Active X
3.3.3 Como se Implementa una Aplicación para Internet con controles Active X
3.4 MANEJO DE LA TECNOLOGÍA COM
3.4 1 Que es la tecnología COM
3.4.2 Integración de Visual Basic con otras aplicaciones (Word y Excel)
BIBLIOGRAFIA:
- MANN, A, “Real – World Programming with Visual Basic”, Second Edition, SAMS Publising, USA, 1996
- RAHMEL, D & RAHMEL, “Developing Client/Server Aplications with Visual Basic”, First Edition, SAMS Publising, USA, 1996
- AYUDAS EN LINEA, “Microsoft Visual Basic 6.0 ”
- HTML (1), www.monografias.com
- HTML (2), www.microsoft.com/devonly/
- HTML (3), www.lawebdelprogramador.com
- MICROSOFT , “Microsoft Visual Basic 6.0 ”, Microsoft Press – McGraw Hill
- HTML (4), www.vbcode.com
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: PROGRAMACION VISUAL II AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION ORIENTADA OBJETOS NIVEL: CUARTO
PROGRAMACION VISUAL I
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200403 FECHA: _____________
OBJETIVO: Desarrollar en los estudiantes criterios de diseño de software utilizando herramientas de la programación visual que les permitan desarrollar proyectos de carácter profesional y comercial que se apeguen a las necesidades; con una optimización de recursos, fomentando el espíritu investigativo que le permita afrontar los constantes y acelerados cambios en el campo de la computación y especialmente a los cambios de los lenguajes de programación visual.
CONTENIDOS: No. HORAS
1.- Programación Básica En Visual C++ 30
1.1 INTRODUCCIÓN A LA PROGRAMACIÓN WINDOWS.
1.1.1 Programación orientada a eventos.
1.1.2 Procesamiento de mensajes.
1.1.3 Interfaz de Dispositivos Gráficos (GDI).
1.1.4 Programación Basada en Recursos.
1.1.5 Gestión de Memoria.
1.1.6 Librerías de Enlace Dinámico (DLL).
1.1.7 Interfaz de aplicación (API).
1.1.8 Nomenclatura de identificadores en Windows (Notación Húngara).
1.2 EL AMBIENTE DE VISUAL C++.
1.2.1 Características de los programas.
1.2.2 Componentes del Visual C++.
1.2.2.1 Developer Studio: Herramientas; Asistentes.
1.2.2.2 Compilador C/C++.
1.2.2.3 Compilador de Recursos.
1.2.2.4 Enlazador.
1.2.2.5 Depurador.
1.2.3 Clases fundamentales de Microsoft (MFC).
1.2.4 Tipos de Programas
1.2.4.1 Programas sin MFC (y consola).
1.2.4.2 Programas con MFC.
1.3 ARQUITECTURA DE UNA APLICACIÓN.
1.3.1 Esqueleto de un programa
1.3.1.1 Clases básicas de un proyecto.
1.3.2 Introducción a la arquitectura Documento/Vista.
1.3.3 Mensajes.
1.3.4 Introducción a los Recursos
1.3.4.1 Procesamiento de mensajes en el Mouse.
1.3.4.2 Uso de Recursos (Menú, ToolBar, Iconos, Mapas de bits).
1.3.5 Utilización de Menús.
1.3.6 ToolBar asociado a los menús.
1.4.1 Menús:
1.4.1.1 Definición.
1.4.1.2 Tipos de menús en relación con su apariencia.
1.4.1.3 Creación de los menús
- Adición de un nuevo elemento de menú.
- Adición de la función de manejo de mensajes.
1.4.1.4 Teclas aceleradas.
1.4.1.5 Procesamiento de órdenes.
1.4.1.6 Menús desplegables
- Creación del Recurso del menú.
- Aplicación de funciones para el manejo de mensajes.
1.4.2 CUADROS DE DIALOGO:
1.4.2 1 Definición.
1.4.2.2 Tipos de Cuadros de Diálogo.
1.4.2.3 Cuadros de diálogo modales: Adición, creación, mensaje WM_INITDIALOG.
1.4.2.4 Cuadros de diálogo no modales.
1.4.2.5 Controles: Botón, edición, cuadros de lista, cuadro combinado, vista de árboles, arriba-abajo, avance, deslizantes, vista de listas.
1.4.3 BARRAS DE CONTROL:
1.4.3.1 Las barras de estado.
1.4.3.2 Las barras de herramientas.
1.4.3.3 Las barras de diálogo.
2.- Técnicas Avanzadas Y Programación Gráfica En Visual C++ 35
2.1 DOCUMENTOS Y VISTAS:
2.1.1 Controles de vista de lista.
2.1.2 Arquitectura documento/ vista.
2.1.3 Uso de vistas de forma.
2.1.4 Vistas múltiples.
2.1.5 Vistas divididas.
2.2 MULTITAREAS
2.2.1 Tareas en segundo plano. La función OnIdle.
2.2.2 HILOS:
- Comunicación entre Hilos.
- Sincronización de Hilos.
2.3 COMPONENTES SOFTWARE:
2.3.1 OLE, OLE2.
2.3.2 COM, DCOM.
2.3.3 Interfaces.
2.4 CONTEXTOS DE DISPOSITIVO
2.4.1 Tipos: DC de pantalla, DC de memoria.
2.4.2 Cálculo del número máximo de colores disponibles.
2.4.3 Dibujo en ventanas
- Regiones y actualización.
- Área no cliente.
- Bloqueo de una ventana.
2.4.4 Mapeado.
2.5 HERRAMIENTAS DE DIBUJO
2.5.1 Plumas y Brochas.
2.5.2 Rectas y curvas.
2.5.3 Caminos: creación y operaciones.
2.5.4 Regiones: creación y operaciones.
2.5.5 Metaarchivos.
2.6.3 Aplicación de máscaras a una imagen.
3.- Técnicas De La Computación Gráfica 35
3.1 TRANSFORMACIONES GEOMÉTRICAS BIDIMENSIONALES.
3.1.1 Traslaciones, Rotaciones, Escalamiento, Afilamiento.
3.1.2 Representación matricial de las transformaciones.
3.1.3 Combinación de Transformaciones.
3.1.4 Funciones de transformación usadas en/para Visual C++ (Windows 2000).
3.1.5 Aplicaciones.
3.2 BIBLIOTECAS GRÁFICAS: GENERALIDADES
3.2.1 OpenGL.
3.2.2 DirectX.
3.3.1 Consideraciones en torno a la Velocidad.
3.3.2 Tabla de búsqueda de trayectoria.
3.3.3 Colisión.
3.3.4 Texturas.
BIBLIOGRAFIA:
- BATES, J., TOMPKINS, T., Descubre Microsoft Visual C++ 6, Prentice Hall, México, 1999.
- CEVALLOS, F.; Microsoft Visual C++ 6 Aplicaciones para Win32, Alfaomega Rama, España, 2000.
- CEVALLOS, F.; Microsoft Visual C++ 6 Programación Avanzada en Win32, Alfaomega Rama, España, 2001.
- KRUGLINSKY, D.; Programación avanzada con Visual C++ 6, Prentice Hall, México, 1999.
- BENNETT, D.; Visual C++ 5 para Desarrolladores, Prentice Hall, México, 1998.
- INTERNET:
www.elrincondelprogramador.com
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: ESTRUCTURA DE DATOS AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION ORIENTADA OBJETOS NIVEL: CUARTO
MATEMATICAS DISCRETAS
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200404 FECHA: _____________
OBJETIVO: Desarrollar programas para computadoras que den solución a problemas de la vida real y que se utilicen en la generación e implementación de aplicaciones para almacenamiento de información, usando Estructuras Dinámicas con programación orientada a objetos, utilizando el lenguaje C++ y Visual C++.
CONTENIDOS: No. HORAS
1.- Listas enlazadas, pilas y colas. 30
1.1 LISTAS SIMPLES
1.1.1 Representación, concepto y declaración
1.1.2 Operaciones básicas (creación, recorrido, liberación, vaciado y copia)
1.1.3 Operaciones de inserción y eliminación de nodos
1.1.4 Operaciones de búsqueda y clasificación
1.1.5 Aplicaciones de listas simple utilizando archivos de texto o binario
1.2 LISTAS CIRCULARES
1.2.1 Representación, concepto y declaración
1.2.2 Operaciones básicas (creación, recorrido, liberación, vaciado y copia)
1.2.3 Operaciones de inserción y eliminación de nodos
1.2.4 Concatenar dos listas
1.3 LISTAS DOBLEMENTE ENLAZADAS
1.3.1 Representación, concepto y declaración
1.3.2 Operaciones básicas (creación, recorrido, liberación, vaciado y copia)
1.3.3 Operaciones de inserción y eliminación de nodos
1.3.4 Operaciones de búsqueda y clasificación
1.3.5 Aplicaciones de listas doblemente enlazadas en ejercicios tipo (operaciones con polinomios)
1.4 PILAS
1.4.1 Definición de una pila usando listas simples
1.4.2 Operaciones sobre pilas
1.4.3 Notaciones infijo, posfijo y prefijo
1.4.4 Transformaciones de notación infijo a posfijo
1.4.5 Evaluación de expresiones en infijo, posfijo y prefijo
1.5 COLAS
1.5.1 Definición de una cola usando listas simples, operaciones.
1.5.2 Definición de una cola usando listas circulares, operaciones.
1.5.3 Estructura de una bicola.
2.- Árboles binarios y árboles AVL. 40
2.1 INTRODUCCIÓN
2.1.1 Terminología de árboles binarios
2.1.2 Recorrido de árboles binarios
2.2 OPERACIONES SOBRE ÁRBOLES BINARIOS DE BÚSQUEDA
2.2.1 Búsqueda de un árbol binario
2.2.2 Inserción en un árbol binario
2.2.3 Suprimir un nodo en un árbol binario
2.2.4 Recorrido de árboles: preorden, inorden y posorden
2.3 ROTACIONES EN ÁRBOLES AVL
2.3.1 Una rotación a la derecha
2.3.2 Una rotación a la izquierda
2.3.3 Doble rotación a la derecha
2.3.4 Doble rotación a la izquierda
2.4 OPERACIONES DE UN NODO EN UN ÁRBOL AVL
2.4.1 Inserción de un nodo
2.4.2 Eliminación de un nodo
2.5 BALANCE EN ÁRBOLES AVL
2.5.1 Balance por la izquierda
2.5.2 Balance por la derecha
3.- Arboles B, B++ y Grafos 30
3.1 ÁRBOLES B
3.1.1 Introducción
3.1.2 Anatomía de una página
3.1.3 Impresión de un árbol B
3.1.4 Búsqueda de una llave en un árbol B
3.1.5 Inserción de una llave en un árbol B
3.1.6 Retiro de una llave en un árbol B
3.2 ARBOLES B+
3.2.1 Introducción
3.2.2 Organización de un árbol B+
3.2.3 Búsqueda de una llave en un árbol B+
3.2.4 Inserción de una llave en un árbol B+
3.2.5 Retiro de una llave en un árbol B+
3.3 GRAFOS
3.3.1 Definiciones
3.3.2 Almacenamiento de un grafo en la memoria del computador
3.3.3 Utilización de una lista en una matriz de adyacencia
3.3.4 Lista de adyacencia invertida
3.3.5 Matriz de caminos
3.3.6 Digrafos fuertemente conectados
3.3.7 Algoritmo para calcular la matriz de caminos
3.3.8 Clausura transitiva de un grafo
3.3.9 Formas de recorrer un grafo: recorrido a lo ancho, recorrido en profundidad
3.3.10 Líneas de regreso al recorrer un grafo a lo ancho
3.3.11 Algoritmos para generar las líneas de regreso
3.3.12 Líneas de regreso al recorrer un grafo en profundidad
3.3.13 Nodos de corte
3.3.14 Líneas de cruce en un grafo
BIBLIOGRAFIA:
- SCHILDT, H.; “TURBO C/C++3.1 ”, Primera Edición en Español, Editorial McGraw Hill / Interamericana de España, España, 1994.
- LANGSAM, Y., AUGENSTEIN, M.; “Estructura de datos con C y C++”, Enc. Tecnica Editorial Prentice Hall Hispanoamericana S.A. , Mexico, 1997.
- BECERRA, C.; “Estructura de datos en C”, Primera Edición, Editoral, Arfo Colombia, 1991.
- TANEMBAUM, A.; “Estructura de datos en C”, Segunda Edición en Español, Editoral Prentice Hall Hispanoamericana, México, 1995.
- KERNIGHAN, B., RITCHIE, D.; “El lenguaje de programación C” ,Primera Edición en Español, Editoral Prentice Hall Hispanoamericana, México, 1985.
- WIRTH, N.; “Algoritmos y Estructura de datos”, Prentice Hall,1978.
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: TEORIA DE SISTEMAS OPERATIVOS AREA: PROGRAMACION
PREREQUISITO: OPERACIÓN SISTEMAS MULTIUSUARIOS NIVEL: CUARTO
ARQUITECTURA COMPUTADORES II
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200405 FECHA: _____________
OBJETIVO: Identificar los componentes internos de un sistema operativo y su interrelación lógica, mediante la formulación de conceptos teóricos, que permitan distinguir la utilización de diferentes sistemas operativos comerciales.
CONTENIDOS: No. HORAS
1.- Conceptos y Componentes; Gestión de Procesos 30
1.1.1 Componentes del sistema
1.1.2 Servicios del Sistema Operativo
1.1.3 Llamadas al sistema
1.1.4 Programas del sistema
1.1.5 Estructura del sistema
1.1.6 Máquinas virtuales
1.1.7 Diseño e implementación de sistemas
1.1.8 Generación de sistemas operativos
1.2 PROCESOS
1.2.1 El concepto de proceso
1.2.2 Planificación de procesos
1.2.3 Operaciones con procesos
1.2.4 Procesos cooperativos
1.2.5 Hilos (Threads)
1.2.6 Comunicación entre procesos
1.3 PLANIFICACIÓN DEL CPU
1.3.1 Conceptos básicos
1.3.2 Criterios de planificación
1.3.3 Algoritmos de planificación
1.3.4 Planificación de múltiples procesadores
1.3.5 Planificación en tiempo real
1.3.6 Evaluación de algoritmos
1.4 SINCRONIZACION DE PROCESOS
1.4.1 Antecedentes
1.4.2 El problema de la sección crítica
1.4.3 Hardware de sincronización
1.4.4 Semáforos
1.4.5 Problemas clásicos de sincronización
1.4.6 Regiones críticas
1.4.7 Monitores
1.5 BLOQUEOS MUTUOS
1.5.1 Modelo del sistema
1.5.2 Caracterización de bloqueos mutuos
1.5.3 Métodos para manejar bloqueos mutuos
1.5.4 Prevención de bloqueos mutuos
1.5.5 Evitación de bloqueos mutuos
1.5.6 Detección de bloqueos mutuos
1.5.7 Recuperación después de un bloqueo mutuo
1.5.8 Estrategia combinada para el manejo de bloqueos mutuos
2.- Gestión de Memoria y Almacenamiento; Sistemas de Entrada y Salida 35
2.1 GESTION DE MEMORIA
2.1.2 Espacio de direcciones lógico y físico
2.1.3 Intercambio
2.1.4 Asignación contigua
2.1.5 Paginación
2.1.6 Segmentación
2.1.7 Segmentación con paginación
2.2 MEMORIA VIRTUAL
2.2.1 Antecedentes
2.2.2 Paginación por demanda
2.2.3 Desempeño de la paginación por demanda
2.2.4 Reemplazo de páginas
2.2.5 Algoritmos de reemplazo de páginas
2.2.6 Asignación de marcos
2.2.7 Hiperpaginación
2.2.8 Otras consideraciones
2.2.9 Segmentación por demanda
2.3 INTERFAZ CON EL SISTEMA DE ARCHIVOS
2.3.1 Concepto de archivo
2.3.2 Métodos de acceso
2.3.3 Estructura de directorios
2.3.4 Protección
2.3.5 Semántica de consistencia
2.4 IMPLEMENTACION DE SISTEMAS DE ARCHIVOS
2.4.1 Estructura del sistema de archivos
2.4.2 Métodos de asignación
2.4.3 Administración del espacio libre
2.4.4 Implementación de directorios
2.4.5 Eficiencia y desempeño
2.4.6 Recuperación
2.5 SISTEMAS DE E/S
2.5.1 Generalidades
2.5.2 Hardware de E/S
2.5.3 Interfaz de E/S de las aplicaciones
2.5.4 Subsistema de E/S del núcleo
2.5.5 Transformación de solicitudes de E/S en operaciones de hardware
2.5.6 Desempeño
2.6 ESTRUCTURA DEL ALMACENAMIENTO SECUNDARIO
2.6.1 Estructura de discos
2.6.2 Planificación de discos
2.6.3 Administración de discos
2.6.4 Administración del espacio de intercambio
2.6.5 Confiabilidad de los discos
2.6.6 Implementación de almacenamiento estable
3.- Sistemas Distribuidos; Protección y Seguridad 35
3.1 ESTRUCTURA DE SISTEMAS DISTRIBUIDOS
3.1.1 Sistemas operativos de red
3.1.2 Sistemas operativos distribuidos
3.1.3 Servicios remotos
3.1.4 Robustez
3.1.5 Aspectos de diseño
3.2 SISTEMAS DE ARCHIVOS DISTRIBUIDOS
3.2.1 Antecedentes
3.2.2 Nombres y transparencia
3.2.3 Acceso a archivos remotos
3.2.4 Servicio con y sin estado
3.2.5 Replicación de archivos
3.3 COORDINACIÓN DISTRIBUIDA
3.3.1 Ordenación de sucesos
3.3.2 Exclusión mutua
3.3.3 Atomicidad
3.3.4 Control de concurrencia
3.3.5 Manejo de bloqueos mutuos
3.3.6 Algoritmos de elección
3.4 PROTECCIÓN Y SEGURIDAD
3.4.1 Objetivos de la protección y seguridad
3.4.2 Dominio de protección
3.4.3 Matriz de acceso
3.4.4 Sistemas basados en capacidades
3.4.5 Protección basada en el lenguaje
3.4.6 Validación de la seguridad
3.4.7 Contraseñas de un solo uso
3.4.8 Amenazas al sistema
3.4.9 Clasificación de seguridades de las computadoras
BIBLIOGRAFIA:
- DEITEL, H.; Introducción a los Sistemas Operativos, Adisson-Wesley.
- TANENBAUM, A.; Sistemas operativos modernos, Prentice Hall.
- SILBERSCHATZ G.; Sistemas operativos.
- MILENKOVIC, M.; Sistemas Operativos, McGraw-Hill.
- CARRETERO J., GARCIA F. Y Otros; Sistemas Operativos Una Visión Aplicada, McGraw-Hill
- HEIDELBERG P.; Metodología y Evaluación del rendimiento de las computadoras
- BELADY L.; Tecnología de la administración de las memorias en IBM
- SOCKUT G.H.; Sistemas Operativos para Firmware y Hardware
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: APLICACIÓN DE SISTEMAS OPERATIVOS AREA: PROGRAMACION
PREREQUISITO: TEORIA DE SISTEMAS OPERATIVOS NIVEL: QUINTO
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200406 FECHA: _____________
OBJETIVO: Establecer las bases de operación y funcionamiento de los modernos sistemas operativo, como son Unix y Windows, así como la interacción que existe entre estos dos para soportar las aplicaciones que requieren los usuarios.
CONTENIDOS: No. HORAS
1.- Optimización De Los Sistemas Operativos 25
1.1 Evolución histórica de los sistemas operativos.
1.2 Reacciones reversibles e irreversibles, de los distintos elementos del hardware.
1.3 Principios fundamentales de comportamiento del procesador, la memoria el disco duro y los buses de datos.
1.4 Relación del Sistema Operativo con el hardware.
1.5 Soluciones a los principales problemas que plantea la optimización del software
1.6 Principios básicos de operación de los usuarios en los sistemas multiusuarios.
1.7 Unix y Windows interoperatividad.
2.- Soporte De Los Sistemas Operativos A Las Aplicaciones 30
2.1 Características de los servidores, estaciones de trabajo y pc’s de hogar.
2.2 Identificación de los sistemas operativos monousuarios, multitareas y multiusuarios.
2.3 Administración de los sistemas operativos multiusuarios y multitareas.
2.4 Conceptos de dominio grupos y usuarios.
2.5 Coexistencia de los Unix y Windows.
3.- Programación En Los Shell Y Otros Recursos De Los Sistemas Operativos 45
3.1 Analizar las diferentes estructuras para desarrollar scripts de aplicaciones y textos.
3.2 Guías para la utilización los shells de UNIX en las aplicaciones.
3.3 Ejemplos de desarrollo y configuración de scripts sobre UNIX.
3.4 Compatibilidad entre deseéis de diferentes sistemas Unix.
3.5 Ejemplo de scripts para entornos multiusuarios.
3.6 Analizar las diferentes estructuras de aplicaciones, graficas, texto, multimedia,
cliente servidor y tres capas.
3.7 Guías para la utilización de aplicaciones sobre los entornos UNIX.
3.8 Ejemplos configuración y explotación de aplicaciones sobre UNIX.
3.9 Compatibilidad entre aplicaciones de Unix y Windows.
3.10 Ejemplo de operación de aplicaciones en modo multiusuarios.
BIBLIOGRAFIA:
- CANOSA, J.; "Programación avanzada en Unix”; Osborne Mac Graw Hill, España, 2001
- ZIEGLER, R; "Guía avanzada de Unix"; Prentice Hall, España, 2000
- Unix site: www.unix.org
- Microsoft site:www.microsoft.com
- Linux site: www.ibm.org/linux
- Solaris site:www.sun.com
- Linux site : www.metalab.org
- PHP web site: www.php.net
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: INTERFACES Y MULTIMEDIA AREA: PROGRAMACION
PREREQUISITO: PROGRAMACION VISUAL II NIVEL: QUINTO
NUMERO DE CREDITOS: 5 H TOTAL HORAS: 100 H
CODIGO: 01SIS200407 FECHA: _____________
OBJETIVO: Digitalizar y editar elementos de multimediales para determinar formatos de archivos adecuados e integrar los mismos aplicando metodologías de desarrollo y heurísticas de interfases de usuario, para generar aplicaciones mutimediales interactivas tradicionales y aplicaciones en la WEB.
CONTENIDOS: No. HORAS
1.- INTRODUCCIÓN DE MEDIOS, RECURSOS HIPERMEDIALES, Y DITALIZACIÓN,
EDICIÓN DE ELEMENTOS DE MULTIMEDIA, HERRAMIENTAS DE DESARROLLO,
INTERFASES DE USUARIO Y METODOLOGÍAS DE DESARROLLO 35
1.1 Medios
1.1.1 Características
1.1.2 Elementos de comunicación
1.2 Recursos hipermediales
1.2.1 Proyectos multimediales
1.2.2 Hipertexto, hipermedia
1.2.3 Aplicaciones de la multimedia
1.3 Digitalización e edición de elementos de multimedia
1.3.1 Texto
1.3.1.1 Digitalización y edición de texto
1.3.1.2 Tipos de fuentes
1.3.1.3 Aplicaciones
1.3.2 Sonido
1.3.2.1 Digitalización y edición de sonido
1.3.2.2 Formatos de archivos
1.3.2.3 Laboratorio: Cool edit, Sound Forget, Goldwave
1.3.2.4 Discos ópticos
1.3.3 Imágenes
1.3.3.1 Digitalización y edición de imágenes
1.3.3.2 Formatos de archivos
1.3.3.3 Laboratorio: Fireworks, Adobe Photoshop
1.3.4 Video
1.3.4.1 Digitalización y edición de video
1.3.4.2 Formatos de archivos
1.3.4.3 Creación de Películas
1.3.4.4 Laboratorio: Adobe Premier
1.4 Herramientas de desarrollo
1.4.1 Características
1.4.2 Herramientas de desarrollo basados en íconos
1.4.3 Herramientas de desarrollo basados en páginas
1.4.4 Herramientas de desarrollo basadas den tiempo
1.5 Metodologías de desarrollo
1.5.1 Tradicionales
1.5.2 OOHDM
1.6 Interfases de usuario
1.6.1 Tareas
1.6.2 Heurísticas de diseño
1.6.2.1 Consistencia
1.6.2.2 Lo que se hace es lo que se ve
1.6.2.3 Basados en iconos
1.6.2 4 Manipulación Directa
1.6.2 5 Visuales
2.- DESARROLLO DE APLICACIONES HIPERMEDIALES 35
2.1 Integración de elementos de multimedia en Astound
2.1.1 Diseño Background
2.1.2 Importar elementos de multimedia
2.1.3 Control de tiempos de slides y elementos de mutlimedia
2.1.4 Controles de interactividad
2.2 Diseño y generación de aplicaciones hipermediales interactivas en Flash
2.2.1 Entorno de trabajo
2.2.2 Características de la película
2.2.3 Capas y Fotogramas
2.2.4 Bibliotecas
2.2.5 Botones flash
2.2.6 Técnicas de animación
2.2.7 Action script
2.2.8 Enlazar páginas web
2.3 Diseño y generación de aplicaciones hipermediales interactivas en Macromedia Director.
2.3.1 Introducción
2.3.2 Efectos en el canal de Tiempo - Efectos en el canal de Transiciones Efectos en el canal de Sonidos - Navegación dentro de un mismo "movie" - Navegación hacia otro "movie"
2.3.3 Utilización de "Library Palette" - Utilización de "Paint Window" - Utilización de "Property Inspector" - Propiedades de "tinta"
2.3.4 Controles de Vídeo - Cerrando el CD autoejecutable
2.3.5 Rollovers y "Filmloops"- Controles de sonido
2.3.6 Técnicas de animación
2.3.7 Programación lingo
3.- MULTIMEDIA EN EL INTERNET, APLICACIONES EN LA WEB 30
3.1 Lenguaje HTML
3.1.1 Cuerpo documento HTML
3.2 Java script
3.3 Diseño de páginas web
3.3.1 Office
3.3.2 Dreamweaver
3.3.2.1 Creación de un sitio Web.
3.3.2.2 Organización de sitios y páginas.
3.3.2.3 Administración del sitio.
3.3.2.4 Definición de una combinación de colores. 8. Propiedades de la página.
3.3.2.5 Creación de las páginas del sitio.
3.3.2.6 Inserción de contenido de texto.
3.3.2.7 Creación de listas.
3.3.2.8 Vínculos.
3.3.2.9 Imágenes. 13.
3.3.2.10 Uso de imágenes en Dreamweaver.
3.3.2.11 Uso de las tablas.
3.3.2.12 Marcos.
3.3.2.13 Creación de formularios.
3.3.2.14 Hojas de estilos en cascada.
3.3.2.15 Mapas de imágen de cliente.
3.3.2.16 HTML dinámico.
3.3.2.17 Animación de capas.
3.3.2.18 Visualización en el Internet explorere
3.3.2.19 Creación de formularios
BIBLIOGRAFIA:
- CD interactivo INTERFSASE & MULTIMEDIA. Ing. MS.c. GERMAN ÑACATO
- Internet (www.monografias.com, www.lawebdelprogramador, www.hispafuentes.com/manuales/6.0/rhl-ig-6.0es/node561.html
ESCUELA POLITECNICA DEL EJERCITO
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROGRAMA ANALITICO
ASIGNATURA: TRADUCTORES Y COMPILADORES AREA: PROGRAMACION
PREREQUISITO: ESTRUCTURA DE DATOS NIVEL: OPTATIVA
NUMERO DE CREDITOS: 3 H TOTAL HORAS: 60 H
CODIGO: 01SIS900400 FECHA: _____________
OBJETIVO: Los objetivos generales de la signatura comprenden una introducción a los lenguajes de programación, el conocimiento general de las Gramáticas y sus elementos constitutivos y el estudio de las diferentes fases del proceso de compilación, comparándolo con otros traductores. Además se analizan el uso de herramientas disponibles para efectuar algunas de las fases de la compilación
CONTENIDOS: No. HORAS
1.- Lenguajes de programación – Compilación: Análisis Léxico 20
1.1 Breve introducción a los lenguajes de programación
1.2 Gramáticas: conceptos y elementos constitutivos
1.3 Vocabulario (tokens) de un lenguaje de programación
1.4 Análisis Léxico (Scanning): descripción del modelo y del algoritmo
1.5 Aplicaciones prácticas de analizadores léxicos (Scanners)
1.6 Expresiones regulares.
2.- Análisis Sintáctico descendente – Herramientas para compilación 20
2.1 Descripción y uso de las herramientas para análisis léxico: lex o flex.
2.2 Esquemas y características generales del análisis sintáctico.
2.3 Análisis sintáctico descendente (top-down): método recursivo descendente.
2.4 Análisis Sintáctico descendente: método general de análisis LL(1) – algoritmo de la pila.
2.5 Conjuntos PRIMERO (FIRST).
2.6 Conjuntos SIGUIENTE (FOLLOW) e incidencia de reglas vacías.
3.- Análisis Sintáctico ascendente, análisis semántico, generación de código 20
3.1 Análisis sintáctico ascendente: método de desplazamiento - reducción (handler). Ejemplos
3.2 Análisis sintáctico ascendente: método LR – algoritmo de la pila. Ejemplos
3.3 Obtención de las matrices Acción e Ir_a. Ejemplos
3.4 Uso de las herramientas yacc o bison Ejemplos
3.5 Breve descripción del Análisis semántico como una continuación del análisis sintáctico.
3.6 Breve descripción de cómo se efectúa la generación de código objeto.
BIBLIOGRAFIA:
- PRATT,T., ZELKOWITZ, M.; Lenguajes de programación: diseño e implementación, 3ª. edición, Prentice Hall 1996
- AHO,A., ULLMAN, J., SETHI,R.; Compiladores: principios, técnicas, herramientas; Addison Wesley 1986
- TEUFFEL, SCHMIDT, TEUFFEL; Compiladores: conceptos fundamentales; Addison Wesley 1993