Вы находитесь на странице: 1из 34

Computacin I

Unidad 1. Informtica

Universidad Abierta y a Distancia de Mxico

Licenciatura en Matemticas Computacin I

6 Cuatrimestre

Unidad 1. Informtica Clave: 050920621/ 060920621

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica

Contenido
Presentacin de la unidad .......................................................................................................................... 3 Propsitos ................................................................................................................................................... 3 Competencia especfica .............................................................................................................................. 3 1.1. Fundamentos de la informtica ........................................................................................................... 3 1.1.1. Anlisis histrico ........................................................................................................................... 4 1.1.2. Contexto actual de la informtica ................................................................................................. 6 1.2. Fundamentos de la computacin ........................................................................................................ 8 1.2.1. Modelo de von neumann ............................................................................................................. 15 Actividad 1. El modelo de von neumann ................................................................................................. 17 1.2.2. Ejecucin de programas en la computadora ............................................................................. 17 1.2.3. Almacenamiento de programas y datos ..................................................................................... 20 Actividad 2. Reporte de investigacin ..................................................................................................... 24 1.3. Ciclo de vida del software .................................................................................................................. 24 1.3.1. Modelos en cascada .................................................................................................................... 25 1.3.2. Modelo v ....................................................................................................................................... 30 Autoevaluacin.......................................................................................................................................... 32 Evidencia de aprendizaje. Presentacin de resultados .......................................................................... 33 Cierre de la unidad .................................................................................................................................... 33 Para saber ms .......................................................................................................................................... 34 Fuentes de consulta .................................................................................................................................. 34

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica

Presentacin de la unidad
En esta unidad tendrs la oportunidad de aprender los fundamentos de la informtica e identificar la historia de la creacin y evolucin de las computadoras. Descubrirs tambin el contexto actual de la informtica incluyendo la participacin del elemento humano. Conocers cmo algunos de los pioneros de la informtica propusieron diseos que an hoy en da se utilizan para construir computadoras. Comprenders cmo se ejecutan los programas en una computadora y se almacenan los datos y programas. Finalmente analizars el ciclo de vida de desarrollo del software, un proceso sistemtico basado en modelos que puedes utilizar para desarrollar programas o sistemas de propsito especfico eficaces y de alta calidad.

Propsitos
Al finalizar esta unidad sers capaz de: Describir las etapas de la evolucin de las computadoras Analizar el contexto actual de la informtica Identificar los componentes de una computadora digital, as como algunos de los procesos que ocurren dentro de ella Establecer las bases para el desarrollo de programas y sistemas utilizando modelos informticos

Competencia Especfica
Identificar las bases fundamentales de la informtica para el desarrollo de aplicaciones a travs del uso de modelos informticos.

1.1. Fundamentos de la Informtica


En el Diccionario de la Real Academia de la Lengua Espaola se define Informtica como: Conjunto de conocimientos cientficos y tcnicas que hacen posible el tratamiento automtico de la informacin por medio de ordenadores. Nota: En nuestro pas, en lugar de la palabra ordenador, utilizamos computadora.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
Como una definicin an ms concisa de Informtica podramos considerar tambin ciencia que estudia el procesamiento automtico de la informacin. La consolidacin de la informtica como ciencia se produjo a mediados del siglo pasado con el desarrollo de las computadoras.

1.1.1. Anlisis Histrico


Qu es informacin? Esta pregunta ha sido discutida por ms de medio siglo por mucha gente. Una discusin sistemtica de este concepto requerira de la consideracin de estudios complejos de diversos tipos, as que slo analizaremos este concepto en sus orgenes y significado bsico desde el punto de vista etimolgico. En latn exista el verbo informare qu significaba informar, su forma sustantiva era informacin. Las conclusiones acerca de su significado incluyen hecho, noticias y conocimiento. Basndose en estos significados, muchos conceptos similares fueron desarrollados ms tarde: estructura, datos, seal, mensaje, significacin, significado, sentido, percepcin, inteligencia, pensamiento y contenido, entre otros.. No se ha creado una definicin precisa de informacin que satisfaga a todos. Despus de que el concepto de informacin fue introducido en la Literatura, la Estadstica y la Biologa, se volvi til tambin para los ingenieros en electrnica. En 1947, el matemtico y cientfico en computacin John von Neumann y su colaborador, Oskar Morgenstern establecieron su teora de juegos en la que utilizaban la palabra informacin. El uso de este vocablo se extendi a otras reas de conocimientol. Actualmente, es difcil encontrar un rea que no haya adoptado el concepto de informacin, incluyendo las Humanidades, las Ciencias Sociales, las Ciencias Naturales y la mayor parte de las Ingenieras. Este concepto dio lugar asimismo a la Teora de la Informacin, o Ciencia de la I. La aportacin de las computadoras en el tratamiento automtico de la informacin redonde finalmente la definicin de informtica. La Computadora El origen de las mquinas para calcular se remonta al siglo IV a.C. con el baco chino. En 1645, el cientfico francs Blas Pascal invent una calculadora que haca sumas y restas y que estableci la base para que en 1675 Leibnitz desarrollara una mquina que adems poda multiplicar y dividir. En 1822 Charles Babbage dise la mquina diferencial para tabular polinomios y en 1837 la mquina analtica programable para hacer cualquier tipo de clculo. Estos instrumentos nunca fueron terminados debido a problemas mecnicos. Una de las figuras ms importantes en la historia de la informtica, es Alan Turing. A la edad de 24 aos escribi un artculo titulado On Computable Numbers, with an Application to the Entscheidungsproblem. El artculo describe de manera elegante un procedimiento para modelar una computadora en trminos matemticos.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
Esta descripcin represent un avance notable porque permiti la aplicacin de herramientas matemticas en el mbito computacional Por ejemplo, con su modelo demostr que existen problemas que ninguna computadora puede resolver sin importar lo ingenioso que sea el programador. El artculo de Turing es an ms notable porque fue publicado en 1936, varios aos antes de que una computadora existiera realmente. La palabra Entscheidungsproblem se refiere a uno de los 28 problemas matemticos planteados en 1900 por David Hilbert como desafos para los matemticos del siglo XX. Las matemticas no escaparon de la influencia de la computadora. De hecho, las primeras aplicaciones en computadora fueron de naturaleza matemtica, pues las mquinas electrnicas de cmputo de propsito general fueron utilizadas para resolver o estudiar problemas matemticos tanto tericos como prcticos. En 1944 se construy la primera calculadora llamada Mark I que utilizaba 760,000 ruedas y 800 km de cable, y en 1946 la primera computadora con fines prcticos denominada ENIAC que utilizaba 19,000 vlvulas de vaco y 1,500 relevadores. Alrededor de 1951 se desarrollaron la Univac I y la Univac II, consideradas el punto de partida de las verdaderas computadoras. La evolucin de las computadoras suele dividirse en generaciones para destacar los hechos ms trascendentes: La primera generacin (1944 a 1952) incluye las computadoras que funcionaban con vlvulas de vaco y eran de uso exclusivo cientfico y militar. Su programacin requera la modificacin de sus circuitos. La segunda generacin (1952 a 1964) se caracteriz por el uso del transistor en lugar de la vlvula de vaco. Los transistores son mucho ms pequeos, desprenden menos calor y sufren menos fallas. Aparecieron en esta poca las primeras computadoras comerciales con sistemas operativos. Tambin se desarrollaron los primeros lenguajes de programacin (Fortran y Cobol). La tercera generacin (1964 a 1971) atestigu la utilizacin de los primeros circuitos integrados que aumentaron la capacidad de procesamiento y redujeron el tamao fsico de las computadoras. Se mejoraron los lenguajes de programacin y surgieron los programas de utilera. La cuarta generacin (1971 a 1981) se caracteriz por la fuerte integracin de componentes electrnicos y por la aparicin del microprocesador. El microprocesador es un circuito integrado que contiene millones de componentes electrnicos dentro de una pequea pastilla de cermica y es el encargado de ejecutar los programas. La quinta generacin que va desde 1981 hasta la actualidad se caracteriza por el surgimiento de la computadora personal. La informtica ayuda a adquirir conocimientos a travs de un tratamiento racional y automtico de la informacin y su evolucin ha dado lugar a lo que se denomina sociedad de la informacin, caracterizada

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
por el proceso de grandes cantidades de datos. El desarrollo cientfico en diversos campos ha estado ligado tanto a los avances de la informtica como a las tecnologas de la informacin y la comunicacin. Los angloparlantes no suelen utilizar la palabra informatics debido a que en 1962 Walter F. Bauer fund una empresa que registr el nombre Informatics General, Inc. La empresa no permiti a las universidades el uso de la palabra informatics y las oblig a utilizar la alternativa computer science. La Association for Computing Machinery intent cambiar esta posicin y le pidi a la empresa que permitiera el uso de la palabra, pero la respuesta sigui siendo negativa. En 1985 Informatics General, Inc. dej de operar, pero para entonces computer science era de uso comn. Computer science (ciencias de la computacin) se usa para designar el estudio cientfico y aplicado, mientras que, information technology (tecnologas de la informacin) se refiere a las tecnologas que realizan el tratamiento automatizado de la informacin.

1.1.2. Contexto Actual de la Informtica


En sus inicios, la informtica slo facilitaba los trabajos repetitivos y montonos principalmente del rea administrativa; la automatizacin de los procesos permiti disminuir los costos e incrementar la productividad. El uso de la informtica se extendi rpidamente a otras reas del conocimiento y de la actividad humana: disciplinas como la fsica, qumica, medicina, ingeniera, administracin de empresas, monitoreo y control de procesos, comunicaciones, investigacin, toma de decisiones y transporte, entre otras, empleaban computadoras. La informtica mantiene una evolucin acelerada en reas y aspectos como los que se describen a continuacin: Las computadoras en paralelo (computadoras en las que muchas instrucciones se ejecutan simultneamente) estn siendo desarrolladas fuertemente. La informtica fue fundamental en el proyecto del genoma humano para secuenciar el ADN y ahora apoya el proyecto del proteoma humano, el cual intenta descifrar el funcionamiento y accin de cada protena humana. El trabajo de Len Adleman en computacin biolgica luce muy promisorio; su artculo Molecular Computation of Solutions To Combinatorial Problems describe el uso experimental de ADN como un sistema computacional. En el artculo, Adleman presenta la solucin de un caso de siete nodos del problema hamiltoniano de grafos, un problema NP-completo. Si bien esta solucin es trivial, representa el primer caso exitoso del uso de ADN para procesar un algoritmo. La computacin cuntica, que vuelve tratables problemas intratables con la computacin clsica; la supercarretera de la informacin, que enlaza cada vez ms computadoras en todo el mundo; la nanotecnologa, que permite computadoras cada vez ms pequeas.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
Hoy en da, es difcil concebir un rea que no reciba el apoyo de la informtica. El Elemento Humano A medida que la informtica contina volvindose indispensable para las funciones de negocio, tecnologa ms sofisticada y compleja est siendo implementada en toda clase de organizaciones, incrementando la demanda de trabajadores capacitados en tecnologa de cmputo. Las organizaciones intentan maximizar su eficiencia con la tecnologa disponible. La expansin del comercio electrnico haciendo negocios en internet-y la necesidad continua de construir y mantener bases de datos que almacenen informacin crtica de los clientes, del inventario y de los proyectos, requiere administradores de bases de datos compatibles con la tecnologa ms reciente. Debido a la creciente dependencia en internet por parte de las empresas, la seguridad de la informacin es una preocupacin constante. El rpido y generalizado uso de la informtica ha generado una gran necesidad de trabajadores capacitados que dominen diversas funciones. Estos especialistas incluyen cientficos de la computacin, administradores de bases de datos y redes, y analistas de comunicaciones de datos. Las necesidades de actualizacin evolucionan continuamente, reflejando nuevas reas de especializacin o cambios en la tecnologa. Los cientficos de la computacin trabajan como tericos, investigadores, o inventores. Sus trabajos se distinguen por los altos niveles de conocimiento terico y de innovacin que aplican a problemas complejos y a la creacin o aplicacin de nueva tecnologa. Con la llegada del internet y con los negocios generando grandes volmenes de datos, existe una creciente necesidad de almacenar, administrar, y extraer datos de manera efectiva. Los administradores de bases de datos trabajan con sistemas de administracin de bases de datos y determinan las formas de organizar y almacenar datos. Los analistas de redes y de comunicacin de datos, tambin conocidos como arquitectos de red, disean, prueban, y evalan sistemas tales como redes de rea local (LANs), redes de rea amplia (WANs), internet, e intranets, y otros sistemas de comunicacin de datos. Los cientficos de la computacin deben ser creativos, inquisitivos, analticos, y orientados a los detalles. Tener un buen conocimiento de Matemticas, incluyendo Clculo, Probabilidad y estadstica, y, por supuesto, de sistemas de cmputo Se requiere tambin una preparacin en una o ms de las ciencias, tales como, Fsica, Qumica, Bologa, etc. y es deseable el manejo del ingls, de la Lecto-escritura y de las Humanidades. La mayora de los cientficos de la computacin actuales se clasifican por reas de inters como las siguientes: Teora matemtica y algoritmos

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
Inteligencia artificial Arquitectura, computacin en paralelo y sistemas Bioinformtica y biologa computacional Bases de datos y sistemas de informacin Grficas, visualizacin e interfaz computadora-humano Sistemas y redes Lenguajes de programacin, sistemas formales, e ingeniera de software Computacin cientfica

1.2. Fundamentos de la Computacin


Una computadora es una mquina electrnica capaz de procesar informacin siguiendo las instrucciones que se le proporcionan a travs de un programa. Sus componentes incluyen medios de entrada para recibir informacin, medios de salida para entregar informacin, dispositivos para almacenar la informacin y un ncleo que ejecuta los procesos siguiendo las instrucciones del programa. Para todos sus procesos una computadora utiliza nmeros, pero no es capaz de usar el sistema numrico decimal. Un sistema numrico simplificado llamado binario tuvo que ser desarrollado para las computadoras y slo requiere de dos dgitos: el 0 y el 1 llamados bits (dgitos binarios o binary digits). Cualquier cantidad o elemento (carcter, imagen, audio, video, etc.) puede ser representado dentro de la computadora con combinaciones, usualmente largas, de estos dos dgitos. Cualquier elemento de entrada debe ser codificado en este formato para ser procesado. Los resultados arrojados por los procesos de la computadora deben ser decodificados para entregarse al usuario. Una computadora est formada entonces por dos partes principales: una parte fsica constituida por circuitos electrnicos, pantalla, teclado, unidades de disco, etc. a la que se le llama comnmente hardware, y una parte lgica constituida por los datos y programas llamada software. Ambas partes son esenciales y deben trabajar coordinadamente. Sistema Operativo Para que una computadora pueda empezar a funcionar cuando se enciende, requiere de un programa especial llamado sistema operativo. Este programa no slo arranca la operacin, sino que administra y coordina las dos partes (la fsica y la lgica), para que la computadora sea capaz de efectuar los procesos para los que fue diseada. Otros programas, como las herramientas y las aplicaciones funcionan sobre el sistema operativo. Sin el sistema operativo ningn otro programa puede funcionar. Aplicaciones

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica
Las aplicaciones son programas (software) desarrollados para realizar tareas especficas. Se les llama as porque la computadora se aplica a efectuar un trabajo determinado. Ejemplos: procesadores de texto, las hojas de clculo, los programas de contabilidad, de juegos y de grficas, los administradores de bases de datos, etc. Actualmente existen aplicaciones sumamente complejas que apoyan actividades en reas de Administracin de empresas, Ingeniera, Biologa, Medicina, Astronoma, Industria aeroespacial, etc. Muchas de estas aplicaciones proporcionan facilidades de reprogramacin al usuario. Algoritmos y Programas El desarrollo de programas es fundamental porque adems de la evolucin natural de los programas, continuamente aparecen nuevos problemas o tareas que pueden ser procesados por las computadoras. Desde que se presenta la necesidad de resolver un problema hasta que se soluciona utilizando una computadora, se recorren varias etapas: 1. Deben conocerse los pasos y operaciones que hay que realizar para llegar a la solucin del problema. Esta secuencia se llama algoritmo. Si no conocemos el proceso que conduce a la solucin, no podremos indicrselo a la computadora, y sta no resolver el problema. 2. Una vez que se conoce la solucin general del problema, hay que expresala a travs de un lenguaje que la computadora pueda entender y ejecutar, llamados lenguajes de programacin y se utilizan para desarrollar los programas. 3. El programa debe ejecutarse con los datos pertinentes para comprobar que genera la solucin esperada. Cualquier error debe ser corregido. 4. Por ltimo, el programa debe ser documentado para facilitar cambios posteriores o labores de mantenimiento. En la siguiente unidad se analizarn los algoritmos. Componentes de una Computadora El hardware (l componentes fsicos de una computadora), incluyen medios de entrada, medios de salida, dispositivos para almacenar informacin y un ncleo que ejecuta los procesos siguiendo las instrucciones del programa; veamos ahora un poco ms de cerca estos componentes.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

Computacin I
Unidad 1. Informtica

Unidad Central de Proceso La unidad central de proceso o CPU por sus siglas en ingls (central processing unit) es un dispositivo que procesa los datos recibidos y es considerada el ncleo del hardware. Solemos referirnos a ella como CPU o simplemente como el procesador. Est integrada por dos partes principales: la unidad de control, que organiza y controla las instrucciones del programa, y la unidad aritmtica y lgica ALU (arithmetic logic unit) que las ejecuta. Fsicamente, el procesador es un dispositivo electrnico (circuito integrado) que se conecta con el resto de los componentes a travs de buses (rutas o conexiones). Memoria La memoria representa un almacn para guardar datos que son intercambiados con el procesador de acuerdo a las necesidades de ste. Las caractersticas de velocidad y capacidad de una memoria para recibir y entregar datos estn reidas entre s, mientras que el nivel de compromiso que se alcanza entre esas caractersticas da origen a diversos tipos de memoria. Memoria RAM (random access memory). La denominacin RAM no es muy adecuada y suele causar confusin, pero ha perdurado y se refiere a un tipo de memoria de lectura y escritura. Suele ser muy rpida para recibir y entregar datos, pero su capacidad es limitada (aunque los fabricantes aumentan esta capacidad continuamente). Es del tipo voltil en el sentido de que necesita recibir alimentacin elctrica para conservar la informacin, si la computadora se apaga, su contenido se pierde. Se le considera la memoria principal y fsicamente es un conjunto de circuitos electrnicos integrados (dispositivos de estado slido).

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

10

10

Computacin I
Unidad 1. Informtica
Memoria ROM (read only memory). Este tipo de memoria de slo lectura suele contener las instrucciones de la rutina de arranque de la computadora. La informacin que contiene est grabada de forma permanente y no se pierde aunque se interrumpa la alimentacin elctrica. Tambin es muy rpida, de capacidad limitada y est formada por circuitos electrnicos integrados. Algunas variantes de este tipo tiles en las fases de desarrollo de un sistema son la PROM (ROM programable), la EPROM (PROM borrable) y la EEPROM (PROM elctricamente borrable). Existe la necesidad de contar con memorias cada vez ms rpidas y con ms capacidad, se han ideado mtodos de optimizacin. Dependiendo del aspecto que se desea optimizar, se encuentran, por ejemplo, la memoria cach y la memoria virtual. La primera aumenta la velocidad de respuesta y la segunda la capacidad.Las memoria cach son mucho ms rpidas que las usuales, pero suelen tener una capacidad ms pequea debido a su alto costo. La memoria virtual representa una tcnica desarrollada con el propsito de poder utilizar ms memoria de la que fsicamente se dispone, se utiliza memoria secundaria (generalmente un disco duro) para crear reas que simulan el funcionamiento de ms memoria principal. El efecto es un crecimiento virtual de la capacidad a costa de la velocidad de acceso. Existen otros tipos de memoria que se consideran como perifricos y que discutiremos en la seccin siguiente. La capacidad comercial actual de las memorias abarca desde los kilobytes (103 bytes) hasta los gigabytes (109 bytes). Un byte es una agrupacin bsica de ocho bits que alcanza para representar nmeros del 0 al 255 (00000000 11111111). Perifricos Existen perifricos de entrada, de salida y de almacenamiento. Podemos distinguir entre perifricos locales y perifricos remotos segn su ubicacin con respecto a la computadora. Un perifrico local, como el teclado, se encuentra cerca de la computadora conectado mediante cables cortos. Un perifrico remoto, como una impresora en otro edificio, puede estar conectado a travs de una red de comunicaciones. Entre los perifricos de entrada ms importantes se encuentran el ratn (o mouse), el teclado, la pantalla tctil, el lpiz ptico, la tableta grfica y el scanner (para digitalizar imgenes). Entre los perifricos de salida ms importantes se encuentran la pantalla o monitor, la impresora y el graficador (plotter). Existen otros perifricos para comunicacin como el mdem, el cual permite la comunicacin entre computadoras a travs de la lnea telefnica, el ruteador (para conexiones ms rpidas a travs de lneas telefnicas digitales o lneas de TV cable), y diversos dispositivos que permiten el acceso a, por ejemplo, una red que interconecta tipos muy variados de equipo y que puede tener alcance global como Internet. Aunque los perifricos de almacenamiento son en realidad de entrada y salida, suelen considerarse por separado y son conocidos tambin como memorias secundarias. En el pasado, la mayora de estos dispositivos almacenaba la informacin de forma magntica (cinta, disco fijo o duro, y disco flexible) pero actualmente ya existen tambin otras tecnologas como la ptica en CDs y DVDs, y la tecnologa flash en lo

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

11

11

Computacin I
Unidad 1. Informtica
que conocemos como memorias USB. La tecnologa flash es un derivado de la memoria EEPROM aplicado a un dispositivo externo removible. En una cinta magntica el acceso a la informacin es secuencial, lo que obliga a recorrer la cinta hasta que aparezca la informacin o posicin buscada, esto hace que sea un medio muy lento. Debido a su gran capacidad se utiliza para hacer copias de seguridad o respaldo de la informacin. Los discos magnticos, que incluyen a los discos duros y a los flexibles, son dispositivos de acceso directo en los cuales no es necesario recorrer toda la informacin que hay delante de la que se necesita. Es posible acceder rpida y directamente al dato requerido. Los discos duros (hard disk) ofrecen una gran capacidad de almacenamiento que actualmente va de unos cuantos gigabytes (109 bytes) hasta terabytes (1012 bytes) o inclusive petabytes (1015 bytes). Como comparacin, una imagen de resolucin media ocupa aproximadamente un megabyte (106 bytes) o de 5 a 10 veces menos si se utilizan tcnicas de compresin. La velocidad de respuesta de los discos duros es menor a la de las memorias de estado slido pero su capacidad, como ya lo vimos en el prrafo anterior, es muy superior. Los discos duros permanecen vigentes como componentes crticos de computadoras y sistemas. Los discos flexibles (diskettes) han cado en el desuso dando paso a las nuevas tecnologas de medios removibles como las memorias USB o las memorias SD. Sistema Binario Se presentan a continuacin algunos conceptos del Sistema Binario que muestran algo de lo que ocurre dentro de una computadora. En el sistema decimal, un nmero como 8492 representa una cantidad igual a 8 miles ms 4 centenas, ms 9 decenas ms 2 unidades. Todos estos elementos son potencias de10 indicadas implcitamente por la posicin de los coeficientes:

En general, un nmero con punto decimal puede ser representado por una serie de coeficientes de la manera siguiente:

Cada coeficiente debe ser multiplicado por su correspondiente potencia de 10:

El sistema decimal tiene la base o raz 10 debido a que usa 10 dgitos y que los coeficientes son multiplicados por potencias de 10. En el sistema binario los coeficientes tienen dos valores posibles: 0 y 1. Cada coeficiente aj se multiplica por 2j. Por ejemplo, el equivalente decimal del nmero binario 11010.11 es 26.75:

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

12

12

Computacin I
Unidad 1. Informtica

Otras bases, como el octal y la hexadecimal se utilizan para simplificar el manejo de los nmeros binarios. Se suelen utilizar los dgitos del sistema decimal para los coeficientes en cualquier base que sea menor o igual a 10. En caso de que la base sea mayor que 10, es costumbre utilizar las letras del alfabeto para representar los dgitos restantes. Por ejemplo, en el sistema hexadecimal (base 16) se usan los 10 dgitos del sistema decimal ms las letras A, B, C, D, E y F para los dgitos 10, 11, 12, 13, 14 y 15 respectivamente. Un ejemplo de nmero hexadecimal sera B65F:

Los primeros nmeros en los sistemas decimal, binario, octal y hexadecimal se muestran a continuacin: Decimal Binario Octal Hexadecimal (base 10) (base 2) (base 8) (base 16) 00 0000 00 0 01 0001 01 1 02 0010 02 2 03 0011 03 3 04 0100 04 4 05 0101 05 5 06 0110 06 6 07 0111 07 7 08 1000 10 8 09 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F La suma de dos nmeros binarios se realiza utilizando las mismas reglas que en el sistema decimal, con la diferencia de que los dgitos de la suma en cualquier posicin significativa puedan ser 0 o 1. Algo similar ocurre para las dems operaciones excepto para la resta que es un poco ms complicada. El mtodo de sustraccin que utilizamos normalmente usa el concepto de prestar. Bajo este mtodo se presta 1 de una posicin significativa ms alta cuando el dgito del minuendo es ms pequeo que el correspondiente dgito del sustraendo; un mtodo sencillo cuando la resta se hace con lpiz y papel. Cuando la resta se ejecuta en una computadora, este mtodo es menos eficiente que uno que usa complementos y la suma.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

13

13

Computacin I
Unidad 1. Informtica
Complementos Los complementos se usan en las computadoras para simplificar la operacin de sustraccin y para manipulaciones lgicas. Existen dos clases de complementos para cada sistema de base r: 1. El complemento de r 2. El complemento de r-1 En el sistema decimal se tienen los complementos de 10 y 9, y en el sistema binario se tienen los complementos de 2 y 1. El complemento de r Dado un nmero positivo N de base r con parte entera de n dgitos, se define el complemento de r de N como . Se muestran a continuacin dos ejemplos: El complemento de 10 de (52520)10 es 105 52520 = 47480 El complemento de 2 de (101100)2 es (26)10 (101100)2 = (1000000 101100)2 = 010100 El complemento de r-1 Dado un nmero positivo N de base r con parte entera de n dgitos y una parte fraccionaria de m dgitos, se define el complemento de r-1 de N como . Se muestran a continuacin dos ejemplos: El complemento de 9 de (25.639)10 es 102 10-3 25.639 = 99.999 25.639 = 74.360 El complemento de 1 de (0.0110)2 es (1 2-4)10 (1.0110)2 = (0.1111 0.0110)2 = 0.1001 Se muestran a continuacin dos ejemplos de restas utilizando complementos: 1. Usando el complemento de 10, sustraer 72532 3250. El complemento de 10 del sustraendo es 96750. 72532 + 96750 = 169282. El dgito del extremo izquierdo es la lleva y se descarta. El resultado es 69282 2. Usando el complemento de 2, sustraer 1010100 1000100. El complemento de 2 del sustraendo es 0111100. 1010100 + 0111100 = 10010000. El dgito del extremo izquierdo es la lleva y se descarta. El resultado es 10000

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

14

14

Computacin I
Unidad 1. Informtica
1.2.1. Modelo de Von Neumann
El Matemtico Von Neumann Mencionamos anteriormente a ENIAC (Electronic Numerical Integrator and Computer), la primera computadora construida con fines prcticos en la Universidad de Pennsylvania, propuesta por John W. Mauchly y financiada por el ejrcito de los Estados Unidos. Su propsito principal era el clculo de tablas de disparo, una funcin de matemticas aplicadas (clculo de la solucin de ecuaciones diferenciales no lineales que describan la trayectoria de balas y misiles). Dos matemticos, Derrick H. Lehmer y John von Neumann, participaron en el desarrollo de ENIAC. Von Neumann hizo contribuciones importantes en muchos campos incluyendo lgica matemtica, teora de conjuntos, economa y teora de juegos, as como mecnica cuntica, hidrodinmica, e informtica. En 1943, Von Neumann fue invitado al proyecto Manhattan -el proyecto para desarrollar la bomba atmica,por su trabajo en dinmica de fluidos. Pronto se dio cuenta que los problemas en los que estaba trabajando requeran tantos clculos que iba a necesitar varios aos para completarlos. Al pedir ayuda fue invitado a Harvard a conocer la calculadora Mark I; esta mquina, sin embargo, result relativamente lenta para resolver los problemas en los que estaba trabajando. De regreso supo accidentalmente del proyecto ENIAC y fue invitado a conocerlo. Ms tarde contribuy tambin al desarrollo de esta mquina. La sucesora de ENIAC fue EDVAC (Electronic Discrete Variable Automatic Computer) la cual era binaria en lugar de decimal y utilizaba un programa de almacenado. El trabajo de Von Neumann en el diseo de EDVAC comenz antes de que ENIAC fuera completamente operacional y fue tan importante que an hoy en da el hardware de las computadoras se suele referir como el modelo o la arquitectura de Von Neumann. Las ideas principales de este diseo fueron descritas por von Neumann en el primer borrador de un reporte. Normalmente los primeros borradores no estn destinados ni son adecuados para ser publicados. Este reporte es una excepcin; contiene informacin valiosa y tuvo una gran influencia cuando fue escrito. Significativamente, Alan Turing lo cita en una de sus propuestas como la fuente definitiva de entendimiento de la naturaleza y el diseo de una computadora digital de propsito general. Una versin en mquina de escribir fue creada a partir del borrador original escrito a mano, pero contiene muchos errores tipogrficos y se usan mal los smbolos matemticos y letras griegas. Tambin contiene errores que pudieron haber existido en el borrador (el cual no se ha localizado). Adems Von Neumann hace referencia a secciones que nunca fueron escritas. Michael D. Godfrey escribi un artculo intentando cuidadosamente restituir lo que considera pudo haber sido el contenido y sentido del borrador de Von Neumann (lo puedes encontrar en IEEE Annals of the History of Computing, Vol. 15, No. 4, pp.27-75, 1993.) El conocimiento de Von Neumann en el campo de la lgica matemtica tuvo preponderancia en su trabajo con las computadoras. Recibi tambin gran influencia del trabajo de Alan Turing, sobre todo del famoso artculo de 1936 que contena una descripcin algortmica de la mquina universal de Turing . Una

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

15

15

Computacin I
Unidad 1. Informtica
mquina terica que puede ser considerada como la versin terica de la computadora con programa almacenado. Von Neumann muri en 1957 de cncer de huesos, posiblemente debido a la exposicin a la radiacin durante las pruebas de la bomba atmica en el atoln de Bikini. El Modelo de Von Neumann Durante su trabajo con ENIAC, pronto se hizo obvio para von Neumann que programar computadoras con interruptores era lento, tedioso e inflexible, as que ide la forma de representar de forma digital un programa en la memoria de la computadora junto con los datos. Tambin concluy que la aritmtica decimal utilizada por ENIAC en la que cada dgito estaba representado por 10 vlvulas de vaco (una encendida y nueve apagadas) poda ser sustituida por una aritmtica binaria. La mquina de Von Neumann tena cinco partes bsicas: la unidad de control, la unidad aritmtica y lgica, la memoria, y los dispositivos de entrada y salida.

La memoria constaba de 4096 palabras, cada una de las cuales contena 40 bits. Cada palabra contena dos instrucciones de 20 bits o bien un entero con signo de 40 bits. 8 bits de cada instruccin estaban dedicados a indicar el tipo de instruccin, y 12 bits se dedicaban a especificar una de las 4096 palabras de memoria. Las instrucciones deban ser almacenadas en la memoria, y luego extradas, interpretadas y ejecutadas una a una al momento de correr el programa para realizar los procesos correspondientes. Dentro de la unidad aritmtica-lgica haba un registro interno especial llamado acumulador de 40 bits. Una instruccin tpica sumaba una palabra de la memoria al acumulador o almacenaba el contenido del acumulador en la memoria. Como Von Neumann pensaba que cualquier matemtico competente deba poder seguir mentalmente la pista del punto decimal (binario, en realidad) la mquina no tena aritmtica de punto flotante.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

16

16

Computacin I
Unidad 1. Informtica
El diseo bsico que describi se conoce ahora como arquitectura, modelo o mquina de von Neumann y se utiliz en EDSAC, la primera computadora de programa almacenado que sigue siendo la base de casi todas las computadoras digitales existentes. Seguramente reconocers esta arquitectura en los componentes de la computadora moderna que describimos en la seccin Fundamentos de la Computacin.

Actividad 1. El modelo de Von Neumann


A travs de esta actividad podrs identificar la utilidad y relevancia del modelo de Von Neumann en el desarrollo de las computadoras digitales. De acuerdo a lo descrito en el tema 1.2.1. Modelo de Von Neumann: 1. Ingresa al foro de discusin que lleva por nombre Modelo de von Neumann. 2. Participa activamente en el foro de discusin, contestando la pregunta: Por qu es importante el modelo de Von Neumann? Recuerda que debes redactar tu respuesta con claridad, precisin y respeto. 3. Comenta la respuesta de dos de tus compaeros argumentando la postura de tu respuesta. 4. Consulta la Rbrica de participacin del foro que se encuentra en la seccin Material de apoyo.

1.2.2. Ejecucin de Programas en la Computadora


Un sistema de computacin automtico es un equipo que puede llevar a cabo instrucciones para realizar clculos de un considerable orden de complejidad. Las instrucciones que gobiernan esta operacin deben ser proporcionadas al equipo con lujo de detalle incluyendo toda la informacin numrica que se requiere para resolver el problema bajo consideracin; deben darse en alguna forma que el equipo pueda detectar. Todos estos procedimientos requieren el uso de un cdigo para expresar la lgica y la definicin algebraica del problema bajo consideracin, as como el material numrico necesario. Una vez que las instrucciones se cargan en el equipo, ste debe ser capaz de llevarlas a cabo completamente sin necesitar ninguna intervencin humana inteligente adicional. Al final de las operaciones requeridas, el dispositivo debe registrar los resultados en alguna forma de salida. Los resultados son datos numricos; son una parte especificada del material numrico producido por el equipo en el proceso de llevar a cabo las instrucciones mencionadas anteriormente.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

17

17

Computacin I
Unidad 1. Informtica
El equipo producir, en general, ms material numrico que los resultados mencionados. As, solamente una fraccin de su salida numrica tendr que ser registrada; el resto solamente circular en el interior del equipo y nunca ser registrado para uso humano. Los prrafos anteriores fueron extrados de la seccin Definiciones del reporte de Von Neumann con algn cambio de estilo y el acortamiento de algunas explicaciones. Seguramente estars de acuerdo en que su contenido permanece vigente an despus de 60 aos y resulta muy pertinente para iniciar esta seccin. Ejecucin de Programas Se mencion anteriormente que la unidad central de proceso o CPU es la encargada de ejecutar los programas almacenados en la memoria buscando instrucciones y examinndolas para despus ejecutarlas una tras otra. La parte de la unidad de control de la CPU se encarga de buscar las instrucciones y determinar su tipo. La parte de la unidad aritmtica y lgica de la CPU realiza operaciones como la suma y el AND booleano. La CPU tambin contiene una pequea rea de memoria de alta velocidad que utiliza para almacenar resultados temporales y cierta informacin de control. Esta rea de memoria contiene varios registros, cada uno de los cuales tiene una funcin especfica. Cada registro puede contener un nmero, hasta algn mximo, y puede leerse y escribirse a alta velocidad porque est dentro de la CPU. El contador de programa o PC (program counter) es un registro importante que apunta a la siguiente instruccin que debe buscarse para ejecutarse. El registro de instrucciones o IR (instruction register) es otro registro importante que contiene la instruccin que se est ejecutando. Existen usualmente ms registros, algunos con fines especficos y otros de propsito general. Ejecucin de Instrucciones La CPU ejecuta cada instruccin en una sucesin de pasos: 1. 2. 3. 4. 5. 6. 7. Buscar la instruccin siguiente en la memoria y colocarla en el registro de instrucciones. Modificar el contador de programa para que apunte a la instruccin siguiente. Determinar el tipo de instruccin que se obtuvo. Si la instruccin utiliza un dato de la memoria, determinar dnde est. Buscar el dato, si es necesario, y colocarlo en un registro de la CPU. Ejecutar la instruccin. Regresar al paso uno para proceder con la siguiente instruccin.

Esta sucesin de pasos se conoce como ciclo de bsqueda-decodificacin-ejecucin y es la base del funcionamiento de todas las computadoras.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

18

18

Computacin I
Unidad 1. Informtica
El juego de instrucciones de una CPU recibe el nombre de lenguaje o cdigo de mquina (binario). Una CPU slo puede entender instrucciones expresadas en su lenguaje de mquina; cada instruccin especifica alguna accin particular. Una instruccin es un grupo de ceros y unos; una parte es el cdigo de la operacin que debe realizarse y el resto determina dnde se encuentran los argumentos de la instruccin (en caso de que los haya). La especificacin para localizar los argumentos recibe el nombre de direccionamiento. Los grupos de unos y ceros son difciles de interpretar y de recordar para los humanos, as que a las instrucciones de mquina se les asignan nombres nemotcnicos dando origen a un tipo de lenguaje de bajo nivel llamado lenguaje ensamblador. Los programas ensambladores traducen las instrucciones en lenguaje ensamblador al cdigo binario de mquina. Entre los tipos de instrucciones que puede ejecutar una CPU se encuentran los siguientes: Movimiento de datos (memoria-registro, registro-memoria, registro-registro) Operaciones binarias (aritmtica elemental, AND, OR, XOR) Operaciones monarias (desplazar o rotar bits) Saltos (incondicionales, condicionales; alteran el orden de ejecucin) Llamada a un sub-programa Entrada y salida de datos

Puede verse que las instrucciones para la CPU son muy elementales, as que debe realizarse un gran esfuerzo para traducir del lenguaje natural utilizado por los humanos al lenguaje ensamblador (un esfuerzo todava mayor cuando se intenta programar directamente utilizando el cdigo binario de la mquina!) Se muestra a continuacin el fragmento de un programa utilizando nemotcnicos: CARGAR 120 SUMAR 170 ALMACENAR 250 Esta secuencia de instrucciones carga el contenido de la posicin de memoria 120 en el acumulador (uno de los registros principales de la CPU). A continuacin la operacin SUMAR suma al contenido del acumulador el contenido de la direccin 170. Finalmente, el contenido del acumulador se almacena en la posicin 250 de la memoria. Los lenguajes de mquina reales y, por lo tanto los lenguajes ensambladores, pueden tener cientos de instrucciones y las CPUs pueden contener numerosos registros operativos. Puedes darte cuenta que, an para aplicaciones sencillas, los programas en lenguaje ensamblador resultan ser muy grandes y difciles de construir e interpretar. Los lenguajes de nivel medio y alto que ya conoces (como C y Java) muestran su potencial al ofrecer un medio ms conveniente para que los humanos

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

19

19

Computacin I
Unidad 1. Informtica
programen computadoras; una sola de sus instrucciones puede agrupar decenas de instrucciones de lenguaje ensamblador.

1.2.3. Almacenamiento de Programas y Datos


Existe una gran cantidad de elementos que intervienen tanto en el almacenamiento como en el procesamiento de programas y datos en una computadora. Presentaremos a continuacin algunos de ellos. Memoria La memoria es la parte de la computadora en la que se almacenan programas y datos que pueden compartir unidades de memoria, simplemente sus reas y localidades estn perfectamente delimitados. El trmino almacenamiento (storage) tambin suele usarse en lugar de memoria (memory), aunque es ms comn el uso de almacenamiento para referirse reunir datos en disco. Las computadoras digitales de programa almacenado no existiran sin una memoria en la cual los procesadores pueden leer y escribir informacin. La unidad bsica de memoria es un dgito binario o bit. Como mencionamos anteriormente, un bit puede contener un 0 o un 1 y es la unidad ms simple posible. El sistema de numeracin binario es el mtodo ms confiable para codificar informacin digital porque slo requiere distinguir entre dos valores. Un solo dgito binario es una unidad de informacin demasiado pequea para ser manejada convenientemente, por lo tanto normalmente los bits se agrupan formando palabras de una longitud determinada las ms comunes son: 8, 12, 16, 18, 24, 32, y 64 bits. El grupo ms comn recibe el nombre de byte y contiene ocho bits. La memoria est formada por celdas o localidades, cada una de las cuales puede almacenar un elemento de informacin. Cada celda tiene asignada una direccin, por medio de la cual los programas pueden referirse a ella. Si una memoria tiene n celdas, sus direcciones estarn en el rango 0 a n-1. Todas las celdas de una memoria contienen el mismo nmero de bits; si una celda contiene k bits, podr ser usada para almacenar cualquiera de 2k combinaciones distintas de bits. Por definicin, las celdas de memoria adyacentes tienen direcciones consecutivas y las computadoras que utilizan el sistema binario expresan las direcciones de memoria como nmeros binarios. Si una direccin tiene m bits, el nmero mximo de celdas direccionales es 2m. Por ejemplo, con una direccin de cuatro bits pueden direccionarse 16 localidades de memoria. Con 8 bits pueden direccionarse 256 localidades. El nmero de bits de la direccin es independiente del nmero de bits por celda. Los primeros microprocesadores utilizaban direcciones de 16 bits para 65,536 localidades conteniendo datos de 8 bits (para valores entre 0 y 255). A continuacin se muestran los nmeros de bits de algunos computadores que han sido comercializadas:

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

