c.prop. introduccion a la ingenieria en sistemas computacionales

39
CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011 DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 1 - MODULO I: INTRODUCCION A LA INGENIERIA EN SISTEMAS COMPUTACIONALES 1. Antecedentes de la computación 2. Antecedentes de las medidas de almacenamiento 3. Medidas de la unidad básica de almacenamiento de información 4. Abreviaturas/Símbolos de las medidas 5. Introducción a la carrera y diferencia entre otras del mismo perfil 6. Recorrido por el retícula de ISC Antecedentes de la computación 1. Babilonios (El Ábaco) La historia del ábaco se remonta a la época cuando el hombre se hizo agricultor y se dedicó al comercio. De ahí surgió la necesidad de contar. Ayudado por sus dedos y por pequeñas piedras más tarde idearía el ábaco. El ábaco parece haber sido inventado por diferentes civilizaciones, de manera independiente, como la etrusca, hindú, egipcia, griega, china y azteca. Pero se le atribuye tanto a los babilonios (aproximadamente 3.500 a.C ) como a los chinos (1.300 a.C). El mas antiguo que se conoce se remonta al 3500 a. C. Su nombre proviene del griego abakos que significa superficie plana. Constituye el primer dispositivo manual de cálculo. Servía para representar números en el sistema decimal y contar, permitiendo la realización de operaciones aritméticas sencillas.

Upload: luswi-torres

Post on 07-Dec-2014

36 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 1 -

MODULO I: INTRODUCCION A LA INGENIERIA EN SISTEMAS COMPUTACIONALES

1. Antecedentes de la computación 2. Antecedentes de las medidas de almacenamiento

3. Medidas de la unidad básica de almacenamiento de información 4. Abreviaturas/Símbolos de las medidas

5. Introducción a la carrera y diferencia entre otras del mismo perfil 6. Recorrido por el retícula de ISC

Antecedentes de la computación 1. Babilonios (El Ábaco) La historia del ábaco se remonta a la época cuando el hombre se hizo agricultor y se dedicó al comercio. De ahí surgió la necesidad de contar. Ayudado por sus dedos y por pequeñas piedras más tarde idearía el ábaco. El ábaco parece haber sido inventado por diferentes civilizaciones, de manera independiente, como la etrusca, hindú, egipcia, griega, china y azteca. Pero se le atribuye tanto a los babilonios (aproximadamente 3.500 a.C ) como a los chinos (1.300 a.C). El mas antiguo que se conoce se remonta al 3500 a. C. Su nombre proviene del griego abakos que significa superficie plana. Constituye el primer dispositivo manual de cálculo. Servía para representar números en el sistema decimal y contar, permitiendo la realización de operaciones aritméticas sencillas.

Page 2: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 2 -

2. Blas Pascal (La Pascalina )

El filósofo y matemático francés Blas Pascal (1623-1662) inventó y construyó la primera sumadora mecánica. Se le llamo Pascalina, aquel dispositivo utilizaba una serie de ruedas de diez dientes en Las que cada uno de los dientes representaba un dígito del 0 al 9. Las ruedas estaban conectadas de tal manera que podían sumarse números haciéndolas avanzar el número de dientes correcto.

Fue el primero en diseñar y construir una máquina sumadora. Quería ayudar a su padre, quien era cobrador de impuestos, con los cálculos aritméticos. La máquina era mecánica y tenía un sistema de engranes cada uno con 10 dientes; en cada diente había grabado un dígito entre el 0 y el 9. Así para representar un número, el engrane del extremo derecho se movía hasta tener el dígito de las unidades, el engrane que le seguía a la izquierda tenía el dígito de las decenas, el siguiente el de las centenas y así sucesivamente. Los números se representaban en la máquina como nosotros lo hacemos en notación decimal. Para realizar una suma o una resta, se activaba el sistema de engranes que hacía girar cada uno de ellos. Comenzaba por el extremo derecho y seguía, uno por uno, hacia la izquierda. Cuando la suma en un engrane excedía el número 9, automáticamente el engrane inmediato a la izquierda se movía un décimo de vuelta aumentando en 1 la cantidad que representaba. Así Blaise Pascal logró resolver el problema del acarreo de dígitos para las máquinas sumadoras y obtuvo una máquina que podía sumar cualquier par de números.

Blas Pascal

La pascalina

Page 3: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 3 -

En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar. El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo de población de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos. 4. Charles Babbage (La máquina analítica)

En el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas,

una memoria para guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer permanente el registro. Sus máquinas y su legado El Babbage del que todo mundo ha leído es, sin embargo, el inventor fracasado que se pasó toda su vida intentando construir la primera computadora de uso general de la historia y que, pese a haber fracasado, hizo aportaciones muy significativas al desarrollo de la informática.Wilkes nos ofrece quizá una de las

Charles Babbage

Page 4: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 4 -

visiones menos apasionadas del genio de Babbage, y nos hace ver que realmente la primera máquina que Babbage intentaba construir, llamada Máquina Diferencial (Difference Engine) sólo era capaz de tabular polinomios, y que requería, de cualquier manera, bastante trabajo con lápiz y papel. La idea no era realmente tan buena como Babbage pensaba, pero él nunca lo hubiera admitido. Realmente, la aportación clave de Babbage a la computación moderna vino con su siguiente máquina: La Máquina Analítica (Analytical Engine), el cual, de haberse construido, habría sido efectivamente la primera computadora de uso general de la historia. Babbage empezó a trabajar en este nuevo proyecto en 1834, pese a su fracaso con su máquina anterior, y continuó haciéndolo durante toda su vida. Su modelo fue refinado muchas veces, y a lo largo de este proceso, Babbage tuvo muchas ideas visionarias sobre las computadoras. Por ejemplo, sugirió el uso de tarjetas perforadas para controlar su máquina, y anticipó el uso de las mismas para representar un algoritmo e incluso inventó el concepto de bucles o ciclos en programación. También anticipó el uso de microprogramación, aunque dejó huecos importantes en su trabajo, y falló en anticipar cuestiones tan obvias hoy en día como es el uso de variables en un programa. Todo este trabajo, habría permanecido prácticamente desconocido por años de no haber sido por Ada, Condesa de Lovelace, la hija del famoso poeta Lord Byron. Se ha llegado a decir sobre la Máquina Analítica, que sería injusto afirmar que Babbage fracasó también en su intento por construirla, pues nunca intentó realmente hacerlo, sabedor de que resultaría prácticamente imposible volver a conseguir fondos para financiar tal proyecto.

