Historia de la informatica
Primero surgieron los instrumentos aritméticos, como el ábaco, desde los cuales se ha llegado a las calculadoras y ordenadores actuales. La primera herramienta que servía para contar y al mismo tiempo para representar las cantidades contadas fueron los dedos, dando origen al sistema decimal de numeración.
ÁBACO
En épocas muy tempranas el hombre primitivo encontró materiales para idear instrumentos de contar. Es probable que su inicio fuera una superficie plana y piedras que se movían sobre líneas dibujadas con polvo. Se sabe que los Romanos empleaban su ábaco con piedra caliza o mármol, para las cuentas a las que denominaron "calculi"
CALCULADORA
El primero en construir una calculadora, en 1671, fue el filósofo y matemático alemán Gottfried Leibniz (1646-1716). Fue denominada calculadora universal, su elemento característico era un tambor cilíndrico con nueve dientes de longitud variable, llamado rueda escalonada, que se encuentra en prácticamente todas las calculadoras mecánicas posteriores, incluso las del siglo XX. En 1872 el estadounidense Frank Baldwin (1838-1925) construyó una calculadora a la que años más tarde le añadió la denominada rueda Odhner. Esta fue la antecesora de la clásica calculadora de sobremesa, con manecilla lateral, difundida universalmente desde 1910 y que todavía se encuentra en rastros, fabricadas por la empresa Monroe. De ella deriva la popular caja registradora inventada en 1879 por James Ritty
CALCULO MATEMATICO
Una calculadora no es un dispositivo automático, lo cual implica que requiere la acción constante de un operador, que es un obstáculo para la velocidad y fiabilidad de los resultados.
En 1812 el matemático inglés Charles Babbage concibió la denominada máquina de diferencias, un instrumento mecánico para calcular e imprimir tablas de funciones. en 1832 Babbage desarrolló el proyecto de la máquina analítica. Se trataba de un ordenador mecánico de propósito general, preparado para realizar cualquier tipo de cálculo.
LA GENERACION DE ORDENADORES
La necesidad de un ordenador surgió con la Segunda Guerra Mundial, por lo que se construyeron los primeros ordenadores basándose en los trabajos de Babbage y de Torres Quevedo.
La primera persona que construyó una máquina (que todavía no era un ordenador) con esta finalidad fue Herman Hollerit, la cual servía para el procesamiento de datos.
ORDENADORES DE PRIMERA GENERACION
Los primeros ordenadores fueron electromecánicos (en base a relés). El primer ordenador fue desarrollado en 1941; pesaba cinco toneladas y tenía más de 750000 piezas y 800 km de cable. La sustitución de los relés por tubos de vacío dio lugar a la Primera Generación de ordenadores electrónicos. El primero fue fabricado en 1945,el ENIAC de los estadounidenses John Eckert y John Mauchly. Tenía 18000 tubos y pesaba 30000 kg. En 1950, diseñaron el primer ordenador electrónico de gestión, el UNIVAC.
ORDENADORES DE SEGUNDA GENERACION
Se considera el inicio de esta generación en 1958, con la sustitución de los tubos de vacío por los transistores. Los primeros ordenadores transistorizados fueron dos pequeños modelos de NCR y RCA. Los primeros de IBM y Sperry Rand fueron el IBM 7070 (1960) y el UNIVAC 1107 (1962). Durante esta época se introdujeron las unidades de cinta y discos magnéticos, y las lectoras de tarjetas perforadas e impresoras de alta velocidad. Así mismo aparecieron algunos lenguajes de programación,COBOL (1959), Algol (1960), el LISP(1962) y FORTRAN.
ORDENADORES DE TERCERA GENERACION
La principal característica de esta generación fue el uso del circuito integrado, que se incorporó a mediados de los años 1960. Durante esta época surgieron la multiprogramación y el tiempo compartido. También tuvo lugar la denominada "crisis del software".
ORDENADORES DE CUARTA GENERACION
El elemento que provocó el nacimiento de esta generación se considera habitualmente, aunque con cierta controversia, el microprocesador Intel 4004. A partir de 1980 se produce una eclosión de marcas. En Agosto de 1981 se presentó el IBM PC, que dio lugar a la difusión masiva de la informática personal
ORDENADORES DE QUINTA GENERACION
En octubre de 1981 el mundo de los ordenadores se vio sacudido por el anuncio hecho en Japón; los ordenadores de esta generación deberían de ser capaces de resolver problemas muy complicados.
Para conseguir estos fines tan ambiciosos estos equipos no tendrán un único procesador, sino un gran número agrupado en tres subsistemas fundamentales: un sistema inteligente, un mecanismo de inferencia y una interfaz de usuario inteligente. A los 10 años, se vio el fracaso del proyecto, actualmente no están desarrollados estos ordenadores.
Introducción a la informatica
Términos básicos
• Usuario: cualquier persona que obtenga beneficio de los computadores.
• Hardware: equipos y aparatos de computación.
• Software: programas y archivos usados por el Hardware.
• Programa: serie de instrucciones para el computador.
• Campo: unidad básica de información de un archivo.
• Registro: conjunto específico de campos.
• Archivo: conjunto ordenado de registros. • PDA: Asistente Digital Personal (Personal Digital Assistant)
• LAN: Red de Área Local (Local Area Network)
• WAN: Red de Área Amplia (Wide Area Network)
Arquitectura Básica de un Computador
Organización Interna de un PC
Memria o almacenamiento
o Principal: guarda la información de manera temporal. Trabaja con tarjetas SIMM. Se conoce como Memoria RAM (Random Access Memory).
o Secundaria: permite el almacenamiento permanente de la información. Circuitos ROM (Read Only Memory) en el BIOS; Discos Duros, Discos Flexibles, CD-ROM, cintas, Pen Drives, etc.
Unidad Central de Procesamiento (CPU)
o Genera todas las actividades del computador.
o Reside en la Tarjeta Madre (Mother Board)
Interfases: permiten la entrada y salida de datos desde y hacia el computador.
Medición de capacidad de almacenamiento
BIT: unidad de información más pequeña que maneja el PC. Tiene dos valores: 0 ó 1. Viene del inglés Binary digIT.
• Byte: unidad básica de información que maneja el PC. Está formado por ocho (8) bits.
o Kilobyte (Kb) 1.024 bytes
o Megabyte (Mb) 1.024.000 bytes
o Gigabyte (Gb) 1.024.000.000 bytes
o Terabyte (Tb) 1.024.000.000.000 bytes
Descripción de Interfases y Periféricos
Monitor
Permiten la comunicación del PC con el exterior a través de una pantalla. Se pueden clasificar por:
o Color
o Resolución
o Tamaño
Teclado
Permite que el usuario se comunique con el computador, introduciendo signos.
Unidades de Almacenamiento
permiten almacenar datos y/o programas de manera permanente. Ejemplo: Discos Duros, Discos Flexibles, CD-ROM, Pen Drive, Cintas.
Modem: permite comunicación vía telefónica entre computadores.
• Plotter: permite elaborar planos, gráficos, mapas.
• Scanner (rastreador): permite transformar figuras, contornos y texto en información digital.
• Mouse (ratón): permite movilización rápida del cursor. • Impresoras: permiten sacar copias en papel.
Software más usado
• Sistemas Operativos (Windows, Unix, Linux)
• Procesadores de Palabras (Word)
• Hojas de Cálculo (Excel)
• Presentadores (Power Point)
• Base de Datos (Access, SQL)
• Browsers u Hojeadores (IE, Firefox, Avant, Netscape)
• Correo electrónico (Eudora, MS Outlook)
• Para planificación de Proyectos (Project, Primavera)
Ing° Luis
Algoritmos y programación
Programación
Creación de un programa de computadora, un conjunto concreto de instrucciones que una computadora puede ejecutar.
TIPOS
Programación No Estructurada
Programación Imperativa: describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es la Programación Declarativa.
Programación Declarativa: No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones
Programación Funcional: es un paradigma de programación declarativa basado en la utilización de funciones matemáticas
Programación Secuencial: se establece una secuencia definida de instrucciones u órdenes a ser seguidas por el computador, una vez que se ejecute el programa.
Programación por Eventos: es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen.
Programación Estructurada: es una forma de escribir programación de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa
Programación Modular: los programas se desarrollan en módulos independientes, que serán llamados en el programa principal.
Programación por capas: el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño, un ejemplo básico de esto es separar la capa de datos de la capa de presentación al usuario.
Programación Extrema: o eXtreme Programming (XP) es una aproximación a la ingeniería de software formulada por Kent Beck.
Programación Orientada a Objetos: está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y subtipos entre objetos.
Lenguaje de progrmación
Es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen un lenguaje informático.
Permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias.
Tipos
Intérpretes: cada instrucción que contiene el programa se va convirtiendo a código máquina antes de ejecutarla, lo que hace que sean más lentos.
Compiladores, se convierte todo el programa en bloque a código máquina y después se ejecuta. Así, hay que esperar más que en un intérprete para comenzar a ver trabajar el programa, pero después éste funciona mucho más rápido.
Generaciones
• Lenguajes de Primera Generación (o de bajo nivel): Ensamblador
• Lenguajes de Segunda Generación: Fortran, Cobol
• Lenguajes de Tercera Generación: C++, Pascal
• Lenguajes de Cuarta Generación: 4GL
• Lenguajes de Quinta Generación: en desarrollo (Sistemas Expertos o Sistemas basados en conocimiento)
Mas conocidos
• BASIC, A pesar de su "sencillez" hay versiones muy potentes, incluso para programar en entornos gráficos como Windows (es el caso de Visual Basic).
• COBOL, que fue muy utilizado para negocios, aunque últimamente está bastante en desuso.
• FORTRAN, concebido para ingeniería, operaciones matemáticas, etc. También va quedando desplazado.
• Ensamblador (Assembler), muy cercano al código máquina, pero sustituye las secuencias de ceros y unos (bits) por palabras más fáciles de recordar, como MOV, ADD, CALL o JMP.
• C, el mejor considerado actualmente, porque no es difícil y permite un grado de control del ordenador muy alto, combinando características de lenguajes de alto y bajo nivel. Además, es muy transportable: existe un estándar, el ANSI C, lo que asegura que se pueden convertir programas en C de un ordenador a otro o de un sistema operativo a otro con bastante menos esfuerzo que en otros lenguajes.
• PASCAL, el lenguaje estructurado por excelencia, y que en algunas versiones tiene una potencia comparable a la del lenguaje C, como es el caso de Turbo Pascal en programación para DOS y Windows. Frente al C tiene el inconveniente de que es menos portable, y la ventaja de que en el caso concreto de la programación para DOS, Turbo Pascal no tiene nada que envidiar la mayoría de versiones del lenguaje C, pero resulta más fácil de aprender, es muy rápido, crea ficheros EXE más pequeños, etc.
Objetivos
• Corrección: Un programa es correcto si hace lo que debe hacer. Para determinar si un programa hace lo que debe es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y una vez acabado compararlo con lo que realmente hace.
• Claridad: Cuando se acaba de escribir el código del programa, se deben buscar errores y corregirlos. Más concretamente, cuando el programa está concluido, es necesario hacerle ampliaciones o modificaciones, según la demanda de los usuarios.
• Eficiencia: Debe consumir la menor cantidad de recursos posible. Normalmente al hablar de eficiencia se suele hacer referencia al consumo de tiempo o memoria.
Algoritmo
Es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo.