PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas escritos en el lenguaje C/C++, usando la metodología de la programación estructurada, y con los principios y elementos de la programación orientada a eventos y objetos, bajo los sistemas operativos Windows y Linux. OBJETIVO GENERAL: Al término del curso, el alumno aplicará las estructuras de control de un lenguaje de programación estructurado y resolverá problemas específicos a través de programas estructurados por computadora. UNIDADES 1 INTRODUCCIÓN. (4 horas) Objetivo: conocer la historia de los lenguajes de computación y los antecedentes de los lenguajes estructurados, así como la diferencia entre intérpretes y compiladores. 1.1.- Lenguaje binario. 1.2.- Fortrán. 1.3.- Cobol. 1.4.- Basic. 1.5.- Pascal. 1.6.- C / C++. 1.7.- Otros lenguajes. 1.8.- Niveles de los lenguajes. 1.9.- Intérpretes y compiladores. 1.10. Lenguajes visuales. 2 TIPOS DE DATOS. (4 horas) Objetivos: conocer los diferentes tipos de datos que usa C, sus rangos de operación, declaración de instancias, y las operaciones aritméticas básicas que se les puede aplicar. 2.1.- Enteros. 2.2.- Reales. 2.3.- Declaración de variables. 2.4.- Asignación de valores. 2.5.- Declaración de constantes. 2.6.- Operadores aritméticos. 2.7.- Operadores unarios.
3 PROPOSICIONES DE ENTRADA/SALIDA. (3 horas) Objetivos: conocer y aplicar las funciones de entrada y salida del lenguaje C, y los diferentes especificadores de conversión de tipos de datos. 3.1.- La función printf. 3.2.- Secuencias de escape. 3.3.- Especificadores de conversión. 3.4.- La función scanf. 3.5.- Delimitadores de longitud. 3.6.- Flujos de datos. 4 PROPOSICIONES DE CONTROL DE FLUJO DEL PROGRAMA (6 horas) Objetivos: conocer y aplicar los enunciados del lenguaje C que permiten la bifurcación e iteración de las instrucciones en el programa, y las diferencias relacionadas con su uso. 4.1.- Los operadores relacionales. 4.2.- Los operadores lógicos. 4.3.- El enunciado if / else. 4.4.- El enunciado switch. 4.1.- El enunciado for. 4.2.- El enunciado while. 4.3.- El enunciado do..while. 4.4.- Usos de break y continue. 5 IMPLEMENTACIÓN DE FUNCIONES. (5 horas) Objetivos: al finalizar la unidad el alumno aplicará los conceptos de dividir un programa en módulos, las formas de llamarlos, así como los diferentes métodos de pase de parámetros hacia ellos. 5.1.- Definición de una función. 5.2.- Declaración de prototipos. 5.3.- Llamado a funciones. 5.4.- Pase de parámetros por valor y por referencia. 5.5.- Recursividad. 6 APUNTADORES. (6 horas) Objetivos: al final de la unidad el alumno aplicará los conceptos vistos para declarar y usar variables de tipo apuntador, y usará la transformación de valores a través de referencias indirectas a las variables. 6.1.- Introducción a los apuntadores. 6.2.- Tipos de apuntadores. 6.3.- Declaración e inicialización de apuntadores. 6.4.- Desreferencias. 6.5.- Apuntadores a apuntadores.
7 ARREGLOS (8 horas) Objetivos: al finalizar la unidad el alumno será capaz de usar las declaraciones múltiples de las mismas instancias en un programa, e identificar los tipos de aplicaciones que requieran de su uso. 7.1.- Introducción a los arreglos. 7.2.- Declaración e inicialización. 7.3.- Asignación de valores. 7.4.- Ordenamientos. 7.5.- Métodos de búsqueda. 7.6.- Matrices. 7.7.- Operaciones con matrices. 7.8.- Arreglos dinámicos. 7.9.- Apuntadores a arreglos. 7.10.- Aplicaciones. 8 CADENAS. (5 horas) Objetivo: al finalizar la unidad el alumno aplicará los conceptos de declaración de variables de tipo cadena y la forma de aplicar las funciones relacionadas con su manejo. 8.1.- Declaración de cadenas. 8.2.- Enunciados de entradas y salidas para cadenas. 8.3.- Manipulación de cadenas. 8.4.- Arreglos de cadenas. 8.5.- Ordenamiento. 9 ESTRUCTURAS Y UNIONES. (8 horas) Objetivo: al finalizar la unidad el alumno aplicará los conceptos de declaración de variables compuestas o estructuras, así como los comandos relacionados con ellas y sus usos en los sistemas. 9.1.- Declaración de estructuras. 9.2.- Declaración de instancias. 9.3.- Inicialización de estructuras. 9.4.- Declaración de estructuras dentro de estructuras. 9.5.- Uniones. 9.6.- Apuntadores a estructuras. 9.7.- Aplicaciones de estructuras. 9.8.- Fundamentos de la programación orientada a objetos. 10 ARCHIVOS. (8 horas) Objetivos: al finalizar la unidad el alumno aplicará las instrucciones de entrada y salida del lenguaje C para almacenar datos en las unidades de disco, así como las diferentes formas de organizar la información para su acceso. 10.1.- El concepto de flujo. 10.2.- Tipos de archivos. 10.3.- Modos de apertura de los archivos. 10.4.- Entradas y salidas con formato. 10.5.- Aplicaciones de los archivos de texto. 10.6.- Entradas y salidas en binario. 10.7.- Accesos aleatorios.
10.8.- Métodos de ordenamientos y búsqueda en archivos binarios. 10.9.- Aplicaciones de los archivos binarios. 11 EL ENTORNO DE PROGRAMACIÓN VISUAL. (9 horas) Objetivo: al finalizar la unidad el alumno aplicará el conocimiento adquirido para elaborar programas bajo los lenguajes visuales, identificando la forma de operación de los controles y su forma de operación, así como la manera de usar bases de datos en estos entornos. 11.1.- Principios de la programación visual. 11.2.- Principios de la programación orientada a eventos. 11.3.- Contenedores de controles. 11.4.- Tipos de controles en la programación visual. 11.5.- Propiedades, eventos y métodos. 11.6.- Definición de tablas. 11.7.- Manejo de índices. 11.8.- Búsquedas. 11.9.- Elaboración de reportes. 11.10.- Generación de discos de instalación. 11.11.- La programación bajo Linux. ESTRATEGIAS DE ENSEÑANZA: Conferencia, interrogatorio, tormenta de ideas, resolución de ejercicios, grupos de discusión, demostración en computadora. RECURSOS DIDÁCTICOS: Exposición, pizarrón, acetatos, equipo de cómputo, páginas web. CRITERIOS DE EVALUACIÓN: 3 exámenes parciales (1.3 horas c/u) 80% Tareas 20% Total 100% ANTECEDENTES ACADÉMICOS: Lenguajes Algorítmicos. NEXOS ACADÉMICOS: Estructuras de Datos. BIBLIOGRAFÍA: Básica: Aprendiendo C en 21 días. Peter Aitken, Bradley Jones. Prentice Hall Hispanoamericana, 1998. Programación en C. Byron Gotfried. McGraw-Hill, 1998. El lenguaje de Programación C. Kernighan B, Ritchie D.M.
Prentice Hall, 1994. Complementaria: Cómo Programar en C/C++. H.M. Deitel, P.J. Deitel Prentice Hall Hispanoamericana, 1997. Programación en C++ para Windows. Anthony Porter. MCGraw-Hill, 1994. Borland C++ Builder. Charles Calvert. Perason/Prentice Hall, 1998. Elaboración: M. en C. Alberto Marín Hernández Fecha de elaboración: Julio, 1998. Fecha de Modificación: Diciembre, 2001. Perfil Profesiográfico: Licenciado en Ciencias de la Computación o carrera afín, o con estudios de Posgrado en Computación.