Se sabe que Babbage nunca recibió remuneración alguna por su trabajo de 10 años en la Máquina Diferencial, por lo que el Parlamento Inglés decidió ofrecerle un título de nobleza a cambio (le ofrecieron el título de Barón) Babbage rehusó aceptarlo, pidiendo mejor una pensión vitalicia que nunca le fue concedida. ¿Un error de apreciación? No realmente, si consideramos que lo que realmente recibió a cambió del trabajo de toda una vida fue algo más valioso que cualquier

título de nobleza: un sitio privilegiado en la historia de la informática, el de padre de la computación moderna.

Page 5: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 5 -

Gottfried Wihelm Leibniz (Sistema Binario)

Demostró las ventajas de utilizar el sistema binario en lugar del decimal en las computadoras mecánicas. Inventó y construyó una máquina aritmética que realizaba las cuatro operaciones básicas y calculaba raíces cuadradas. Leibniz ha sido uno de los más grandes matemáticos de la historia, se le reconoce como uno de los creadores del Cálculo Diferencial e Integral; pero fue un hombre universal que trabajó en varias disciplinas: lógica, mecánica, geología, jurisprudencia, historia, lingüística y teología. Inventó una máquina aritmética que empezó a diseñar en 1671 y terminó de construir en 1694; era una máquina mucho más avanzada que la que había inventado Pascal y a la que llamó "calculadora secuencial o por pasos". La máquina no sólo sumaba

y restaba, sino que además podía multiplicar, dividir y sacar raíz cuadrada. Sin embargo, en esa época el desarrollo de la técnica no se encontraba en condiciones de producir en serie las piezas de gran precisión indispensables para el funcionamiento de la máquina. El modelo que construyó Leibniz nunca funcionó correctamente; sin embargo, en 1794 se construyó un modelo funcional de la calculadora de Leibniz que actualmente se exhibe en la Real Sociedad de Londres. Esta última máquina tampoco resultó confiable y no fue sino hasta 1820 cuando se fabricó un aparato infalible y comercial capaz de realizar las cuatro operaciones aritméticas fundamentales.

Page 6: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 6 -

John Von Neumann (ENIAC)

Con el advenimiento de la Segunda Guerra Mundial, von Neumann hubo de abandonar sus estudios en matemáticas puras, y concentrarse en problemas más prácticos para servir al Gobierno del que ahora era nacional. Fue consultor en proyectos de balística, en ondas de detonación, y eventualmente, se involucró en el desarrollo de la bomba atómica, en donde demostró la factibilidad de la técnica de implosión que más tarde se usaría en la bomba que detonó en Nagasaki.

Sin embargo, debido a su valía como consultor en otras agencias gubernamentales ligadas a la guerra, von Neumann fue uno de los pocos científicos a quien no se le requirió permanecer de tiempo completo. En 1944 sólo había unos pocos proyectos para desarrollar computadoras en los Estados Unidos: Howard Aiken en Harvard, George Stibitz en Laboratorios Bell, Jan Schilt en la Universidad Columbia, y Presper Eckert y John W. Mauchly, en la Universidad de Pennsylvania. Aunque von Neumann contactó a los 3 primeros científicos y estuvo en contacto con sus máquinas, la única computadora con la que realmente se involucró a fondo fue la última, llamada ENIAC (Electronic Numerical Integrator and Computer), que durante mucho tiempo fue ignorada por la comunidad científica, y que con el apoyo de von Neumann fue finalmente tomada en serio hasta convertirse en un proyecto de primera línea. Curiosamente, la ENIAC tenía una arquitectura en paralelo, aunque casi carecía de memoria (sólo podía almacenar 20 palabras), y otra máquina más ambiciosa, llamada EDVAC (Electronic Discrete Variable Arithmetic Computer) nació del deseo de sus diseñadores de construir una máquina "más útil" que operara en serie. Sus Últimos Años Debido a los tropiezos que tuvo inicialmente para conseguir dinero para construir su computadora, varias universidades le ofrecieron trabajo a von Neumann después de la guerra, y aunque estuvo cerca de aceptar al menos una de estas ofertas, fue leal al IEA, y finalmente logró conseguir los fondos que necesitaba para su proyecto con ayuda de Princeton y la RCA. Su idea era construir una máquina similar a EDVAC pero más poderosa y más rápida. La computadora IAS

Page 7: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 7 -

fue eventualmente construida en los 50s, y su diseño ha servido como inspiración para la mayoría de las computadoras modernas. En octubre sirvió como consultor para la IBM, en donde conoció a John Backus mientras desarrollaba el FORTRAN. Curiosamente, von Neumann diseño el trabajo de Backus pensando que nadie requeriría jamás usar un lenguaje de programación de más alto nivel que el lenguaje binario que él tan bien conocía.

Generaciones de las Computadoras

Todo este desarrollo de las computadoras suele dividirse por generaciones.

Primera Generación (1951-1958)

En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características:

• Usaban tubos al vacío para procesar información. • Usaban tarjetas perforadas para entrar los datos y los programas. • Usaban cilindros magnéticos para almacenar información e instrucciones

internas. • Eran sumamente grandes, utilizaban gran cantidad de electricidad,

generaban gran cantidad de calor y eran sumamente lentas. • Se comenzó a utilizar el sistema binario para representar los datos.

En esta generación las máquinas son grandes y costosas (de un costo aproximado de 10,000 dólares).

La primera generación de computadoras y a sus antecesores, se describen en la siguiente lista de los principales modelos de que constó:

1947 ENIAC. Primera computadora digital electrónica de la historia. No fue modelo de producción, sino una maquina experimental. Tampoco era programable en el

