FACULTAD DE SISTEMAS Y TELECOMUNICACIONES PROGRAMA ANALÍTICO

Anuncio
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
PROGRAMA ANALÍTICO
MATERIA
CODIGO
PRE-REQUISITOS
PERIODO LECTIVO
HORAS PRESENCIALES
PROGRAMACIÓN I
COM 200
CREDITOS
4
COM 110 FUNDAMENTOS DE
PROGRAMACIÓN
Semestre
Clases
64 horas
1. DESCRIPCIÓN
COM 200– Programación I. El desarrollo siempre ascendente del software dio origen a la
programación orientada a objetos. La orientación a objetos es una forma natural de
pensar en relación con el mundo y de escribir programas para las computadoras que
establecen un nuevo paradigma de la programación, producto de la evolución natural de
la misma. La clave de la POO es encontrar características comunes entre entidades
implicadas en el problema y crear estructuras de datos que capturen esas características
comunes.
2. OBJETIVOS
2.1. General

Modelar situaciones del mundo real aplicando los conceptos de la programación
orientada a objetos para la solución de problemas prácticos.
2.2. Específicos

Establecer las relaciones entre clases mediante el uso de patrones de
asignación de responsabilidades para modelar situaciones problémicas.

Aplicar las propiedades de encapsulamiento, herencia y polimorfismo a la
solución de problemas prácticos.

Diseñar soluciones informáticas aplicando las bibliotecas que brinda el editor de
C++.

Implementar modelos que dan solución a situaciones del mundo real empleando
un lenguaje de programación orientado a objetos.
1/8

Desarrollar
aplicaciones
informáticas mediante el uso de técnicas que
garanticen robustez, flexibilidad y modularidad.
3. COMPETENCIAS
 Determina las diferentes relaciones entre clases presentes en un problema.
 Desarrolla pequeñas aplicaciones donde se implementen las relaciones entre
clases y la sobrecarga de métodos.
 Manipula arreglos de objetos implementando algoritmos básicos.
 Aplica los conceptos de la herencia y el polimorfismo en la modelación de
problemas prácticos.
 Utiliza las técnicas de tratamiento de errores y excepciones en la solución de problemas.

4. RESULTADOS APRENDIZAJE
 Elabora programas secuenciales y con bifurcación que cumplen objetivos
específicos.
 Diseña programas óptimos con los conceptos de orientación a objetos.
5. METODOLOGÍA
La metodología utilizada en la materia de Programación I, estará basada en los conceptos generales
de la Programación Orientada a Objetos donde se utilizará el Lenguaje de Programación C++, esta
materia se desarrollará en forma
de talleres y prácticas de laboratorio, en conjunto de otros
materiales didácticos permitirá que los estudiantes alcancen los objetivos planteados. Sin embargo,
las metodologías que se aplicarán tendrán algunos aspectos comunes, los cuales se derivan del
modelo constructivista social, en el cual se basa el Modelo Educativo de la Universidad Ecotec. Por
esta razón se privilegian los métodos participativos y entre ellos el de casos, combinándose con
otros métodos activos, como el de juegos de roles, el problémico, lluvia de ideas, entre otros,
favoreciendo de manera sistemática la interacción de los estudiantes en grupos, siguiendo los
principios del aprendizaje cooperativo (colaborativo), con el fin de desarrollar la competencia de
trabajo en equipo.
En este enfoque metodológico el docente actúa como un facilitador, que explora los conocimientos
previos que tienen los estudiantes sobre el tema y guía la construcción de los conocimientos de
manera individual y en grupos, vinculando de manera sistemática la práctica con la teoría. Se
refuerza la relación de la teoría con la práctica y las habilidades de los estudiantes de desarrollar sus
propias ilustraciones gráficas.
2/8
Descripción del tipo de trabajos requeridos
 Cada semana se enviarán trabajos personales o grupales para el desarrollo de actividades
complementarias a las clases, los talleres serán prácticas individuales, y grupos de trabajo tanto
en clase como externos no serán de más de tres participantes.
 Los trabajos se recogerán la primera sesión de cada semana, y deberán ser subidos al Atrium en
la sesión TAREAS, no se aceptan trabajos realizados a mano, los trabajos obligatoriamente
deberán ser desarrollados en computadora, por lo cual los alumnos deben manejar las
herramientas ofimáticas.
 Los trabajos de investigación, serán entregados de acuerdo a las normas señaladas en el Aula