20

20

Computacin I
Unidad 1. Informtica
Computadora Burroughs B1700 IBM PC DEC PDP-8 IBM 1130 CDC 3600 CDC Cyber Bits por celda 1 8 12 16 48 60

La celda es la unidad direccionable ms pequea. Casi todos los fabricantes de computadoras han adoptado como estndar una celda de 8 bits. Recuerda que un grupo de 8 bits recibe el nombre de byte. Los bytes suelen agruparse en palabras. Una computadora con palabras de 32 bits tiene 4 bytes por palabra; una computadora con palabras de 64 bits tiene 8 bytes por palabra. Casi todas las instrucciones de un programa operan con palabras, de manera que una mquina de 32 bits tiene registros de 32 bits e instrucciones para manipular palabras de 32 bits. Una mquina de 64 bits tiene registros de 64 bits e instrucciones para sumar, restar, y manipular palabras de 64 bits. Datos Adems de las instrucciones, las computadoras necesitan datos. De hecho, la tarea principal en muchos sistemas es procesar datos de diversos tipos: comerciales, de ingeniera, cientficos, financieros, etc. Los datos deben representarse de formas especficas dentro de la computadora y el hardware debe ser capaz de soportarlo. Los datos pueden dividirse en dos categoras: numricos y no numricos. El entero es el tipo principal de los numricos. Los enteros pueden tener diversas longitudes: 8, 16, 32 y 64 bits, por ejemplo. Los enteros se utilizan para contar (la cantidad de paquetes de un producto del inventario), para identificar (el nmero de una cuenta bancaria), como ndices en ciclos repetitivos, y para otras cosas. Algunas computadoras aceptan enteros tanto con signo como sin l. En el caso de los enteros sin signo, no hay bit de signo y todos los bits contienen datos. Este tipo de datos ofrecen un bit extra de manera que, por ejemplo, una palabra de 32 bits puede contener un entero sin signo dentro del intervalo de 0 a 232 1, inclusive. En cambio, un entero de 32 bits con signo en formato de complemento a dos slo puede manejar nmeros hasta 231 1 aunque tiene la ventaja de poder manejar nmeros negativos. Un poco ms adelante veremos lo que significa complemento a dos. Si un nmero no puede ser expresado como un entero, como 12.6 es necesario utilizar nmeros de punto flotante cuya longitud es de 32, 64, y a veces de 128 bits. Casi todas las computadoras tienen instrucciones para efectuar operaciones aritmticas de punto flotante. Datos No Numricos El objetivo de las primeras computadoras era procesar nmeros, pero las computadoras actuales se usan a menudo para aplicaciones no numricas como el procesamiento de textos o la administracin de bases de datos. Para estas aplicaciones se requieren otros tipos de datos como los caracteres.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

21

21

Computacin I
Unidad 1. Informtica
Como las computadoras slo manejan nmeros, es necesaria alguna codificacin para representar los datos no numricos dentro de ella. Los cdigos de caracteres ms comunes son ASCII y UNICODE, que manejan caracteres de 7 bits y de 16 bits, respectivamente. Existen instrucciones diseadas para manejar cadenas de caracteres, es decir series consecutivas de caracteres. Estas cadenas a veces se delimitan con un carcter especial al final o incluyen un campo de longitud para saber dnde terminan. Las instrucciones pueden realizar funciones de bsqueda, copiado, edicin y otras con las cadenas. Los valores booleanos tambin son importantes. Un valor booleano puede adoptar un valor de verdadero (true) o de falso (false). En teora un solo bit es suficiente para representar un valor booleano: 0 como falso y 1 como verdadero (o viceversa). En la prctica se usa un byte o una palabra para cada valor booleano porque los bits individuales no pueden ser direccionados fcilmente. Existen estructuras en las que un valor booleano puede representarse con un bit, como en el mapa de bits. En este caso una palabra de 32 bits, por ejemplo, puede contener 32 valores booleanos. Este tipo de estructuras se usan en muchos contextos, por ejemplo, se puede utilizar un mapa de bits para mantener el registro de los bloques libres de un disco. Otro tipo comn de datos es el apuntador, el cual contiene simplemente una direccin de memoria. Archivos de Programas y de Datos Normalmente, tanto los programas como los datos estn almacenados en algn medio (como el disco duro) hasta que son transferidos a la memoria de la computadora para ser procesados. Un programa es almacenado en un tipo de archivo denominado archivo ejecutable. Si bien este archivo contiene, en su mayor parte las instrucciones del programa, tambin puede comprender datos en constantes, en ciertas estructuras como los arreglos y en las cadenas de caracteres. La mayor parte de los datos, sin embargo, suele estar en otro tipo de archivo: el archivo de datos (un programa puede llegar a utilizar muchos archivos de datos simultneamente). El Concepto de Tipo de Datos Los siguientes prrafos pretenden servir como puente para conectar el concepto de bits en las celdas de memoria con los tipos de datos que son introducidos en los lenguajes de programacin como Pascal, C y Java. En matemticas es habitual clasificar las variables de acuerdo con ciertas caractersticas importantes. Existe una distincin clara entre variables reales, complejas y lgicas o entre variables que representan valores individuales, conjuntos de valores, o conjuntos de conjuntos o entre funciones, funcionales, conjuntos de funciones y as sucesivamente.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

22

22