Page 8: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 8 -

sentido actual. Se trataba de un enorme aparato que ocupa todo un sótano en la universidad. Constaban de 18 000 bulbos, consumía varios KW de potencia eléctrica y pesaba algunas toneladas. Era capaz de efectuar cinco mil sumas por segundo. Fue echa por un equipo de ingenieros y científicos encabezados por los doctores John W. Mauchly y J. Prester Eckert en la universidad de Pennsylvania, en los Estados Unidos.

1949 EDVAC. Primera computadora programable. También fue un prototipo de laboratorio, pero ya incluía en sí diseño las ideas centrales que conforman a las computadoras actuales. Incorporaba las ideas del doctor John von Neumann.

1951 UNIVAC I. Primera computadora comercial. Los doctores Mauchly y Eckert fundaron la compañía Universal Computer (Univac), y su primer producto fue esta máquina. El primer cliente fue la oficina del censo de Estados Unidos.

1953 IBM 701. Para introducir los datos, estos equipos empleaban el concepto de tarjetas perforadas, que había, sido inventada en los años de la revolución industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionado por el estadounidense Hermand Hollerith en 1890. La IBM 701 fue la primera de una larga serie de computadoras de esta compañía, que luego se convertiría en la número 1 por su volumen de ventas.

1954 - IBM continuó con otros modelos, que incorporaban un mecanismo de 1960 almacenamiento masivo llamado tambor magnético, que con los años evolucionaría y se convertiría en disco magnético.

Segunda Generación (1958-1964)

No fue sino hacia finales de los años 50 que los transistores reemplazaron a los bulbos en los circuitos de las computadoras. En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas computadoras se programaban con cinta perforadas.

Características de está generación:

Page 9: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 9 -

• Usaban transistores para procesar información. • Los transistores eran más rápidos, pequeños y más confiables que los

tubos al vacío. • 200 transistores podían acomodarse en la misma cantidad de espacio que

un tubo al vacío. • Se mejoraron los programas de computadoras que fueron desarrollados

durante la primera generación. • Se desarrollaron nuevos lenguajes de programación como COBOL y

FORTRAN, los cuales eran comercialmente accsesibles. • Se usaban en aplicaciones de sistemas de reservaciones de líneas aéreas,

control del tráfico aéreo y simulaciones de propósito general. • Surgieron las minicomputadoras y los terminales a distancia. • Se comenzó a disminuir el tamaño de las computadoras.

Tercera Generación (1964-1971)

La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. El ordenador IBM-360 dominó las ventas de la tercera generación de ordenadores desde su presentación en 1965. Características de está

generación:

• Se desarrollaron circuitos integrados para procesar información. • Se desarrollaron los "chips" para almacenar y procesar la información. Un

"chip" es una pieza de silicio que contiene los componentes electrónicos en miniatura llamados semiconductores.

• Los circuitos integrados recuerdan los datos, ya que almacenan la información como cargas eléctricas.

• Surge la multiprogramación. • Las computadoras pueden llevar a cabo ambas tareas de procesamiento o

análisis matemáticos. • Se desarrollan las minicomputadoras IBM 360 y DEC PDP-1. • Otra vez las computadoras se tornan más pequeñas, más ligeras y más

eficientes.

Page 10: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 10 -

• Consumían menos electricidad, por lo tanto, generaban menos calor.

Cuarta Generación (1971-1988)

Aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las

computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática".

Características de está generación:

• Se desarrolló el microprocesador. • Se colocan más circuitos dentro de un "chip". • Se reemplaza la memoria de anillos magnéticos por la memoria de "chips"

de silicio. • Se desarrollan las microcomputadoras, o sea, computadoras personales o

PC. • Se desarrollan las supercomputadoras.

Quinta Generación y la inteligencia artificial (1983 al presente)

En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados.

Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras", con los objetivos explícitos de producir máquinas con

Page 11: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 11 -

innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera:

• Se desarrollan las microcomputadoras, o sea, computadoras personales o PC.

• Se desarrollan las supercomputadoras.

Inteligencia artificial:

El propósito de la Inteligencia Artificial es equipar a las Computadoras con "Inteligencia Humana" y con la capacidad de razonar para encontrar soluciones.

Robótica:

La robótica es el arte y ciencia de la creación y empleo de robots. Un robot es un sistema de computación híbrido independiente que realiza actividades físicas y de cálculo. Están siendo diseñados con inteligencia artificial, para que puedan responder de manera más efectiva a situaciones no estructuradas. Antecedentes de las unidades de almacenamiento Un dispositivo de almacenamiento es cualquier cosa, instrumento o máquina, capaz de almacenar datos o cualquier tipo de información. Históricamente se ha usado el papel como método más común, pero actualmente es posible almacenar digitalmente en un CD por ejemplo, los datos que cabrían en miles de carpetas archivadas. A lo largo de la historia se ha buscado el camino de encontrar el sistema más pequeño físicamente y con más capacidad para almacenar más datos y tratarlos rápidamente. Nomenclatura de las capacidades de almacenamiento: BIT: representa la mínima unidad de almacenamiento de tal forma que un BIT encendido para la computadora es un (1) y u n BIT apagado es (0). BYTE: Es un paquete de 8 bits, equivalente a un carácter. KILOBYTE: Equivale a 1,024 bytes y su símbolo es Kb. MEGABYTE: Corresponde a 1,000,000 de bytes y se abrevia Mb. GIGABYTE: Son mil millones de bytes y su nomenclatura es Gb.

En la historia se han buscado formas y sistemas para solucionar problemas de manera lo más rápida y eficiente posible. Desde hace miles de años, existen las

Page 12: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 12 -

operaciones y problemas matemáticas. Lo más normal es hacerlo a mano, pero hace unos 5.000 años se inventó el ábaco. Con él se permitía hacer cuentas con más seguridad y menos riesgo de error.

Fue Blaise Pascal quien en el siglo XVII con tan solo 19 años de edad inventó la primera calculadora del mundo. La llamó Pascalina.

