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:

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:

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