Computacin I
Unidad 1. Informtica
En el procesamiento de datos, esta nocin de clasificacin es igual o ms importante. Mantendremos entonces el principio de que cada constante, variable, expresin, o funcin es de un cierto tipo. El tipo caracteriza esencialmente el conjunto de valores a los que pertenece una constante, que pueden ser asumidos por una variable o expresino pueden ser generados por una funcin. En los textos matemticos el tipo de una variable se puede deducir generalmente a partir del tipo de letra sin considerar el contexto; sin embargo, esto no es factible en los programas de computadora. Por lo general slo se tiene un solo tipo de letra disponible para programar. La regla que se acepta generalmente es que el tipo asociado se hace explcito en el programa a travs de una declaracin de la constante, variable o funcin, y que esta declaracin precede a la aplicacin de la constante, variable o funcin. La regla es particularmente sensible si se considera el hecho de que un compilador tiene que hacer una eleccin de la representacin del objeto para almacenarlo dentro de una computadora. Evidentemente, la cantidad de almacenamiento asignado a una variable tendr que ser elegido de acuerdo al tamao del rango de valores que la variable puede asumir. Si esta informacin es conocida por un compilador, puede ser evitada la asignacin dinmica de almacenamiento. Esto es a menudo la clave para la realizacin eficaz de un algoritmo. Las caractersticas principales del concepto de tipo que se utilizan en los lenguajes de programacin son las siguientes: 1. Un tipo de datos determina el conjunto de valores a los que pertenece una constante que pueden ser asumidos por una variable o una expresin o pueden ser generados por un operador o una funcin. 2. El tipo de un valor indicado por una constante, variable o expresin puede derivarse de su forma o declaracin sin la necesidad de ejecutar el proceso de cmputo. 3. Cada operador o funcin espera argumentos de un tipo fijo y entrega un resultado de un tipo fijo. Si un operador admite argumentos de varios tipos (por ejemplo, el smbolo + se utiliza para la adicin tanto de nmeros enteros como de nmeros reales, entonces el tipo de resultado puede determinarse a partir de normas lingsticas especficas. Un compilador puede utilizar esta informacin sobre los tipos para comprobar la legalidad de diversas construcciones. Por ejemplo, la asignacin errnea de un valor booleano (lgico) a una variable aritmtica puede ser detectada sin ejecutar el programa. Este tipo de redundancia en el texto del programa es extremadamente til para el desarrollo de los programas y debe ser considerada como la principal ventaja de los buenos lenguajes de alto nivel por sobre el cdigo de mquina (o cdigo ensamblador simblico).

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

23

23

Computacin I
Unidad 1. Informtica
En ltima instancia, los datos sern representados por un gran nmero de dgitos binarios, independientemente de si el programa fue inicialmente concebido en un lenguaje de alto nivel usando el concepto de tipo o en un cdigo ensamblador sin tipo. Para la computadora el almacenamiento es una masa homognea de bits sin estructura aparente, pero es precisamente la estructura abstracta de los tipos la que est permitiendo a los programadores humanos encontrar significado en el paisaje montono del almacenamiento de una computadora. - Niklaus Emil Wirth (creador del lenguaje de programacin Pascal).

Actividad 2. Reporte de investigacin


A travs de esta actividad podrs identificar los dispositivos de almacenamiento que se utilizan actualmente para guardar informacin en las computadoras digitales. Considerando lo descrito en los temas 1.2. Fundamentos de la Computacin y 1.2.3. Almacenamiento de Programas y Datos: 1. Escribe un reporte que llevar por nombre Dispositivos Actuales de Almacenamiento para las Computadoras. 2. Investiga sobre los siguientes temas e incluye los resultados de tu investigacin en el reporte: a. Dispositivos de almacenamiento para las computadoras b. El disco duro c. La cinta magntica d. Los discos flexibles e. Las memorias USB y SD f. g. h. i. Otros medios fijos y removibles como CDs y DVDs Las interfaces que conectan los diversos dispositivos con la computadora Cmo se guarda la informacin en los diversos dispositivos Tendencias de los dispositivos de almacenamiento para el futuro

3. Guarda tu documento con la nomenclatura CI_U1_A2_XXYZ. Y enva tu archivo al portafolio de evidencias.


4.

Espera la retroalimentacin de tu Facilitador(a).

1.3. Ciclo de Vida del Software


Para desarrollar un programa o software de propsito especfico y obtener los resultados deseados es necesario efectuar las tareas adecuadas. A este proceso de desarrollo de software se le suele llamar ciclo de vida de desarrollo de software o simplemente ciclo de vida del software.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

24

24

Computacin I
Unidad 1. Informtica
Existen varios modelos que han sido propuestos para guiar este proceso y cada uno describe una serie de tareas o actividades que deben realizarse. Varias dcadas han pasado en las que organizaciones e individuos se han dedicado a encontrar y definir procesos repetibles y predecibles que mejoren la calidad de los productos de software. Algunos intentan sistematizar o formalizar la escritura de los programas, otros utilizan tcnicas de la administracin de proyectos. Sistematizar el desarrollo de programas no es una tarea fcil porque intervienen entornos cambiantes, especificaciones ambiguas y sobre todo, programadores a los que muchas veces no les gusta que les impongan restricciones. La definicin de los requerimientos es tambin una fuente de problemas porque frecuentemente quienes solicitan el programa no saben lo que necesitan. Entre los modelos propuestos existen dos que han sido ampliamente usados no slo para el desarrollo de software, sino tambin para el desarrollo de sistemas en general: Modelos en cascada Modelo V

1.3.1. Modelos en cascada


El modelo en cascada de un proceso para desarrollar software est conformado por etapas definidas e independientes acomodadas de manera continua (secuencialmente), las etapas no se traslapan entre ellas. Este modelo es uno de los ms antiguos en la ingeniera de software y es de los ms usados, tiene la virtud de la simplicidad. Han sido tambin creadas algunas variantes. El modelo se caracteriza por enfatizar la planeacin previa de una etapa a la otra, es decir, cada etapa es la base para la siguiente. Esto incrementa el control en la calidad del producto final adems de que cada etapa debe ser terminada totalmente antes de iniciar con la siguiente. El procedimiento ayuda a evitar que se generen fallas de diseo durante el proceso de desarrollo. Como en el caso de otros modelos, ste no especifica los mtodos que son usados en sus etapas, simplemente proporciona un marco de trabajo para un desarrollo. Personas y autores tienen ideas ligeramente diferentes acerca de lo que cada paso debe ser;sin embargo, la esencia del enfoque es la misma. Se muestra a continuacin un diagrama del mtodo.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

25

25

Computacin I
Unidad 1. Informtica

Las etapas de este modelo son las siguientes: Requerimientos Diseo de arquitectura Diseo detallado Codificacin Pruebas de unidad Pruebas de sistema Aceptacin

Requerimientos Aqu se especifica lo que debe construirse. Se describen las funciones que debe realizar el producto final de acuerdo a las necesidades de usuarios y otros participantes clave. Tambin se especifican atributos como la calidad y el rendimiento deseados, la interaccin con otros programas, etc. Diseo de arquitectura En esta etapa se crea la estructura general del programa o sistema, de acuerdo con los requerimientos. Diseo detallado Aqu se lleva a cabo la definicin detallada de cada componente de la estructura del programa o sistema, as como de la forma en que cada componente ser implementado. Codificacin La etapa de codificacin se refiere a la programacin o implementacin de las especificaciones que se obtuvieron del diseo detallado: se escribe el programa y/o se ensamblan componentes. A esta etapa tambin se le conoce como etapa de implementacin, sobre todo cuando el modelo se utiliza para desarrollar sistemas.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

26

26

Computacin I
Unidad 1. Informtica
Pruebas de unidad En esta etapa se verifica de forma individual que cada uno de los componentes del programa o sistema cumple con los requerimientos establecidos. Detecta de forma temprana errores de programacin o de implementacin. Pruebas de sistema Aqu se verifica si el programa o sistema completo cumple con los requerimientos establecidos al inicio del proceso. Detecta tambin errores generales de interfaz entre componentes y de rendimiento, entre otros. Aceptacin En esta etapa se libera el programa o sistema y se crea la documentacin. Una de las desventajas de este modelo bsico es que el agua no puede fluir hacia arriba si se encuentra un problema en alguna etapa, no hay forma de rehacer una etapa anterior. Por ejemplo, si durante las pruebas se encuentran errores debidos a la etapa anterior de codificacin, en el enfoque estricto del modelo el cdigo no puede ser corregido. Para superar esta desventaja obvia, una variacin del modelo en cascada proporciona retroalimentacin entre las etapas adyacentes, de manera que un problema encontrado en alguna etapa provoca una accin de correccin en la etapa anterior. Modelo en cascada con retroalimentacin

Con respecto al modelo en cascada simple, el de retroalimentacin es ms flexible para el desarrollo de software y sistemas.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

27

27

Computacin I
Unidad 1. Informtica
Las ventajas de los modelos en cascada son: Dividen una tarea compleja en tareas ms pequeas y manejables Cada tarea produce un entregable bien definido

Al parecer, los creadores del modelo en cascada tuvieron la percepcin equivocada que el desarrollo de software es simple y directo, que puede fluir suavemente de una etapa a la otra sin problemas. Esto, por lo general, no es cierto y la experiencia ha demostrado que existen problemas fundamentales para usar este modelo como base para un plan de proyecto. Sin embargo, el modelo y sus variantes siguen siendo ampliamente usados. Como ejemplo de lo que pueden contener las etapas del modelo en cascada, te mostramos a continuacin algunos elementos del desarrollo de un sistema real que incluye software en gran medida, pero tambin componentes de otros tipos. Requerimientos Desarrollo de un robot de tipo SCARA utilizando el control de posicin por cinemtica directaBarato y de fcil mantenimiento. Trabajo en condiciones de 15 C a 30 C. Preciso, flexible, eficiente y confiable. Fabricado con materiales reciclables. Con un rea de trabajo de 30 cm de altura con un radio interno (ri) de 20 cm y un radio externo (re) de 50 cm. Trabajo continuo de 2000 horas. Paro de emergencia. Bajo consumo de energa. Interfaz grfica entendible por el usuario. Transferencia de datos entre un microcontrolador y una computadora utilizando el puerto USB. Utilizar programas como MATLAB o C++. Transferencia de datos a 9600 baudios. Algoritmos para cinemtica directa. Utilizar cantidad mnima de recursos del microcontrolador. Preferentemente usar programacin en tiempo real de tipo hard. Control manual y semiautomtico. Idioma de la interfaz grfica en ingls. Botones en la interfaz para paro de emergencia. Diseo de arquitectura Inicio de programa.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

28

28

Computacin I
Unidad 1. Informtica
Programa principal y subrutinas. Interfaz grfica. Diseo detallado Declaracin de libreras a usar. Especificar las caractersticas de transferencia de datos entre la computadora y el microcontrolador. Declaracin de variables de E/S y auxiliares. Diseo del programa principal y paro de emergencia. Declarar subrutinas para el control de los motores en cada grado de libertad. Disear la iteracin del programa principal. Disear la interfaz grfica para acoplarla con el programa principal y sus variables. Codificacin Programacin del cdigo en MATLAB y C++ Pruebas de unidad Verificar si la velocidad de transmisin de datos es la correcta. Verificar el control de los motores. Verificar el paro de emergencia. Probar con diferentes individuos la interfaz grfica. Otras pruebas.

Pruebas de sistema Verificar la precisin del robot con respecto a los puntos de posicin deseados y a los puntos de posicin obtenidos. Medir el consumo total de energa. Monitorear los movimientos del robot a diferentes temperaturas. Otras pruebas. Aceptacin Crear tabla de especificaciones. Escribir manual de operacin. Crear curso de capacitacin. Generar documento de aceptacin. Como habrs notado, incluimos ms detalles en la etapa de Requerimientos. Lo hicimos para hacer nfasis en la importancia de esta etapa. Una gran cantidad de proyectos no tienen xito debido a la debilidad en la recopilacin y especificacin de requerimientos. Finalmente, podrs ver a continuacin una imagen mostrando la primera versin del robot SCARA, y otra mostrando su interfaz grfica de control.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

29

29

Computacin I
Unidad 1. Informtica

1.3.2. Modelo V
El modelo V es similar en algunas caractersticas al modelo en cascada. Por ejemplo, ambos son secuenciales (una etapa tras otra) y se tiene que terminar totalmente una etapa antes de pasar a la siguiente; asimismo, ambos empiezan con los requerimientos. La diferencia ms significativa entre los dos modelos es que el modelo V realiza pruebas en cada etapa antes de pasar a la siguiente. Por ejemplo, se realiza la etapa de requerimientos y luego se efectan pruebas de aceptacin de esas necesidades ; una vez aprobados se puede continuar a la siguiente etapa. Se procede de la misma forma en todas las etapas hasta llegar a la ltima de codificacin o implementacin. Las pruebas se hacen al finalizar cada etapa y se repiten al terminar la codificacin o implementacin, como lo muestra el siguiente diagrama. Esto ltimo se efecta con el fin de verificar si el proyecto pasa cada una de las pruebas como producto final.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

30

30

Computacin I
Unidad 1. Informtica

La aplicacin del modelo V es simple y gracias a sus fases de pruebas, se facilitan la deteccin y la correccin de problemas antes de pasar a la siguiente etapa lo que garantiza la buena calidad del producto final. Por su naturaleza, este modelo es muy til en programas y sistemas en donde la confiabilidad es crtica. Como el modelo en cascada, no incluye la iteracin de las etapas y tampoco permite la modificacin de los requerimientos a lo largo del desarrollo del proyecto. La experiencia muestra que la modificacin de requerimientos sin un control estricto de cambios puede crear problemas graves en el desarrollo, as que se entiende que no se permita la modificacin de requerimientos. Modelos ms complejos han sido desarrollados para incluir este tipo de variaciones.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

31

31

Computacin I
Unidad 1. Informtica
Autoevaluacin
Felicidades! Haz llegado al final de la Unidad. Para terminar resuelve la actividad de Autoevaluacin que corresponde a un conjunto de reactivos: Instrucciones: elige la respuesta correcta que corresponda a la pregunta planteada. 1. Es la palabra que ha sido usada ampliamente por los angloparlantes. a) Informatics b) Computacin c) Base de datos d) Redes

