FACULTAD
DE INGENIERIA
DEPARTAMENTO DE INGENIERIA INFORMATICA
Y CIENCIAS DE LA
COMPUTACION
I IDENTIFICACION
ASIGNATURA:
FUNDAMENTOS DE
PROGRAMACION
|
CODIGO
XXXXXX
|
CREDITOS
4 |
HRS. TRAB. ACAD.
12 |
CARRERA:
INGENIERIA CIVIL
INFORMATICA
|
AÑO DE
APLICACIÓN
2004
|
FECHA ACTUALIZACION
-----
|
NIVEL/SEMESTRE
3
|
PRE-REQUISITOS:
NO TIENE
|
OBLIG.
X |
ELECT.
------
|
COMP.
-----
|
PRESENCIAL
X |
SEMIPRESENCIAL |
CO-REQUISITOS:
NO TIENE
|
TEOR.
3 |
PRAC.
---- |
LAB.
2 |
SEMESTRAL
X |
ANUAL
---- |
II DESCRIPCION
Asignatura
teórico-práctica que entrega las bases sobre las cuales se
fundamenta el uso avanzado de los computadores como herramientas de
solución de problemas complejos.
III OBJETIVOS
Objetivo general
Habilitar al alumno,
al nivel requerido en la especialidad, en el uso de los lenguajes de
programación, como medio de expresión de la
resolución de problemas complejos y herramienta básica
indispensable para la generación de productos de software.
Objetivos
específicos
Al finalizar la
asignatura el alumno será capaz de:
- Manejar los
conceptos fundamentales utilizados para la resolución de
problemas mediante el uso del computador.
- Identificar
y aplicar procedimientos para la resolución de problemas mediante
el uso de lenguajes de programación.
- Utilizar el
lenguaje de programación definido en acuerdo a la realidad
tecnológica actual.
- Adoptar
fácilmente otros lenguajes de programación al quedar
capacitados para identificar las similitudes y diferencias, las ventajas
y desventajas que los hacen idóneos en cada situación.
IV CONTENIDOS
1.- Introducción. El computador y su
organización general
1.1.-
Procesador
1.2.-
Dispositivos de E/S
1.3.-
Memoria Principal
1.4.-
Memoria Secundaria
2.- Sintaxis y
semántica básica de un lenguaje de programación
de alto nivel
2.1.- Variables, tipos, expresiones y asignación.
2.2.- E/S simple
2.3.- Estructuras de control condicionales e iterativas.
2.4.- Funciones y pasaje de parámetros
2.5.- Descomposición estructurada
3.- Algoritmos y
resolución de problemas
3.1.- Estrategias de resolución de problemas.
3.2.- El rol del algoritmo en el proceso de resolución de
problemas
3.3.- Estrategias de implementación de algoritmos
3.4.- Estrategias de depuración
3.5.- Concepto y propiedades del algoritmo.
4.- Estructuras
de datos fundamentales.
4.1.- Tipos primitivos.
4.2.- Arreglos.
4.3.- Estructuras o registros.
4.4.- Strings y procesamiento de strings
4.5.- Representación de datos en memoria.
4.6.- Asignación estática, pila y heap.
4.7.- Administración de almacenamiento en tiempo de
ejecución
4.8.- Punteros y referencias.
4.9.- Estructuras encadenadas.
5.-
Programación orientada al objeto.
5.1.- Diseño orientado al objeto.
5.2.- Encapsulamiento y ocultación de información.
5.3.- Separación de comportamiento e implementación.
5.4.- Clases, subclases y herencia.
5.5.- Polimorfismo.
5.6.- Jerarquía de clases.
5.7.- Protocolos de interacción.
6.- Recursividad
6.1.- Concepto de recursividad.
6.2.- Funciones matemáticas recursivas.
6.3.- Procedimientos recursivos simples.
6.4.- Estrategia de dividir y conquistar.
6.5.- Backtracking recursivo.
6.6.- Implementación de la recursividad.
7.-
Orientación al evento y programación concurrente.
7.1.- Métodos de manejo de eventos.
7.2.- Propagación de eventos.
7.3.- Administración de concurrencia en manejo de eventos.
7.4.- Administración de excepciones.
7.5.- Eventos de mouse y sistema gráfico.
8.- Uso de las
API.
V METODOLOGIA
DE TRABAJO
La metodología teórico práctica se
realizará mediante los siguientes tipos de clases:
- Clases
teóricas y demostrativas: mediante un sistema de
proyección central, el profesor entrega los conceptos, las
definiciones y contenidos de la asignatura y las ideas de cómo
asociar los elementos teóricos a los prácticos realizando
programas demostrativos en la sala.
- Las clases
prácticas: los alumnos trabajan en el laboratorio directamente
con el computador resolviendo problemas para familiarizarse con el
proceso de realización de software.
VI EVALUACION
Incluye pruebas obligatorias, que
miden aspectos teóricos, adaptadas a las normas de
evaluación vigente. La medición de las habilidades
prácticas se divide en tareas grupales y en pruebas individuales
frente al computador. La evaluación frente al computador se debe
realizar para garantizar que el alumno ha logrado las habilidades.
VII BIBLIOGRAFIA
- Deitel,
H.M., Deitel, P.J. Cómo Programar en C/ C++. Prentice Hal
1995.
- Kernighan,
B. El Lenguaje de Programación C+. Prentice-Hall
Iberoamericana 1991.
- Bernd Bruegge, Allen H. Dutoit
Ingeniería de software orientado a objetos. México :
Prentice Hall, 2000.
- Ravi Seit. Lenguajes de
Programación, Conceptos y Constructores.. Addison-Wesley. 1989.
- Savitch, Walter. Resolución de problemas
con C++, el objetivo de la programación. Prentice may, segunda
edición 1999.