Virtual. La redacción de los documentos, en cuanto a formato, letra, citas y la bibliografía, se
realizará según
las NORMAS APA.
 Los trabajos enviados deberán ser presentados con una introducción, desarrollo, conclusiones y
bibliografía, con la carátula determinada por universidad y ser ingresados desde el atrium en la
opción de tareas.
6. CONTENIDO PROGRAMÁTICO
UNIDAD 1: INTRODUCCIÓN A LA PROGRAMACIÓN EN C++
1.1. Lenguajes máquina, lenguajes ensambladores y lenguajes de alto nivel
1.2. Historia de C y C++
1.3. Biblioteca estándar de C++
1.4. Tendencia clave de software: la tecnología de los objetos
1.5. Entorno de desarrollo típico en C++
UNIDAD 2: INTRODUCCIÓN A LAS CLASES Y LOS OBJETOS
2.1. Introducción
2.2. Clases, objetos, funciones miembro y miembros de datos
2.3. Definición de una clase con una función miembro
2.4. Definición de una función miembro con un parámetro
2.5. Miembros de datos, funciones establecer y funciones obtener
2.6. Inicialización de objetos mediante constructores
2.7. Colocar una clase en un archivo separado para fines de reutilización
2.8. Separar la interfaz de la implementación
2.9. Validación de datos mediante funciones establecer
UNIDAD 3: INSTRUCCIONES DE CONTROL
3.1. Introducción
3.2. Algoritmos y Pseudocódigo
3.3. Estructuras de control
3.4. Instrucción de selección if
3.5. Instrucción de selección doble if...else
3.6. Instrucción de repetición while
3.7. Cómo formular algoritmos: repetición controlada por un contador
3.8. Cómo formular algoritmos: repetición controlada por un centinela
3.9. Cómo formular algoritmos: instrucciones de control anidadas
3.10.
Operadores de asignación
3.11.
Operadores de incremento y decremento
3/8
3.12.
3.13.
3.14.
3.15.
3.16.
3.17.
Fundamentos de la repetición controlada por contador
Instrucción de repetición for
Instrucción de repetición do...while
Instrucción de selección múltiple switch
Instrucciones break y continue
Operadores lógicos
UNIDAD 4: FUNCIONES Y RECURSIVIDAD
4.1. Introducción
4.2. Componentes de los programas en C++
4.3. Funciones matemáticas de la biblioteca
4.4. Definiciones de funciones con varios parámetros
4.5. Prototipos de funciones y sus argumentos
4.6. Archivos de encabezado de la Biblioteca estándar de C++
4.7. Clases de almacenamiento
4.8. Reglas de alcance
4.9. La pila de llamadas a funciones y los registros de activación
4.10.
Funciones con listas de parámetros vacías
4.11.
Funciones en línea
4.12.
Referencias y parámetros de referencias
4.13.
Argumentos predeterminados
4.14.
Operador de resolución de ámbito unario
4.15.
Sobrecarga de funciones
4.16.
Plantillas de funciones
4.17.
Recursividad
4.18.
Comparación entre recursividad e iteración
UNIDAD 5: ARREGLOS Y VECTORES
5.1. Introducción
5.2. Arreglos
5.3. Declaración y creación de arreglos
5.3.1. Declaración de un arreglo y uso de un ciclo para inicializar los elementos del arreglo
5.3.2. Inicialización de un arreglo en una declaración mediante una lista inicializadora
5.3.3. Especificación del tamaño de un arreglo con una variable constante
5.4. Establecimiento de los elementos de un arreglo con cálculos
5.4.1. Suma de los elementos de un arreglo
5.4.2. Uso de gráficos de barra para mostrar los datos de un arreglo en forma gráfica
5.4.3. Uso de los elementos de un arreglo como contadores
5.4.4. Uso de arreglos para sintetizar los resultados de una encuesta
5.4.5. Uso de arreglos tipo carácter para almacenar y manipular cadenas
5.4.6. Arreglos locales estáticos y arreglos locales automáticos
5.5. Paso de arreglos a funciones
5.6. Búsqueda de datos en arreglos mediante la búsqueda lineal
5.7. Ordenamiento de arreglos mediante el ordenamiento por inserción
5.8. Arreglos multidimensionales
5.9. Introducción a la plantilla de clase vector de la Biblioteca estándar de C++
UNIDAD 6: APUNTADORES Y CADENAS BASADAS EN APUNTADORES
6.1. Introducción
6.2. Declaraciones e inicialización de variables apuntadores
6.3. Operadores de apuntadores
6.4. Paso de argumentos a funciones por referencia mediante apuntadores
6.5. Uso de const con apuntadores
4/8
6.6. Ordenamiento por selección mediante el uso del paso por referencia
6.7. Operador sizeof
6.8. Expresiones y aritmética de apuntadores
6.9. Relación entre apuntadores y arreglos
6.10.
Arreglos de apuntadores
6.11.
Apuntadores a funciones
6.12.
Introducción al procesamiento de cadenas basadas en apuntador
UNIDAD 7: DISEÑO E IMPLEMENTACIÓN DE CLASES
7.1. Introducción
7.2. Alcance de las clases y acceso a los miembros de una clase
7.3. Separar la interfaz de la implementación
7.4. Funciones de acceso y funciones utilitarias
7.5. Destructores
7.6. Cuándo se hacen llamadas a los constructores y destructores
7.7. Ejemplo práctico con la clase Tiempo: una trampa sutil (devolver una referencia a un
miembro de datos private)
7.8. Asignación predeterminada a nivel de miembros
7.9. Objetos const (constantes) y funciones miembro const
7.10.
Composición: objetos como miembros de clases
7.11.
Funciones friend y clases friend
7.12.
Uso del apuntador this
7.13.
Administración dinámica de memoria con los operadores new y delete
7.14.
Miembros de clase static
7.15.
Abstracción de datos y ocultamiento de información
7.16.
Clases contenedoras e iteradores
7.17.
Clases proxy
UNIDAD 8: SOBRECARGA DE OPERADORES: OBJETOS STRING Y ARRAY
8.1. Introducción
8.2. Fundamentos de la sobrecarga de operadores
8.3. Restricciones acerca de la sobrecarga de operadores
8.4. Las funciones de operadores como clase miembro vs. funciones globales
8.5. Sobrecarga de los operadores de inserción de f lujo y extracción de f lujo
8.6. Sobrecarga de operadores unarios
8.7. Sobrecarga de operadores binarios
8.8. Conversión entre tipos
8.9. Sobrecarga de ++ y – –
8.10.
La clase string de la Biblioteca estándar
8.11.
Constructores explicit
UNIDAD 9: PROGRAMACIÓN ORIENTADA A OBJETOS: HERENCIA
9.1. Introducción
9.2. Clases base y clases derivadas
9.3. Miembros protected
9.4. Relación entre las clases base y las clases derivadas
9.4.1. Creación y uso de clases
9.4.2. Creación de una jerarquía de herencia entre clases
9.4.3. La jerarquía de herencia mediante el uso de datos protected
9.4.4. La jerarquía de herencia mediante el uso de datos private
9.5. Los constructores y destructores en las clases derivadas
9.6. Herencia public, protected y private
5/8
UNIDAD 10: PROGRAMACIÓN ORIENTADA A OBJETOS: POLIMORFISMO
10.1.
Introducción
10.2.
Tipos de polimorfismo
10.3.
Relaciones entre los objetos en una jerarquía de herencia
10.3.1. Invocación de funciones de la clase base desde objetos de una clase derivada
10.3.2. Cómo orientar los apuntadores de una clase derivada a objetos de la clase base
10.3.3. Llamadas a funciones miembro de una clase derivada a través de apuntadores de la
clase base
10.3.4. Funciones virtuales
10.4.
Tipos de campos e instrucciones switch
10.5.
Clases abstractas y funciones virtual puras
10.6.
Destructores virtuales
UNIDAD 11: ENTRADA Y SALIDA DE FLUJOS
11.1.
Introducción
11.2.
Flujos
11.2.1. Comparación entre flujos clásicos y flujos estándar
11.2.2. Archivos de encabezado de la biblioteca iostream
11.2.3. Clases y objetos de entrada/salida de flujos
11.3.
Salida de flujos
11.3.1. Salida de variables char *
11.3.2. Salida de caracteres mediante la función miembro put
11.4.
Entrada de flujos
11.4.1. Funciones miembro get y getline
11.4.2. Funciones miembro peek, putback e ignore de istream
11.4.3. E/S con seguridad de tipos
11.5.
E/S sin formato mediante el uso de read, write y gcount
11.6.
Introducción a los manipuladores de flujos
11.6.1. Base de flujos integrales: dec, oct, hex y setbase
11.6.2. Precisión de punto flotante (precision, setprecision)
11.6.3. Anchura de campos (width, setw)
11.6.4. Manipuladores de flujos de salida definidos por el usuario
11.7.
Estados de formato de flujos y manipuladores de flujos
11.7.1. Ceros a la derecha y puntos decimales (showpoint)
11.7.2. Justificación (left, right e internal)
11.7.3. Relleno de caracteres (fill, setfill)
11.7.4. Base de flujos integrales (dec, oct, hex, showbase)
11.7.5. Números de punto flotante: notación científica y fi ja (scientific, fixed)
11.7.6. Control de mayúsculas/minúsculas (uppercase)
11.7.7. Especificación de formato booleano (boolalpha)
11.7.8. Establecer y restablecer el estado de formato mediante la función miembro flags
11.8.
Estados de error de los flujos
11.9.
Enlazar un flujo de salida a un flujo de entrada
UNIDAD 12: LA CLASE STRING Y EL PROCESAMIENTO DE FLUJOS DE CADENA
12.1.
12.2.
12.3.
12.4.
12.5.
12.6.
Introducción
Asignación y concatenación de objetos string
Comparación de objetos string
Subcadenas
Intercambio de objetos string
Características de los objetos string
6/8
12.7.
12.8.
12.9.
12.10.
12.11.
12.12.
Búsqueda de subcadenas y caracteres en un objeto string
Reemplazo de caracteres en un objeto string
Inserción de caracteres en un objeto string
Conversión a cadenas estilo C
Iteradores
Procesamiento de flujos de cadena
UNIDAD 13: BÚSQUEDA Y ORDENAMIENTO
13.1.
Introducción
13.2.
Algoritmos de búsqueda
13.2.1. Eficiencia de la búsqueda lineal
13.2.2. Búsqueda binaria
13.3.
Algoritmos de ordenamiento
13.3.1. Eficiencia del ordenamiento por selección
13.3.2. Eficiencia del ordenamiento por inserción
13.3.3. Ordenamiento por combinación (una implementación recursiva)
UNIDAD 14: CREACIÓN DE APLICACIONES DE ESCRITORIO
14.1.
14.2.
14.3.
14.4.
14.5.
14.6.
14.7.
14.8.
14.9.
14.10.
Aplicaciones de consola
Aplicaciones graficas basadas en cuadros de dialogo
Editores de texto
Trabajo con recursos
Iconos
Menú
Barras de herramientas
Componentes de entrada y salida de información
Trabajo con gráficos
Técnicas de animación
7. EVALUACIÒN
Criterio para la calificación de los trabajos:
 La presentación de deberes y trabajos tiene carácter obligatorio, en caso de incumplimiento se