2. Son las partes que integraban la mquina de Von Neumman? a) 5 b) 6 c) 7 d) 4

3. Son las partes fundamentales del CPU a) Unidad de control, unidad aritmtica y lgica, ROM b) Unidad aritmtica y lgica, RAM, ROM c) Unidad aritmtica y lgica, entrada, salida d) Unidad de control, unidad aritmtica y lgica

4. Es un tipo de lenguaje que es considerado de bajo nivel. a) Lenguaje ensamblador b) Basc c) Java d) Cobol

5. Es un modelo de cascada que es ms flexible para el desarrollo de software y sistemas. a) Cascada en retroalimentacin b) Cascada en complemento c) Cascada simple d) Cascada en V

RETROALIMENTACION 1-3 aciertos. Los conocimientos obtenidos no fueron suficientes, debes revisar nuevamente el contenido de la unidad. 4-5 aciertos. Tienes un conocimiento claro de los conceptos manejados en la Unidad.Sigue adelante.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

32

32

Computacin I
Unidad 1. Informtica
Evidencia de Aprendizaje. Presentacin de Resultados
Al finalizar esta actividad sers capaz de utilizar los modelos del ciclo de vida del software para desarrollar aplicaciones. De acuerdo a lo descrito en el tema 1.3. Ciclo de Vida del Software: 1. Elabora un reporte que llevar por nombre Utilizacin de modelos del ciclo de vida del software. a. Especifica una aplicacin de software que te gustara desarrollar y que resuelva algn problema. b. Selecciona uno de los modelos (en cascada, en cascada con retroalimentacin o en V) y desarrolla detalladamente cada una de sus etapas para la aplicacin que especificaste c. Agrega comentarios que expliquen claramente a un lector de tu reporte lo que ocurre dentro de cada etapa. d. Explica cmo podran llevarse a cabo las pruebas. e. Menciona los problemas que, segn tu criterio, podran encontrarse y cmo podran resolverse. f. Justifica la razn de tu seleccin de modelo. g. Debers obtener al final un documento que explique claramente a un lector lo que debe hacer para desarrollar adecuadamente una aplicacin como la que especificaste. 2. Guarda tu documento con la nomenclatura CI_U1_EA_XXYZ. Y enva tu archivo al Portafolio de evidencias. 3. Espera la retroalimentacin de tu Facilitador(a), atiende sus comentarios y reenva la nueva versin de tu evidencia, en caso de que sea requerido.
4.

Consulta la Escala de Evaluacin para conocer los criterios con que ser evaluado tu trabajo.

Cierre de la Unidad
En esta unidad se estudiaron los fundamentos de la informtica, as como la historia de la creacin y evolucin de las computadoras. Se discuti acerca del contexto actual de la informtica incluyendo la participacin del elemento humano. Se discuti cmo algunos de los pioneros de la informtica propusieron diseos que an hoy en da se utilizan para construir computadoras. Conociste algunos detalles de cmo se ejecutan los programas en una computadora y cmo se almacenan los datos y programas. Aprendiste finalmente acerca del ciclo de vida de desarrollo de software, un proceso sistemtico basado en modelos que puedes utilizar para desarrollar programas o sistemas de propsito especfico eficaces y de alta calidad.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

33

33

Computacin I
Unidad 1. Informtica
Para saber ms
Consulta los siguientes links: Acerca de ENIAC: http://www.seas.upenn.edu/about-seas/eniac/ Acerca de EDVAC: http://www.youtube.com/watch?v=jhlSEIbxO0E Acerca de von Newmann: http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/199899/game-theory/neumann.html Acerca de ingeniera de software: http://www.google.com/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&cad=rja&ved=0CC0QFjAA&u rl=http%3A%2F%2Finfolab.stanford.edu%2F~burback%2Fwatersluice%2Fwatersluice.pdf&ei=VryBUM6DB 8Oo2wW14oG4BQ&usg=AFQjCNHlEEg4qXEUpdB3gXXD6cK-DGiyPw&sig2=PzFA4gAE5IFaiGm1ZBauqQ

Fuentes de consulta
Stair, R., & Reynolds, G. (2012). Principles of Information Systems. (10th ed.). Boston: Cengage Learning. Karumanchi, N. (2011). Data Structures and Algorithms Made Easy (New. ed.). Bombay: CareerMonk Publications. Tanenbaum, A.(2000). Organizacin de Computadoras -Un Enfoque Estructurado. (7. Ed.). Mxico: Prentice Hall Hispanoamericana, S.A. Godfrey, M. Introduction to The First Draft Report on the EDVAC. IEEE Annals of the History of Computing, Vol. 15, No. 4, pp.27-75, 1993. Mano, M.(1982). Lgica digital y Diseo de Computadores. (1. Impres.). Espaa: Prentice-Hall International.

Educacin Abierta y a Distancia * Ciencias Exactas, Ingenieras y Tecnologas

34

34

Вам также может понравиться