MATERIA:Introducción a Ciencias de la Computación I

CLAVE:COMP-220

SEMESTRE DE UBICACION:Segundo

AREA:Ciencias de la Computación


OBJETIVOS: Este curso introduce la metodología de diseño de software utilizando para ello un lenguaje moderno de programación. Se introduce a los estudiantes al proceso de diseño e implementación de un programa que resuelva un problema algorítmico. Se cubren tipos de datos y se introducen algunos métodos de búsqueda y ordenamiento para motivar los aspectos metodológicos. Se cubren estructuras de control, tipos de datos y abstracción de procedimientos. El curso introduce también la historia y el impacto social de la computación y la naturaleza de la propiedad intelectual

TEMARIO:

  1. Conceptos fundamentales en métodos para la solución de problemas

    • Abstracción de procedimientos; parámetros

    • Estructuras de control: selecci6n, iteración, recursividad

    • Tipos de datos (i.e. números, cadenas, booleanos) y sus usos en la solución de problemas

    • El proceso de diseño de programas; desde la especificación hasta la instrumentación; refinamientos sucesivos; representación gráfica

  2. Introducción a un lenguaje de programación

    • Declaración de tipos básicos

    • Operadores aritméticos y de asignación

    • Enunciados condicionales

    • 4 Iteraciones y recursividad

    • S Procedimientos, funciones y parámetros

    • Arreglos y registros

    • Estructura general de un programa

  3. Representación de datos a nivel de la máquina

    • Representación de datos numéricos, esto es binario, octal, hexadecimal, punto fijo, complemento a 1 y a 2, con signo, punto flotante, decimal, BCD, XS3

  4. Representación de tipos de datos

    • Selección y representación de tipos de datos elementales: enteros, reales, booleanos, carácter

    • Especificación y representación de tipos de datos estructurados: arreglos, registros, conjuntos

  5. Algoritmos recursivos

    • Introducción a algoritmos recursivos

    • Conexión con la inducción matemática

    • Comparación entre algoritmos recursivos e iterativos

  6. Búsquedas y Ordenamientos lineales

    • Algoritmos de ordenamiento de selección e inserción en arreglos y a través de apuntadores, con asignación dinámica de memoria; complejidad en el tiempo y el espacio; mejor y peor casos

    • Búsqueda lineal, búsqueda binaria y árboles binarios de búsqueda; complejidad en el tiempo y el espacio; mejor y peor casos

  7. Contexto histórico y social de la computación

    • Contexto social e histórico de la computación

    • Definición de su área de estudio y actividades profesionales

    • Uso, mal uso y límites de la tecnología computacional

    • Responsabilidades sociales (seguridad y privacía)

    • Tipos de riesgos: errores latentes, seguridad, privacía, mal uso, etc

BIBLIOGRAFIA:

  • Tucker, A.B.;Bernat, A.;Bradley, W.J.; Cupper, R.D.,Fundamentals Of Computing, I: Logic, Problem Solving, PrOgrams and Computers, Second Edition, McGraw-Hill 1994

  • Warfords, S.J., Computer Science, D.C. Heath and company, 199l

BIBLIOGRAFIA COMPLEMENTARIA:

  • Ledgard H. with Tauer J., Professional Software, Addison-Wesley Pubiishing Colnpany, 1987

  • Ledgard H. with Tauer J., Professional Software, Programming Pracdce, VoL II, Addison-Wesley Publishing Company, 1987

  • Naur, P., A Human Activity, ACM Press, Addison-Wesley Publishing Company, 1992

  • Salmon, W. l., Structures And Abstractions, An Introductíon to Computer Science with Pascal, Richard D. lrwin, Inc., 1991

  • Wamier, J. D., Logical Construction Of Systems, Ván Nostrand Reinhold Company, 1981

  • Loren, H., Introduction To Computer Architecture And Organization, 2nd. Edition, John Wiley & Sons, inc., 1989