930 likes | 1.19k Views
1. Introducción a las Ciencias de Computadoras. Algoritmos y Desarrollo de Programas I. Objetivos. Cuando finalice esta lección, el estudiante: Podrá definir lo que es Ciencias de Computadoras. Sabrá lo que es un algoritmo y cómo se relaciona con los programas de computadoras.
E N D
1. Introducción a las Ciencias de Computadoras Algoritmos y Desarrollo de Programas I
Objetivos • Cuando finalice esta lección, el estudiante: • Podrá definir lo que es Ciencias de Computadoras. • Sabrá lo que es un algoritmo y cómo se relaciona con los programas de computadoras. • Distinguirá los componentes de un sistema de computadoras: el hardware y el software.
Objetivos (cont.) • Cuando finalice esta lección, el estudiante: • Identificará los dispositivos principales de hardware. • Distinguirá los tipos principales de software • Podrá indicar cómo se utiliza el sistema binario para representar números y caracteres en la memoria de la computadora
Objetivos (cont.) • Cuando finalice esta lección, el estudiante: • Sabrá lo que es un lenguaje de programación. • Sabrá lo que es el Ciclo de Vida del Desarrollo de un Programa y cuáles son sus etapas. • Conocerá cuáles son las principales herramientas en el desarrollo de programas
¿Qué piensa usted que es Ciencias de Computadoras? • Ciencias de computadoras… • No es usar programas • …todo el mundo debería saber usar programas • No es reparar computadoras • …esto lo hace un Técnico en Electrónica • No es diseñar computadoras • …esto lo hace un Ingeniero de Computadoras
Una cita interesante… • Computer Science is no more about computers than Astronomy is about telescopes. ~ Edsger W. Dijkstra • Esta cita la pronunció uno de los padres de las Ciencias de Computadoras. • Si Ciencias de Computadoras no es el estudio de las computadoras, ¿qué es entonces?
¿Qué estudia las Ciencias de Computadoras? • Las Ciencias de Computadoras es el estudio de los algoritmos. • Un algoritmo es un procedimiento detallado para resolver un problema. • Un programa es un algoritmo implementado con un lenguaje de programación. • Por lo tanto, los científicos de computadoras somos solucionadores de problemas.
¿Qué estudia las Ciencias de Computadoras? (cont.) • Los científicos de computadoras: • Analizan los requisitos de un problema. • Diseñan el algoritmo más adecuado. • Implementan el algoritmo escribiendo un programa. • Ejecutan el programa en una computadora.
¿Qué estudia las Ciencias de Computadoras? (cont.) • Ciencias de computadoras… • Utiliza las matemáticas y la lógica • …para analizar la eficiencia de los algoritmos • Utiliza el método científico y conceptos de ingeniería • …para diseñar algoritmos y programas de forma organizada • Utiliza destrezas de comunicación escrita y oral • …para comunicarse con sus colegas y con el público • Es interdisciplinaria • …ya que uno tiene que aprender a resolver problemas de diversos tipos
Programación de computadoras • Es una parte importante de la Ciencia de Computadoras, ya que el fin primordial del diseño de un algoritmo es que éste pueda ser programado y ejecutado en una computadora. • Los programadores crean los programas que hacen de la computadora una herramienta útil en todas las profesiones.
La programación como arte y ciencia • Para programar hay que ser creativo. • La programación es un arte porque cada pequeño detalle de un programa tiene que ser diseñado con mucho cuidado. • Dos programas pueden implementar el mismo algoritmo y ser completamente diferentes gracias a la creatividad de su autor.
La programación como arte y ciencia (cont.) • La programación es una ciencia porque requiere análisis, experimentación y disciplina. • Para programar hay que aprender lenguajes diferentes con reglas. • Se usa la teoría matemática para determinar la eficiencia de un programa.
¿Qué es una computadora? • Una computadora es una máquina que manipula datos de distintos tipos de acuerdo a un conjunto de instrucciones. • Estos datos pueden ser: • Números • Símbolos • Imágenes • Sonidos • etc.
¿Qué es una computadora? (cont.) • Una computadora puede … • Obtener datos. • Informar resultados. • Llevar a cabo cómputos matemáticos y otros procesos. • Almacenar y recuperar datos rápidamente. • Repetir procesos un sinnúmero de veces sin cansarse ni equivocarse.
Sistemas de computadoras • Los sistemas de computadoras consisten de: • Hardware – los componentes físicos de la máquina (monitor, teclado, etc.) • Software – las instrucciones que se ejecutan, organizadas en programas
El hardware • El hardware consiste de los componentes físicos de la computadora, tales como el monitor, teclado, impresora, CPU, etc. • La gran mayoría de las computadoras siguen el modelo de Von Neumann (1945).
El hardware (cont.) • En el modelo de Von Neumann, las computadores se componen de: • Dispositivos de entrada • Dispositivos de salida • Memoria o almacenamiento principal • Memoria o almacenamiento secundario • Unidad central de procesamiento (CPU)
Main Memory CPU El hardware (cont.) Input Devices Output Devices Secondary Storage Devices
El hardware: los dispositivos de entrada • Los dispositivos de entrada (input devices) permiten que la computadora reciba datos del mundo exterior. • Teclado • Ratón • Rastreador (scanner) • Cámara digital • Micrófono
El hardware: los dispositivos de salida • Los dispositivos de salida (output devices) permiten que la computadora comunique información al mundo exterior. • Pantalla • Impresora • Bocinas
El hardware: la memoria principal • La memoria principal (main memory) está conectada al CPU y almacena los datos e instrucciones entradas. • Hay dos tipos de memoria principal: • RAM (Random-Access Memory o memoria de acceso aleatorio) • ROM (Read-Only Memory o memoria solamente para leer)
El hardware: la memoria principal (cont.) • RAM es un tipo de memoria rápida y barata en la cual se puede escribir y leer. • RAM se divide en secciones del mismo tamaño que se pueden acceder en cualquier orden. • El problema con RAM es que es volátil, o sea, se borra cuando la computadora se apaga.
El hardware: la memoria principal (cont.) • Cada sección de memoria posee una dirección y almacena un byte. • Un byte es un grupo de 8 bits. • Un bit es un dígito binario (0 ó 1).
El hardware: la memoria principal (cont.) • En un byte puede haber una porción de un dato o de una instrucción. • No es raro que una computadora moderna tenga varios gigabytes (billones de bytes) de RAM.
2000 2001 2002 2003 2004 2005 2006 2007 El hardware: la memoria principal (cont.) Direcciones de memoria Cada sección de memoria almacena un byte. Un byte es un grupo de 8 bits. 10101010 A una sección de 2 bytes se le llama un word.
El hardware: la memoria principal (cont.) • ROM es también una memoria principal y es tan rápida como RAM pero es más cara y no se puede escribir en ella, sólo leer. • Los datos e instrucciones en ROM son colocados por el manufacturero de la computadora. • ROM no es volátil y su tamaño suele ser de solamente varios kilobytes (miles de bytes).
El hardware: la memoria principal (cont.) • ROM contiene los programas que le permiten a la computadora llevar a cabo el POST (Power-On Self-Test y cargar el sistema operativo). • Algunos tipos de ROM pueden ser alterados pero el procedimiento es lento y no es frecuente.
El hardware: la memoria secundaria • Cuando hablemos de memoria principal nos referiremos a RAM. • Además de la memoria principal, las computadoras tienen dispositivos de memoria o almacenamiento secundario (secondary storage).
El hardware: la memoria secundaria (cont.) • Los dispositivos de almacenamiento secundario son mucho más lentos que RAM pero también mucho más baratos. • Disco duro • USB flash drives • CD y DVD • Estos dispositivos no son volátiles y se puede leer y escribir en ellos. • Su capacidad se mide en megabytes (millones de bytes), gigabytes (billones de bytes) y terabytes (trillones de bytes).
El hardware: la unidad central de procesamiento • El componente más importante de una computadora es la unidad central de procesamiento. • También se conoce como CPU (Central Processing Unit). • Su trabajo es buscar las instrucciones y datos de la memoria principal, ejecutar las instrucciones y producir resultados que se devuelven a la memoria principal.
El hardware: la unidad central de procesamiento (cont.) • El CPU consiste de tres componentes principales: • Unidad de control – coordina todos los componentes de la computadora. • Unidad de aritmética y lógica – ejecuta las instrucciones llevando a cabo cómputos matemáticos y comparaciones. • Registros – almacenan momentáneamente los datos y la instrucción con la que está trabajando el CPU en un momento dado.
Processor Control Unit Arithmetic Logic Unit (ALU) InstructionsDataInformation InstructionsDataInformation El hardware: la unidad central de procesamiento (cont.) Control Unit Arithmetic Logic Unit (ALU) Memory InputDevices OutputDevices Data Information StorageDevices
Memory Processor ALU Control Unit El hardware: la unidad central de procesamiento (cont.) Step 1. FetchObtain program instruction or data item from memory Step 2. DecodeTranslate instruction into commands Step 4. StoreWrite result to memory Step 3. ExecuteCarry out command
El software • El software consiste del conjunto de programas que una computadora ejecuta. • Hay tres categorías generales de software: • Sistema Operativo • Programas de Aplicaciones • Herramientas de Programación
El software: el sistema operativo • El sistema operativo es el conjunto de programas que administra los dispositivos de hardware y controla los procesos que se llevan a cabo en la computadora. • Algunos ejemplos: • Windows • Mac OS X • UNIX, Linux • Android
El software: las aplicaciones • Las aplicaciones son los programas que hacen que la computadora sea útil para los usuarios. • Algunos ejemplos: • Procesadores de palabra (Word) • Hojas de cálculo (Excel) • Programas de presentaciones (PowerPoint) • Manejadores de bases de datos (Access)
El software: las herramientas de programación • Las herramientas de programación le permiten a las personas construir, ejecutar y evaluar programas de computadoras. • Editores de texto – para escribir el programa • Compiladores o interpretadores – para traducir el programa a lenguaje de máquina (binario) • Depuradores – para evaluar y encontrar errores en el programa • Es común que estas herramientas se combinen en un ambiente de desarrollo integrado (IDE).
Desarrollo histórico de las computadoras • Los científicos de computadoras debemos estar familiarizados con los eventos más importantes en el desarrollo de éstas. • A continuación se muestran algunos momentos importantes en el desarrollo de máquinas programables.
Desarrollo histórico de las computadoras (cont.) • En 1801 Joseph Jacquard inventó una máquina de tejer que creaba patrones dejándose llevar por instrucciones en una tarjeta perforada.
Desarrollo histórico de las computadoras (cont.) • En los 1830s Charles Babbage diseñó unas máquinas (difference and analytical engines) que podían realizar cálculos matemáticos rápidamente usando un sistema de tarjetas parecido al de Jacquard. • Ada Lovelace diseñó programas para el analytical engine.
Desarrollo histórico de las computadoras (cont.) • En 1889 Herman Hollerith construyó una máquina que usaba tarjetas perforadas para tabular el censo de EE.UU. de 1890.
Desarrollo histórico de las computadoras (cont.) • A fines de los 1930s Howard Aiken construyó la Mark I que usaba transmisores eléctricos. • La Universidad de Harvard la usaba para realizar cálculos complejos.
Desarrollo histórico de las computadoras (cont.) • La sucesora de la Mark I, la Mark II, es famosa por contener el primer bug (error) en un programa. • Lo encontró un ayudante de la programadora Grace Hopper.
Desarrollo histórico de las computadoras (cont.) • En los 1940s John Mauchly y J. Presper Eckert desarrollaron la primera computadora digital electrónica llamada ENIAC. • Usaba tubos al vacío.
Desarrollo histórico de las computadoras (cont.) • La Mark I y la ENIAC se programaban conectando físicamente cables eléctricos en un orden determinado anteriormente. Programadoras de la ENIAC
Desarrollo histórico de las computadoras (cont.) • La Mark I y la ENIAC no seguían el modelo de Von Neumann. • Además de describir los componentes de las computadoras, este modelo sugería que la memoria almacenara tanto los datos como las instrucciones (concepto del programa almacenado).
Desarrollo histórico de las computadoras (cont.) • A partir de los 1950s, las compañías de computadoras reemplazaron los tubos al vacío por los transistores que son mucho más confiables y eficientes.
Desarrollo histórico de las computadoras (cont.) • Los transistores han continuado achicándose y se agrupan en circuitos integrados. • Los circuitos integrados se colocan en piezas pequeñas llamadas chips o microchips.