A lo largo del siglo XX se ha buscado la manera de almacenar cualquier cosa en el lugar más pequeño posible. Las tarjetas perforadoras fueron el comienzo de los dispositivos de almacenamiento.

Tarjeta perforada Una tarjeta perforada es una cartulina que puede tener diversos tamaños. Esta cartulina, como su nombre indica, está perforada con agujeros en determinadas posiciones. El sistema de perforación es el sistema binario, basado en ceros y unos. Una máquina las lee y va procesando información, si detecta una perforación, se supone que es un 1, y si no, un 0. Así se va procesando la información en binario. Si queremos por ejemplo almacenar los datos de una persona, podríamos pasar todos sus datos escritos a binario, y una vez en binario, hacer las perforaciones necesarias en la tarjeta.

Esta tarjeta es pues un sistema de almacenamiento. Se puede decir que es la precursora de los cds por ejemplo, pues los cds usan un sistema parecido pero leído por láser y a niveles microscópicos.

Este método permite que la máquina lea, almacene o reconozca datos de manera rápida y automática, algo que aligeraba el trabajo. Sin embargo, estas tarjetas, que se pusieron de moda entre los años 50 y 70, han caído en desuso debido al gran avance en la informática.

Page 13: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 13 -

Sistemas magnéticos

Durante esta época, se evolucionó un poco en los sistemas de almacenamiento. Se diseñaron cintas magnéticas perforadas. Venían a ser lo mismo que las tarjetas perforadas, pero mejoradas. La máquina que lee la cinta magnética la reconoce por medio del magnetismo, como su nombre indica. Si encuentra una perforación no hay magnetismo, por lo

que hay diferencias entre perforación o no. Era un sistema más fiable y cómodo. Las cintas magnéticas han sido muy importantes a lo largo de la historia, ya sea para almacenar datos informáticos en computadoras antiguas o en sistema de sonido, como los casetes, o incluso las cintas de vídeo. También son especialmente importantes en las tarjetas de crédito y similares, pues en una simple barra magnética incluida en la tarjeta, se almacenan todos los datos necesarios para ser procesados por el cajero o cualquier otro computador especializado para este fin.

Microchip

También conocido como circuito integrado. Se desarrolló por primera vez en 1958 por el ingeniero Jack Kilby justo meses después de haber sido contratado por la firma Texas Instruments.

Se trataba de un dispositivo de germanio que integraba seis transistores en una misma base semiconductora para formar un oscilador de rotación de fase. En el año 2000, Kilby obtuvo el Premio Nobel de Física por la contribución de su invento al desarrollo de la tecnología de la información.

Page 14: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 14 -

Un microchip es una pastilla muy delgada donde se encuentran miles o millones de dispositivos electrónicos interconectados, principalmente diodos y transistores, y también componentes pasivos como resistencia o capacitores. Su área puede ser de 1cm o inferior. Los microchips son quizás los sistemas de almacenamiento más empleados, hoy en día se utilizan además de en los ordenadores, en los teléfonos móviles, electrodomésticos, juguetes con algún componente electrónico, etc.

El desarrollo del microchip es especialmente importante en la historia, pues es algo increíblemente pequeño que puede almacenar cantidad de datos inmensas, que hace años era impensable. Se necesita un desarrollo a nivel microscópico para diseñar los microchips.

El primer ordenador que usó microchips fue un IBM lanzado en 1965, llamado serie 360. Estas computadoras se consideran de la tercera generación de computadoras, y sustituyeron por completo a las de segunda generación, introduciendo una manera de programar que aún se mantiene en grandes computadoras de IBM.

Memoria RAM

RAM es el acrónimo inglés de Random Access Memory (memoria de acceso aleatorio). Es una memoria de semiconductor, en la que se puede tanto leer como escribir información. Es una memoria volátil, es decir, pierde su contenido al desconectarse de la electricidad.

La memoria RAM es el componente de almacenamiento más importante de una

computadora actual, junto al disco duro.

Con la llegada de las computadoras de escritorio, había que idear un sistema de almacenamiento que no ocupara espacio, pues los ordenadores de escritorio se idearon para que cupiesen en una mesa de oficina. La memoria RAM se forma a

Page 15: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 15 -

partir de microchips con entradas de memoria. La memoria es almacenada en esas entradas de manera aleatoria, de ahí su nombre. La memoria RAM es uno de los componentes informáticos que más ha evolucionado en los últimos veinte años.

Si a finales de los 80 la capacidad de las memorias RAM rondaban los 4 mb, ahora lo normal es comprarse una computadora con al menos 1024 mb, (1 gb). Normalmente se ha ido avanzando en una cantidad de mb igual a potencias de 2. A mediados de los 90, con la llegada de Windows 95, los ordenadores comenzaron a usar memorias de 16 mb de RAM, más tarde de 32, 64, 128... hasta los Pentium IV y usando Windows XP, en donde se recomienda al menos 256 mb de RAM, aunque hoy en día lo normal es que usen 1 gigabyte o más.

Disco duro

Los discos duros se emplean en computadoras de escritorio, portátiles y unidades de almacenamiento de manejo más complejo. El disco duro es el componente que se encarga de almacenar todos los datos que queremos. Mientras que la memoria RAM actúa como memoria "de apoyo" (como variable que almacena y pierde información según se van procesando datos), el disco duro almacena permanentemente la información que le metemos, hasta que es borrado. Generalmente, lo primero que

se graba en un disco duro es el sistema operativo que vamos a usar en nuestra computadora. Una vez tenemos instalado el sistema operativo en el disco duro, podemos usar todos los programas que queramos que hayan instalados, y toda la información que queramos guardar se almacenará en el disco duro. En el disco duro almacenamos cualquier cosa, como documentos, imagen, sonido, programas, vídeos, archivos, etc.

Los discos duros también han evolucionado muchísimo en los últimos veinte años, sobre todo ampliando su capacidad.

Page 16: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 16 -

Por poner un ejemplo, con los primeros Windows 95 los discos duros solían tener 1 gb de capacidad. Hoy en día lo normal es comprar un ordenador con un disco duro en torno a los 200 gb de capacidad y más.

Existen además los discos duros portátiles. Su función y características son las mismas, con la particularidad de que pueden ser transportados a cualquier parte. En realidad un disco duro cualquiera puede ser desconectado de su computadora y conectado a otro, pero es una tarea ardua y complicada, pues se necesita abrir la computadora y tocar muchos cables.

Con los discos duros portátiles, que van incluidos en una carcasa, basta con conectarlos por puerto USB o similar a un computadora cualquiera y actuar como disco duro normal.

Dispositivos portátiles

Además de los dispositivos fijos que existen como componentes en una computadora, hay otros que pueden introducirse y sacarse en cualquier ordenador. Estos sistemas son realmente útiles para transportar información entre dos o más computadoras.

• Disquete

También llamado disco flexible (floppy disk en inglés). A simple vista es una pieza cuadrada de plástico, en cuyo interior se encuentra el disco propiamente disco. Es un disco circular flexible y magnético, bastante frágil. Los disquetes se introducen en la computadora mediante la disquetera.

El disquete es un sistema de almacenamiento magnético, al igual que los casetes o los discos duros, y aunque han gozado de gran popularidad

desde los 80 hasta ahora, últimamente no se están usando demasiado. De hecho, algunas computadoras ya salen de fábrica sin disquetera, pues los disquetes se han quedado pequeños en cuanto a capacidad y velocidad.

Page 17: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 17 -

Teniendo en cuenta lo que ocupan los programas actuales, un disquete hoy en día solo sirve para almacenar algunos documentos de texto, imágenes y presentaciones.

• CD-ROM Es un disco compacto (del inglés: Compact Disc - Read Only Memory). Se trata de un disco compacto (no flexible como los disquetes) óptico utilizado para almacenar información no volátil, es decir, la información introducida en un CD en principio no se puede borrar. Una vez un CD es escrito, no puede ser modificado, sólo leído (de ahí su nombre, Read Only Memory).

Un CD-ROM es un disco de plástico plano con información digital codificada en espiral desde el centro hasta el borde. Fueron lanzados a mediados de los 80 por compañías de prestigio como Sony y Philips. Microsoft y Apple fueron dos de las grandes compañías informáticas que la utilizaron en sus comienzos. Se trata quizás del dispositivo de almacenamiento más utilizado en los últimos veinte años. De hecho, fue el sustituto de los casetes para almacenar música, y de los disquetes para almacenar otro tipo de datos.

Hay varios tipos de CD-ROM. Los clásicos miden unos 12 centímetros de diámetro, y generalmente pueden almacenar 650 o 700mb de información. Sin embargo en los últimos años también se han diseñado CD-ROMS con capacidades de 800 o 900 mb. Si tenemos en cuenta la capacidad en minutos de música, serían 80 minutos los de 700 mb, por ejemplo. También existen discos de 8 cm con menos capacidad, pero ideales para almacenar software relativamente pequeño en el que no es necesario malgastar un CD y dejar espacio sin grabar. Generalmente se utilizan para grabar software, drivers, etc. de periféricos o similares, aunque también se usan para transportar datos normalmente como los CDs normales.

Page 18: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 18 -

• DVD

El crecimiento tecnológico en la informática es tal que incluso los CDs se han quedado pequeños. Si hace 10 años los disquetes se habían quedado pequeño y parecía que un CD era algo demasiado "grande", algo ha cambiado, pues todas las aplicaciones, ya sean programas, sistemas operativos o videojuegos, ocupan mucha más memoria. De los tradicionales 700mb de capacidad de un CD se pasaron a los 4,7 gb de un DVD. La primera ráfaga de ventas de dvds apareció para formato vídeo, para sustituir a los clásicos VHS. Las ventajas de los DVD eran claras, a más capacidad, mejor calidad se puede almacenar. Y mejor se conservan los datos, ya que las cintas magnéticas de las videocasetes eran fácilmente desgastables. Un DVD es mucho más duradero, su calidad de imagen es mejor y también la calidad de sonido. Las películas en DVD comenzaron a popularizarse a finales de los años 90.

Los DVD son más caros que los CDs, aunque poco a poco se están haciendo con el mercado. Quizás sean los sustitutos definitivos de los CDs, aunque por ahora estos últimos no están decayendo en absoluto.

Sin embargo se ha disparado la venta de DVD, pues cada vez más la gente empieza a grabar más datos y lógicamente se busca el menor espacio posible. Y si en un DVD se pueden almacenar seis películas, mejor que usar seis CDs.

• Memoria USB

La memoria USB fue inventada en 1998 por IBM, pero no fue patentada por él. Su objetivo era sustituir a los disquetes con mucha más capacidad y velocidad de transmisión de datos. Aunque actualmente en un CD o DVD se puede almacenar memoria para luego borrarla y manipularla, lo más cómodo y usado son las memorias USB.

Page 19: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 19 -

Son pequeños dispositivos del tamaño de un mechero que actúan prácticamente igual que un disquete, pero con una capacidad mucho mayor, que actualmente van desde los 64 mb a varios gigabytes. Su principal ventaja es su pequeño tamaño, su resistencia (la memoria en sí está protegida por una carcasa de plástico como un mechero) y su velocidad de transmisión, mucho más rápido que los disquetes.

Actualmente está muy de moda este tipo de dispositivos, sobre todo entre jóvenes u oficinistas, pues gracias a su reducido tamaño y forma puede colgarse como llavero por ejemplo, y lo más importante, con el sistema operativo Windows XP, sólo hay que conectarlo al ordenador y usarlo sin más complicaciones. Además existen otros aparatos como los reproductores de MP3 que utilizan las mismas características. Pueden almacenar cualquier tipo de dato, pero su principal característica es que los archivos de música en formato mp3 y wma sobre todo, son reconocidos y procesados para ser escuchados a través de unos audioculares conectados al aparato. Esto es pues, un sustituto del walkman. Pero además cada vez están apareciendo nuevos diseños que son capaces de almacenar ya decenas de gigabytes (miles de canciones) y también vídeo, que con una pequeña pantalla pueden ser visualizados.

