PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
FACULTAD DE CIENCIAS E INGENIERÍA

INGENIERÍA INFORMÁTICA

LENGUAJES DE PROGRAMACIÓN 1

CLAVE : INF281
CRÉDITOS : 5.0
TEORÍA : 4.0 horas semanales
LABORATORIO : 2.0 horas semanales
PROFESOR : J. Miguel Guanira Erazo
miguel.guanira@pucp.edu.pe

I. DESCRIPCIÓN DEL CURSO

El curso busca mostrar las herramientas proporcionadas por el lenguaje C++ que permitan implementar programas usando técnicas tanto estructuradas como orientadas a objetos.

La primera parte del curso se dedicará a mostrar sólo las herramientas estructuradas del lenguaje, esto debido a la familiariada, con esta técnica, que tienen los alumnos que llevan por primera vez el curso.

La segunda parte del curso será dedicada a definir los conceptos de la programación orientada a objetos, y a la implementación directa de estos conceptos.

II. OBJETIVOS

Al final del curso, el alumno debe ser capaz de implementar soluciones relativamente complejas empleando el lenguaje de programación C++.

La implementación de estas soluciones las realizará empleando tanto las técnicas de programación estructuradas como las de la programación orientada a objetos.

El alumno estará en condiciones de migrar, sin dificultad, a otros lenguajes de programación similares, como Java, C#, etc., tema del siguiente curso.

Estos objetivos contribuyen al logro de los siguientes cinco resultados del estudiante:

a. Aplica los conocimientos relacionados a las matemás, ciencias e ingeniería.
c. Diseña sistemas, componenetes o procesos que satisfagan las necesidades presentadas.
i. Reconoce la necesidad y se compromete con el aprendizaje a lo largo de toda la vida.
k. Utiliza las técnicas, estrategias y herramientas de la ingeniería moderna necesarias para la práctica de la misma.
l. Aplica los conocimientos relacionados a los lenguajes de programación, modelado de sistemas de información, construcción de software de calidad y administración de recursos tecnológicos.

III. PROGRAMA ANALÍTICO

CAPÍTULO 1. INTRODUCCIÓN AL LENGUAJE C++

Estructura básica de un programa en C++. Etapas en la generación de un programa, compilación e interpretación. Introducción al pre-procesador. Identificadores y tipos de datos. Variables y constantes. Operadores y expresiones. Asignación de valores. Bloques. Estructuras de decisión. Estructuras iterativas.

CAPÍTULO 2. ENTRADA SALIDA DE DATOS

Instrucciones que permiten el ingreso y salida de datos desde el punto de vista del lenguaje C y desde el lenguaje C++. Re direccionamiento de la entrada y salida estándar.

CAPÍTULO 3. FUNCIONES Y ALCANCE DE VARIABLES

Conceptos básicos. Reglas de alcance. Manejo de variables. Parámetros por valor y por referencia. Programación modular. El pre-procesador. Funciones inline. Introducción a la sobrecarga de funciones y operadores. Introducción al uso de plantillas. Bibliotecas de funciones.

CAPÍTULO 4. ARREGLOS Y PUNTEROS

Conceptos básicos. Arreglos. Punteros. Aritmética de punteros. Cadenas de caracteres. Punteros a funciones. Punteros a punteros. Punteros genéricos. Argumentos en la línea de comandos. Funciones con parámetros variables.

CAPÍTULO 5. ARCHIVOS

Archivos Binarios y de Texto. Descriptores de archivo. Funciones para el acceso secuencial y directo de archivos. Archivos genéricos.

CAPÍTULO 6. PROGRAMACIóN ORIENTADA A OBJETOS

Conceptos básicos. Definición de clases y creación de objetos. Atributos y métodos. Especificadores de acceso a miembros: public y private. Constructores y destructores. Sobrecarga. Concepto de agregación.

CAPÍTULO 7. OPERADORES SOBRECARGADOS

Implementación de sobrecarga de operadores en clases.

CAPÍTULO 8. HERENCIA

Concepto de herencia. Herencia simple. Jerarquía de clases. Sobre escritura de métodos. Llamadas a constructores. Especificador de acceso a miembros: protected. Modificadores de ámbito en la herencia. Herencia Múltiple. Clase base virtual en la herencia múltiple.

CAPÍTULO 9. PUNTEROS A OBJETOS

Punteros a objetos, nomenclatura. El puntero this. Punteros en herencia. Métodos virtuales. Polimorfismo. Clases abstractas. Clases auto referenciadas: Listas ligadas, árboles.

CAPÍTULO 10. PLANTILLAS Y BIBLIOTECA ESTÁNDAR DE PLANTILLAS

Plantillas de funciones y plantillas de clases. Contenedores. Iteradores. Algoritmos.