impondrán sanciones en la nota de actividades.
 Los trabajos de investigación se calificarán sobre un total de 30 puntos desglosado de la
siguiente manera:
o Talleres y Análisis de Casos 10 puntos
o Investigaciones y Deberes 10 puntos
o Exposiciones/recursos utilizados 10 puntos
 La nota mínima para aprobar el curso es 70.
 Los exámenes se rendirán en la fecha previamente establecida por el Decanato de la Facultad, y
no se aceptará a ningún estudiante postergación ni anticipación de dicha evaluación, sin una
justificación de fuerza mayor previamente aprobada por la Comisión Académica de la Facultad.
En éste caso únicamente se aprobará la toma del examen supletorio.
 Se regirá por el Reglamento de la Universidad
CALIFICACION
ACTIVIDADES
PRIMER EXAMEN
SEGUNDO EXAMEN
EXAMEN FINAL
NOTA FINAL
30
15
15
40
100
7/8
SE TENDRA EN CUENTA EN EL PROCESO DE EVALUACION LA APLICACIÓN DE LA
AUTOEVALUACION, COEVALUACION Y HETEROEVALUACION
8. BIBLIOGRAFÍA BÁSICA
TEXTO
AUTOR
EDITORIAL
C++ Como programar
Paul. J. Deitel y Harvey.M.
Deitel
Pearson Prentice Hall,
Sexta Edición 2009
Visual C++.NET
John Mueller
Anaya, 2002
9. BIBLIOGRAFÍA COMPLEMENTARIA
TEXTO
AUTOR
ASP.NET and VB.NET Web Programming
Revisado por:
Aprobado
por:
Matt J. Crouch
Dr. C. Oiner Gómez
DECANO DE LA FACULTAD
EDITORIAL
McGraw-Hill, 2002
Fecha: 28/10/2014
Gilda Alcívar, MSc.
Vicerrectora Académica
8/8
Descargar