Page 20: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 20 -

Introducción a la carrera de ISC y diferencia del mismo diferencia entre otras del mismo perfil. Objetivo: Formar profesionales de manera integral con capacidad analítica, crítica, creativa y de liderazgo que aporten soluciones computacionales en las organizaciones, aplicando las tecnologías de información y de las comunicaciones, comprometidos con su entorno.

Perfil de ingreso: Habilidades: confianza en si mismo, de comunicarse adecuadamente en forma oral y escrita, capacidad de observación y reflexión, ser proactivo, disposición para enfrentar retos, facilidad para trabajar en equipo e individualmente, y ser flexible al realizar sus actividades. Conocimientos: matemáticos, estadísticas, administración, contabilidad e informática, y cultura general. Valores y actitudes: autoestima, espíritu de servicio, puntualidad, ética, responsabilidad, respeto, compromiso, honestidad y respetuoso del medio ambiente.

¿Por qué Ser Ingeniero en Sistemas Computacionales?

Porque tendrás una visión completa de la informática moderna y esto te permitirá convertirte en motor de cambio en cualquier organización en la que te desempeñes además de moverte con facilidad en los aspectos teóricos y prácticos de la nueva Ingeniería en Sistemas para proponer e implementar soluciones efectivas a los innumerables problemas que enfrenta nuestra sociedad.

Perfil del egresado

• Analizar, desarrollar y programar modelos matemáticos, estadísticos y de simulación.

• Reconocer y guiarse por los aspectos sociales, profesionales y éticos en su entorno.

• Dirigir y coordinar equipos de trabajo multi e interdisciplinarios. • Coordinar y realizar investigaciones que fortalezcan el desarrollo cultural,

científico y tecnológico. • Aplicar nuevas tecnologías a la solución de problemas de su entorno

laboral. • Desarrollar y administrar sistemas de información, redes de computadoras y

aplicaciones distribuidas.

Page 21: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 21 -

• Poseer una visión empresarial y detectar áreas de oportunidad para emprender y desarrollar proyectos aplicando las tecnologías de información y de las comunicaciones.

• Seleccionar y administrar los Recursos Humanos y computacionales para unidades de servicios de cómputo.

• Estar comprometido con el desarrollo sustentable, respetando el entorno social y cultural donde se desarrollar las organizaciones.

• Desarrollar y administrar software de aplicación y de base. • Desarrollar interfases Hombre-Máquina. • Desarrollar e integrar soluciones de arquitectura básica máquina-máquina. • Proporcionar consultoría a usuarios de diferentes niveles en una

organización. • Conocer y aplicar las normas y estándares correspondientes a las

tecnologías de información y de las comunicaciones. • Identificar riesgos y aplicar esquemas de seguridad en las tecnologías de

información y de las comunicaciones. • Comprender y aplicar los aspectos legales del uso y explotación de los

sistemas computacionales.

Diferencias con otras carreras del mismo perfil

Una Carrera en Informática (Licenciatura en Informática), tiene una inclinación más científica y abstracta.

Una Carrera en Ingeniería (Ingeniería de Sistemas Computacionales) tiene un enfoque más práctico y aplicado.

Importante: Estas apreciaciones iniciales no significan que se dedican solamente a eso, simplemente marca cuál es el campo al que se le da mayor importancia.

En el caso particular de nuestra carrera, pretendemos hacer un énfasis bastante importante en los componentes prácticos. Partimos del principio de que de nada nos sirve un profesional con excelentes conocimientos teóricos, pero que llegado el momento no sabe cómo aplicarlos. Con materias como Cableado estructurado, Redes de computadoras, desarrollo de proyectos de software (entre otros), el estudiante se ve confrontado a escenarios muy similares a los que encontrará en la vida real, recibiendo entonces una formación integral: teórica y práctica (aplicada).

Page 22: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 22 -

La Carrera ha sido diseñada para facilitar a nuestros estudiantes una rápida inserción profesional, respondiendo las exigentes demandas del mercado laboral, no solamente local. En este sentido, nuestros estudiantes más allá de recibir una formación académica que les permite encontrar su primer trabajo, han desarrollado hábitos de estudio y trabajo que les permite mantenerse actualizados y vigentes en un mercado dinámico con la tecnología en constante evolución.

Practica: Entrar a la página del ITSPP y analizar el perfil de ingreso, egreso, objetivos así como el plan de estudios.

Page 23: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 23 -

MODULO II ALGORITMOS

1. Que es un algoritmo 2. Pasos de los algoritmos 3. Tipos de algoritmos 4. Diagrama de flujo, Ejercicios practicos

5. pseudocodigo, Ejercicios practicos

ANTECEDENTES DE ALGORITMO

La palabra algoritmo proviene del nombre del matemático llamado Muhammad ibn Musa al-Jwarizmi que vivió entre los siglos VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal logro no fuera el de crear nuevos teoremas o corrientes de pensamiento, sino el de simplificar la matemática a punto tal que pudieran ser comprendidas y aplicadas por un mayor número de personas. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos en vez de las manos (por ejemplo, ábacos). También estudió la manera de reducir las operaciones que formaban el cálculo. Es por esto que aún no siendo el creador del primer algoritmo, el concepto lleva aunque no su nombre, sí su pseudónimo.

Así, de la palabra algorismo, que originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos árabes, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas.

Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por muchos como la primera programadora

Page 24: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 24 -

aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.

La falta de rigor matemático en la definición de "procedimiento bien definido" para los algoritmos trajo algunas dificultades a los matemáticos y lógicos del siglo XIX y comienzos de XX. Este problema fue en gran parte resuelto con la descripción de la máquina de Turing, un modelo abstracto de computadora formulado por Alan Turing, y la demostración de que cualquier método anticipado por otros matemáticos que pueda encontrarse para describir "procedimientos bien definidos" puede ser emulado en una máquina de Turing (una afirmación conocida como "tesis de Church-Turing").

