Universidad Nacional de Luján Departamento de Ciencias Básicas Computación - Agronomía 1. Conceptos fundamentales 1.1 Informática El término, neologismo francés, se forma como contracción de las palabras INFORmación autoMATICA, y se define como el tratamiento automático y racional de la información. Su objetivo es procesar datos de entrada para obtener resultados finales. Procesar datos implica el almacenamiento, la organización y la transmisión de los mismos. Según el diccionario de la Real Academia de la Lengua Española señala que INFORMATICA es el "conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de computadoras". ENTRADA SALIDA PROCESAM IENTO (datos ) (re s ultados ) Ejemplo: Determinación de y en la ecuación de la recta, para un x dado Ecuación de la recta y = (x * pendiente) + origen ENTRADA, datos: x = 5, pendiente = 6, origen = 2 PROCESAMIENTO y = (5 * 6) + 2 SALIDA, resultados: y = 32 El dato es todo elemento que mediante un proceso aporta un nuevo conocimiento llamado información. La principal característica de la información es que reduce la incertidumbre o sea lo desconocido. El término sistema de información se usa para nombrar al conjunto de funciones y operaciones, estructurado de tal forma que a partir de los datos de entrada, y luego de una etapa de procesamiento de los mismos, se obtienen los resultados, o sea la información. También se lo podría definir como el conjunto de todos los procedimientos y dispositivos (computadoras y otros) implicados en la recolección, proceso, almacenamiento y distribución de la información. Las actividades relacionadas al tratamiento de la información se puede resumir de acuerdo al siguiente gráfico: Universidad Nacional de Luján Departamento de Ciencias Básicas ENTRADA PROCESO Computación - Agronomía Recolección de datos Depuración de datos Almacenamiento de datos Operaciones aritméticas Operaciones lógicas SALIDA Recolección de resultados Análisis de resultados Distribución de resultados El procesamiento se realizará en base a un algoritmo que determinará el conjunto de acciones a realizar sobre los datos. Es decir, que un algoritmo es un método para resolver problemas que pueden ser programados. Resumiendo, un algoritmo es un conjunto finito de pasos, cada uno de los cuales puede estar formado por una o más operaciones, que se ejecutan secuencialmente a menos que el paso actual especifique otra cosa, y que llevan a la solución de un problema específico. 1.2 Computadora Una computadora es una máquina electrónica programable que tiene por objetivo procesar datos de entrada y obtener resultados, en base a instrucciones derivadas de un programa almacenado en su memoria. Las computadoras resultan útiles para realizar tareas que tengan algunas de las siguientes características: necesidad de un gran volumen de datos, existencia de datos comunes a varias tareas, que sean repetitivas, que estén distribuidas geográficamente, que necesiten significativa precisión, que requieran cálculos complejos, Universidad Nacional de Luján Departamento de Ciencias Básicas Computación - Agronomía que se deban realizar a gran velocidad. Los programas computacionales son algoritmos codificados en algún lenguaje que una computadora sea capaz de interpretar y ejecutar. Tales programas se presentan a la computadora en un lenguaje especial, de forma que pueda ser entendido por la máquina. El término hardware se define como el conjunto de todos los elementos físicos que componen una computadora; es la máquina en sí. Por otro lado, el término software hace referencia a los elementos lógicos de la computadora, son los programas y los datos En principio la computadora sólo es capaz de entender lenguaje de máquina que está especificado en notación binaria (sólo contiene 2 posibles caracteres, 0 y 1). Pero a los efectos de hacer más fácil la escritura de programas (por parte de los humanos) existen los lenguajes de programación de alto nivel (Ej. C, Pascal, Perl). Estos son utilizados por los técnicos programadores, están diseñados para que los humanos escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina. Otra razón es que un programa escrito en un lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones de la computadora no dependen del diseño del hardware. Los programas traductores (compiladores) permiten convertir programas codificados en lenguajes de alto nivel en programas expresados en lenguajes de bajo nivel o de máquina (que sí sean capaces de ejecutar por el hardware de la computadora). JavaScript if (x > y) { z = 2; } else { z = 3; } En ensamblador LOD SUB STO CPL JMZ LOD STO HLT LOD STO HLT Y X T1 T1 16 #2 Z #3 Z En lenguaje de máquina 00000100 00000001 00000101 00001011 00001101 00010100 00000101 00001111 00010100 00000101 00001111 10000010 10000001 10000010 10000010 00010000 00000010 10000011 00000000 00000011 10000011 00000000 El proceso para la resolución de un problema con auxilio de una computadora puede explicarse a partir de los siguientes pasos: Universidad Nacional de Luján Departamento de Ciencias Básicas Computación - Agronomía 1. Planteamiento del problema y propuesta de un método de resolución en lenguaje natural 2. Transformación del método de resolución en un algoritmo. 3. Traducción del algoritmo a lenguaje de programación (generación del programa). 4. Traducción automática (compilación) del programa a lenguaje de bajo nivel. Ejemplo: Programa escrito en el lenguaje de alto nivel C, que transforma de grados Fahrenheit a grados Celcius /* Convierte Fahrenheit a Celcius */ #include<stdio.h> main() { int fahr, celcius; int lower, upper, step; lower=0; upper=300; step=20; fahr=lower; while(fahr<=upper) { celcius=5*(fahr-32)/9; printf("%d\t%d\n", fahr, celcius); fahr=fahr+step; } return(0); } A los efectos de conocer la historia de la computación se recomienda visitar el "museo virtual de la computación" sito en la siguiente dirección de Internet HTTP://www.computerhistory.org/ 1.3 Jerarquía de computadoras Las computadoras, de acuerdo a su potencia de cómputo y capacidad de almacenamiento, pueden dividirse en las siguientes clases: a. Microcomputadoras En general se las denomina computadora personal (PC, Personal Computers). Son las más populares y utilizadas por las personas y corporaciones. Universidad Nacional de Luján Departamento de Ciencias Básicas Computación - Agronomía Generalmente existen dos (2) subtipos de microcomputadoras, a saber: las computadoras de escritorio ("desktop computers") y las portátiles. a.1. Computadoras de Escritorio: Representan aquellos dispositivos de cálculo lo suficientemente pequeños para que puedan instalarse sobre un escritorio de trabajo. No obstante son voluminosos para considerarse portables. a.2. Computadoras Portátiles: En esta categoría se encuentran aquellas microcomputadoras que son lo suficientemente pequeñas y livianas, de manera que se puedan cargar y transportar de un lugar a otro sin inconvenientes. Actualmente existen cuatro tipos de computadoras portátiles, clasificadas por su peso: a.2.1. Laptops: Estas computadoras portables poseen un peso entre 5 y 8 kilogramos. Su fuente de poder proviene de la línea de energía del edificio o de baterías. a.2.2. Notebooks: Pesan entre 2.5 y 5 kilogramos. a.2.3. Subnotebooks: Computadoras más livianas, pesan entre 1 y 2,5 kilogramos. a.2.4. Asistentes personales digitales (Personal Digital Assistants PDA): Son las computadoras portables más pequeñas, su tamaño promedio es el 15 por 10 centímetros. Poseen capacidades para entrada de datos por medio de reconocimiento de escritura manuscrita. Sirven como agendas, puntos de conexión a Internet, puntos de captura de datos, etc. b. Minicomputadoras Las computadoras de esta categoría pueden ser ubicadas en una oficina (tamaño reducido), pero son más rápidas al procesar información y poseen mayor capacidad de almacenamiento al compararse con las computadoras personales. Comúnmente son empleadas como equipos servidores de datos de pequeñas organizaciones. Generalmente poseen unos pocos procesadores que operan en paralelo, satisfaciendo requerimientos de servicio de decenas de usuarios. c. Mainframes o Macrocomputadoras Son aquellas computadoras de tamaño considerable que ocupan en su totalidad un cuarto u oficina de alguna importante organización (banco, línea aérea, etc). Los mainframes son voluminosos, de alta perfomance y de elevado Universidad Nacional de Luján Departamento de Ciencias Básicas Computación - Agronomía costo; son capaces de dar servicio a cientos de usuarios simultáneamente, así como cientos de dispositivos de entrada y salida. Su costo de oscila los 500.000 dólares a los 5 millones de dólares. d. Supercomputadoras Las supercomputadoras son las más grandes que existen en un momento dado. Son máquinas están diseñadas para procesar enormes cantidades de información en poco tiempo y generalmente son dedicadas a una tarea específica. Su valor oscila varias decenas de millones de dólares. Son utilizadas por organizaciones que requieran alto poder de cómputo, tal como la NASA. Posibles áreas que requieran cómputo intensivo son: Predicción del clima Búsqueda de señales extraterrestres Búsqueda de yacimientos petrolíferos Procesamiento de información genética 1.4 Evolución de la informática Ve locidad Confiabilidad Eficie ncia Facilidad de us o Cos to Tam año 1940 2004 La ley de Moore decía que a precio constante el desempeño de una computadora se duplica cada 18 meses. Actualmente esta ley ha quedado derogada, debido a que el tiempo de duplicación es sensiblemente menor que los 18 meses. Universidad Nacional de Luján Departamento de Ciencias Básicas Generación 1ra Ejemplos Computación - Agronomía Hardware ENIAC UNIVAC IBM 700 IBM 7094 Válvulas de vacío Tambores magnéticos Transistores 3ra IBM 360 PDP 11 Miniprocesadores Memoria de semiconductores 4ta IBM 3090 CRAY XMP IBM PC Sun Sparc Redes Discos ópticos Hard Compacto Sistemas paralelos ULSI 2da 5ta Software Programación en código de máquina Lenguajes de alto nivel Timesharing Programación estructurada Gráficos Programas empaquetados POO Lenguajes paralelos IA Generaciones de computadoras Perfomance RAM 2KB 10000 IPS RAM 32KB 20000 IPS RAM 2MB 5 MIPS RAM 8MB 30 MIPS RAM 64MB 10 GFLOPS