En la actualidad, el criterio formal para definir un algoritmo es que se trata de un proceso que puede implementarse en una máquina de Turing completamente especificada, o en alguno de los formalismos equivalentes. El interés original de Turing era el problema de la detención: decidir cuándo un algoritmo describe un procedimiento de terminación.

CONCEPTO DE ALGORITMO En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. Preciso: implica el orden de realización de cada uno de los pasos Definido: si se sigue dos veces, se obtiene el mismo resultado. Finito: Tiene un numero determinado de pasos, implica que tiene un fin,

El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema, el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo,

Page 25: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 25 -

estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.

Características de los algoritmos

El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:

1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".

2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".

3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".

4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".

5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito

Page 26: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 26 -

FORMAS DE ALGORITMOS ALGORITMOS DE ORDENAMIENTO

En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos. ALGORITMO DE BUSQUEDA

Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

Este problema puede reducirse a devolver la existencia de un número en un vector.

METODOS DE ALGORITMOS

Método Descripción Ejemplos

Algorítmico Utiliza un algoritmo y puede ser implementado en una computadora

• Instrucciones para manejar un vehículo

• Instrucciones para secar grano a granel

• Instrucciones para resolver ecuación de segundo grado

Page 27: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 27 -

Heurística: Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.

PASOS:

Pasos Etapa Descripción

1 Análisis del problema Conducen al diseño detallado por medio un código escrito en forma de un algoritmo

2 Diseño de algoritmo

3 Codificación Se implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las ideas desarrolladas en las etapas de análisis y diseño

4 Compilación y ejecución Traduce el programa fuente a programa en código de maquina y lo ejecuta.

5 Verificación Busca errores en las etapas anteriores y los elimina.

6 Depuración

7 Documentación Son comentarios, etiquetas de texto, que facilitan la comprensión del programa

Page 28: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 28 -

TIPOS DE ALGORITMOS:

Los algoritmos se pueden

expresar por:

Formulas c = a+b

Diagramas de flujo

Norte-Sur,Top-Down

Pseudo código inicio

leer a,b,c

calcular

escribir perímetro

fin

DIAGRAMAS DE FLUJO Concepto de Diagrama de Flujo Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para representar los pasos o etapas de un proceso. También permiten describir la secuencia de los distintos pasos o etapas y su interacción. Ventajas de los Diagramas de Flujo * Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto. * Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los reprocesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

Page 29: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 29 -

¿Qué Símbolos se Emplean en los Diagramas de Flujo? Los símbolos tienen significados específicos y se conectan por medio de flechas que indican el flujo entre los distintos pasos o etapas. Los símbolos más comunes son :

Page 30: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 30 -

EJEMPLO: Reparación de la PC (nivel MACRO)

Page 31: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 31 -

EJEMPLO: Reparación de la PC (nivel MICRO)

Page 32: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 32 -

EJERCICIOS PRACTICOS DE DIAGRAMAS DE FLUJO: ELABORAR LOS DIAGRAMAS DE FLUJO EN SU NIVEL MACRO Y MICRO DE: 1.- PROCESO DE INSCRIPCION EN EL ITSPP

2.- PROCESO DE PREPARACION PARA UN DIA DE CLASE

3.- PROCESO DE COMPRA DE MATERIALES PARA LA ESCUELA

4.- PROCESO PARA REALIZAR UNA TAREA EN LA PC 5.- ARMAR UN EQUIPO DE CÓMPUTO 6.- FUNCIONAMIENTO DE UN CD-ROM 7.- ENCENDIDO DE UNA PC 8.- FUNCIONAMIENTO DEL INTERNET Pseudo código

El pseudocódigo es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especial. Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.

En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe hacer, pasar a la programación propiamente dicha.

Page 33: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 33 -

Supongamos que tenemos un sistema para una empresa que utiliza una interfaz gráfica en Visual Basic, algunas aplicaciones específicas en C, y páginas PHP para trabajo vía Internet. Seguramente que crear un diagrama específico para cada lenguaje sería una tarea tediosa.

Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo, y mediante el pseudo código, cada programador sabrá lo que hace el sistema, y podrá escribir el código correspondiente.

Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos eficiente que la otra, pero todas cumplen con el objetivo.

El pseudocódigo elimina estas diferencias, dando libertad a los programadores para que puedan ajustarse a su metodología de trabajo.

Generalmente, este código se escribe con la participación de todos los programadores. Esto representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una solución efectiva y eficaz al problema planteado.

EJEMPLO:

Fragmento de un programa:

Pseudocódigo:

...

si (calificación ≥ 6)

inicio

imprimir (“ALUMNO APROBADO”)

Page 34: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 34 -

si (calificación ≥ 9)

imprimir (“TIENE CALIFICACIÓN SOBRESALIENTE”);

fin

sino

imprimir (“ALUMNO REPROBADO”);

...

Lenguaje C:

...

if (CALIF >= 6)

{

printf (“ALUMNO APROBADO \n”);

if (CALIF >= 9)

printf (“TIENE CALIFICACIÓN SOBRESALIENTE \n”);

}

else

printf (“ALUMNO REPROBADO \n” );

ejemplo:

EJEMPLO 3

Ejemplo que utiliza condiciones lógicas múltiples. El fragmento representa el cálculo de los impuestos de un trabajador en base a su edad o si es jubilado y si gana tres salarios mínimos o menos:

Pseudocódigo:

...

entero edad, SalarioMinimo

Page 35: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 35 -

flotante</&NBSP;&NBSP; p sueldo< impuestos,>

carácter trabajador

...

si (((edad ≥60) && (Trabajador=’JUBILADO’)) || (SalarioMinimo≤3))

Impuestos Sueldo * 0.10

sino

Impuestos Sueldo * 0.20

...

ULenguaje C:

...

int edad, SalMin;

float imp, sueldo;

char trabajar;

...

if (((edad >=60) || (trabajar= ‘j’)) && (SalMin <=3))

imp = sueldo * 0.1;

else

imp = sueldo * 0.2;

Page 36: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 36 -

MODULO III LENGUAJES DE PROGRAMACION

1. Que es un lenguaje de programación 2. Tipos de lenguajes de programación

3. Usos y aplicaciones de los lenguajes de programación

LENGUAJE DE PROGRAMACION

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Un lenguaje de programación es un conjunto limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar una computadora. A pesar de que en este trabajo parte de la división de lenguajes de programación en imperativos y declarativos, la clasificación más común y básica que suele hacerse de los lenguajes de programación es la que los divide en lenguajes de bajo y de alto nivel. Los lenguajes de programación de bajo nivel fueron los primeros que surgieron y se llaman así porque están directamente relacionados con el hardware del computador, es decir, el usuario introduce una serie de códigos numéricos que la máquina va a interpretar como instrucciones. Para usar este lenguaje, el programador tenía que conocer el funcionamiento de la máquina al más bajo nivel y los errores de programación eran muy frecuentes.

Los lenguajes de alto nivel surgieron con posterioridad con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina, facilitando la labor a los programadores. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: facilitar la vida al programador, aumentando la productividad. Estos lenguajes usan un número reducido de instrucciones (normalmente en inglés) que siguen unas estrictas reglas gramaticales que se conocen como

Page 37: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 37 -

sintaxis del lenguaje. Pero aunque el programador de esta forma se distancie del hardware del computador, este sigue trabajando en lenguaje máquina.

Por ello se hace necesaria una traducción a una secuencia de instrucciones interpretables por el computador. Esta labor es llevada a cabo por los compiladores y los intérpretes.

El compilador es un programa que se encarga de la traducción global del programa realizado por el usuario. Esta operación recibe el nombre de compilación. El programa es traducido completamente antes de que se ejecute, por lo que la ejecución se realiza en un periodo muy breve. El intérprete por el contrario lleva a cabo una traducción inmediata en el momento de la ejecución, es decir, irá ejecutando las instrucciones una a una haciendo que el proceso requiera un periodo de tiempo sensiblemente mayor del que necesitaría un compilador. Los intérpretes son usados para traducir programas de alta dificultad de implementación, en estos casos, las órdenes a traducir son de tal complejidad que no merece la pena crear un compilador ya que este también tendría que ser de una complejidad por encima de lo normal.

Hay que mencionar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Un ejemplo es C: contiene estructuras de programación de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, algunos consideran a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio, si bien, son considerados mayoritariamente de bajo nivel.

Aunque en esta introducción se ha comenzado a hablar de los lenguajes dividiéndolos en bajo y alto nivel, en las próximas páginas se procederá a un análisis más exhaustivo y detallado y se verán las numerosas formas en que se pueden agrupar los lenguajes teniendo en cuenta funcionalidad y orientación. Sin embargo no está estipulada ninguna clasificación estricta debido a que dependiendo de la característica por la que se clasifique, un lenguaje podría estar relativamente en un grupou otro. Sería utópico tratar de clasificar todos los lenguajes existentes ya que hay demasiados y con frecuencia surgen nuevos. No obstante se ha tratado de realizar una clara y esquemática clasificación de los distintos tipos, que abarcase a los lenguajes más importantes.

Los procesadores usados en las computadoras son capaces de entender y actuar según lo indican programas escritos en un lenguaje fijo llamado lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:

Page 38: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 38 -

Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como intérpretes.

Traduciendo este programa al programa equivalente escrito en lenguaje de máquina. A ese proceso se lo llama compilar y al traductor se lo conoce como un malhecho compilador.

CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

Los lenguajes de programación son lenguajes creado por el ser humano para poder comunicarse con las computadoras. Así lenguaje de programación es el conjunto de símbolos y palabras que permiten al usuario de una computadora darle instrucciones y órdenes para que la computadora los ejecute. Existen diferentes clases o tipos de lenguajes de programación: 1º El Lenguaje Máquina: es el lenguaje de programación que entiende directamente la computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir, el 0 y el 1. Con estos dos únicos dígitos, conocidos como bits, forma lo que se conoce como cadenas binarias (combinaciones de ceros y unos) son con las que se escriben las instrucciones que el microprocesador de la computadora entiende nuestra peticiones. Fue el primer lenguaje de programación. Este tipo de lenguaje de programación dejo de utilizarse por su gran dificultad y por la facilidad para cometer errores. 2º Lenguajes de programación de bajo nivel: Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucedía con el lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos. En este lenguaje se conoce como programa fuente a un programa de instrucciones escrito en lenguaje ensamblador por el programador, y programa objeto es la traducción a lenguaje máquina del programa fuente. Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles de aprender, son específicos de cada procesador, si nos llevamos el programa a otro computador será preciso reescribir el programa desde el comienzo.

Page 39: c.prop. Introduccion a La Ingenieria en Sistemas Computacionales

CURSO PROPEDEUTICO PARA EL AREA DE INGENIERIA EN SISTEMAS COMPUTACIONALES JUNIO – JULIO 2011

DOCENTES: MTRA. DIANA E. LOPEZ CHACON - 39 -

3º Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender. Los lenguajes de programación de alto nivel son más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este es el caso del BASIC, el lenguaje de programación más conocido.

Existen muchos lenguajes de programación de alto nivel con sus diferentes versiones. Por esta razón es difícil su tipificación, pero una clasificación muy extendida desde el punto de vista de trabajar de los programas y la filosofía de su creación es la siguiente:

• Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y Ada.

• Lenguajes de programación declarativos: el Lisp y el Prolog. • Lenguajes de programación orientados a objetos: el Smalltalk y el C++. . • Lenguajes de programación orientados al problema: son aquellos

lenguajes específicos para gestión. • Lenguajes de programación naturales: son los nuevos lenguajes que

pretender aproximar el diseño y la construcción de programas al lenguaje de las personas.

• Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en cuenta el desarrollo de las computadoras según sus diferentes generaciones:

• Lenguajes de programación de primera generación: el lenguaje máquina y el ensamblador.

• Lenguajes de programación de segunda generación: los primeros lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL).

• Lenguajes de programación de tercera generación: son lenguajes de programación de alto nivel imperativo pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).

• Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y manejo de bases de dados (NATURAL, SQL).

• Lenguajes de programación de quinta generación: creados para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).