Ingenieria: Algoritmos y Estructuras de Datos

Elementos escenciales para programación: Algoritmos y Estructuras de Datos

La forma de llegar a un algoritmo como solución a un problema

Este libro está principalmente dirigido a estudiantes universitarios que se inician en las carreras de Ingeniería. Son los que deben interiorizarse en el manejo de ciertos recursos propios de la disciplina sin orientarse a ningún lenguaje en particular. 

La finalidad de este enfoque es ampliarles la perspectiva para que en su vida profesional no sólo puedan implementar programas en los lenguajes clásicos de programación sino que también sean capaces de manejar las nuevas herramientas de software que, en muchos casos, permiten optimizar su rendimiento mediante el desarrollo de macroinstrucciones especiales. 

Es así que en la elaboración del libro hemos decidido tratar los conceptos de manera no muy extensa y, en la forma más sencilla posible. No sólo para que se constituya en un soporte de los contenidos a desarrollar por los docentes sino para que les permita a los estudiantes reflexionar sobre la forma de llegar a un algoritmo como solución a un problema. A los fines didácticos, representamos los algoritmos en algunos casos con pseudocódigo y en otros, con diagrama de flujo o con ambos tipos de representaciones.

Qué es la Informática?

La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinarios, donde frecuentemente existe una repetición de tareas. Ejemplo de ello es la gestión de un censo, tal es el caso del primero automatizado en 1890 en EEUU utilizando tarjetas perforadas. En esa época se pensó que una máquina no sufriría cansancio ni cometería errores. Con el tiempo esta idea se fue afianzando en la sociedad, y es hoy día que se sigue trabajando para mejorar las prestaciones de los sistemas de cómputo.
Si repasamos la historia veremos que la Informática estuvo entre nosotros desde tiempos lejanos. A continuación transcribimos algunas ideas de importantes pensadores relacionados con la Informática. Para ubicarse en la historia, debe notarse que los primeros modelos de computadoras aparecieron alrededor del año 1940.

Gottfried Wilhelm Leibniz (1646-1716) fue uno de los grandes pensadores de los siglos XVII y XVIII, decía que “Es una pérdida de tiempo que personas cualificadas pierdan horas como esclavos en la labor de calcular, lo que podría ser delegado en cualquier otro si se pudieran utilizar máquinas”. Basándose en los trabajos de Pascal construyó una calculadora compuesta por cilindros dentados con longitud incremental que podía sumar, restar, multiplicar y dividir automáticamente, conocida como la rueda de Leibniz. Algunas máquinas basadas en estos mismos principios han jugado un papel preponderante en la Segunda Guerra Mundial, e incluso algunas están todavía en uso. Leibniz fue también el primer pensador occidental en investigar la aritmética binaria y sentó las bases de la lógica simbólica, basada en símbolos y variables abstrayendo la semántica de las proposiciones.

Ada Byron(1815-1852)desarrolló los primeros programas para la Máquina Analítica de Babbage (1833), debido a estos trabajos, se la considera el primer programador de computadoras del mundo.Ella escribió “La Máquina Analítica no tiene la pretensión de crear nada.Puede realizar cualquier cosa siempre que conozcamos cómo llevarla a cabo. Puede seguir análisis; pero es incapaz de descubrir relaciones analíticas o verdades. Su potencialidad es la de ayudarnos a hacer posible aquello sobre lo que tenemos un conocimiento previo. Muchas han sido las mujeres que han realizado grandes aportes a la Informática, aún así Ada Byron es la única mujer que cuenta con un lenguaje de programación que lleva su nombre: en 1979 el Departamento de Defensa de los Estados Unidos creó un lenguaje de programación basado en Pascal que se llamó lenguaje de programación Ada en su honor.

Herman Hollerith (1860-1929) fue un estadístico estadounidense que inventó la máquina tabuladora. Es considerado como el primer informático, es decir, el primero que logra el tratamiento automático de la información (Informática = Información + automática). En esos tiempos, los censos se realizaban de forma manual, con el retraso de unos 10 años en su procesamiento. Ante esta situación, Hollerith comenzó a trabajar en el diseño de una máquina tabuladora o censadora, basada en tarjetas perforadas que patentó en el año 1889. Un año después incluyó la operación de sumar con el fin de utilizarla en procesos de contabilidad.
Alan Turing (1912-1954) fue un matemático, lógico, científico de la computación, criptógrafo y filósofo británico. Es considerado uno de los padres de la ciencia de la computación siendo el precursor de la informática moderna. Proporcionó una influyente formalización de los conceptos de algoritmo y computación, la famosa máquina de Turing. Durante la Segunda Guerra Mundial, trabajó en descifrar los códigos nazis, particularmente los de la máquina Enigma. Tras la guerra diseñó una de las primeras computadoras electrónicas programables digitales en el Laboratorio Nacional de Física del Reino Unido (1945). Entre otras muchas cosas, también contribuyó de forma particular e incluso provocativa al enigma de si las máquinas pueden pensar, es decir a la Inteligencia Artificial. Turing decia: “Las máquinas me sorprenden con mucha frecuencia.
John Von Neumann (1903-1957) fue un matemático húngaro que realizó contribuciones fundamentales en física cuántica, análisis funcional, teoría de conjuntos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística y muchos otros campos. Está considerado como uno de los más importantes matemáticos de la historia moderna. Diseñó una arquitectura de computadoras que lleva su nombre, y aún es utilizada en casi todas las computadoras personales, microcomputadoras, minicomputadoras y supercomputadoras. Von Neumann decía “Podría parecer que hemos llegado al límite de lo que es posible lograr con la tecnología informática, aunque hay que tener cuidado con tales declaraciones, ya que tienden a sonar bastante tontas en cinco años.”
El término Informática nace recién en la década de 1960 en Francia bajo la denominación INFORMATIQUE, debido a la contracción de las palabras INFORmation y autoMATIQUE, es decir el tratamiento de la información por medios automáticos. En las múltiples publicaciones, Informática se define de diversas maneras pero siempre ronda la misma idea: el tratamiento automáticodelainformación.

A continuación veremos algunas definiciones.

INFORMÁTICA
es la ciencia que estudia el tratamiento automático y racional de la información. Se habla de tratamiento automático debido a que son máquinas las que procesan la información y se dice racional por estar los procesos definidos a través de programas que siguen el razonamiento humano.
INFORMÁTICA
es el estudio de los algoritmos y de las computadoras - de sus teorías, sus modelos abstractos, su realización mecánica, su fiabilidad y verificación, su medida y eficacia, su descripción linguística y su contexto social. 

Las Ciencias de la Computación o Informática como se le llama en algunos países hispanoamericanos, es la disciplina que busca establecer una base científica para diversos
temas, como el diseño de computadoras, la programación de computadoras, el proceso de información,la elaboración de algoritmos para resolver problemas y el proceso algorítmico en sí.

Del mundo real a la solución por computadora

Informatizar la resolución de un problema

El proceso de informatizar la resolución de problemas del mundo real, tales como resolver una ecuación matemática o realizar la liquidación de sueldos de los empleados de una empresa, conlleva una serie de pasos que debemos seguir para obtener una respuesta encuadrada a los datos provistos. En la Figura 1 se muestra tal proceso.

Como primer paso se deberá conocer las especificaciones del problema, es decir, analizar y determinar en forma clara y concreta el objetivo que se desea. Analizar los datos que se disponen y cuales son los resultados que se desean. Una vez que se conoce el problema en detalle, se puede intentar realizar un modelo del mismo, es decir, abstraer el problema tratando de encontrar los aspectos principales que se pueden resolver, los datos que se han de procesar y el contexto del problema, simplificando su expresión.Disponiendo de un panorama más claro del problema, sus datos y resultados, se puede escribir una serie de acciones que seguidas paso a paso resuelvan el problema. Esto es el algoritmo. Si esta etapa es exitosa, se traduce el algoritmo, mediante un lenguaje de programación, para convertirlo en un programa que podrá ser interpretado por la computadora para su ejecución solución en forma rápida y eficaz.

En una segunda etapa, este algoritmo podrá ser traducido en un lenguaje reconocible por la computadora, generando así elprograma.La serie de instrucciones del programa se la conoce como código fuente,el cu
al se escribe en un lenguaje de programación,generalmente un lenguaje de alto nivel (comprensible por el hombre, como Pascal, Fortran o C, entre otros). El programa podrá ser probado en la computadora. En este caso, pueden aparecer errores de sintaxis y/o de semántica Los errores de sintaxis se refieren a que alguna instrucción está mal escrita y por lo tanto el procesador no puede reconocerla. Son simples de detectar y de modificar. Esta operación la resuelve el traductor del entorno de programación, el Compilador o el Intérprete. Si en el proceso de traducción se detectan errores de sintaxis, habrá que volver al punto 4) para codificar correctamente. Los errores de semántica se refieren a cuestiones de la lógica de la solución, y son los más complicados de hallar. Es en el proceso de Validación donde se detectan los errores de lógica. Habrá que volver al punto 

1) para interpretar correctamente el enunciado del problema para rever y modificar el algoritmo propuesto o proponer una nueva solución al problema dado. Algo muy importante a tener en cuenta cuando se escriben programas es la Documentación del mismo. Esto se refiere a los comentarios que se añaden al código fuente para hacer más claro el entendimiento del programa: descripción del funcionamiento del programa, descripción del problema, nombre del autor, entre otros. A menudo un programa escrito por una persona, es usado por otra, o por ella misma después de un tiempo. Por ello la documentación sirve para ayudar a comprender la lógica del programa, para reusarlo para facilitar futuras modificaciones (proceso de mantenimiento).

SIGUE APRENDIENDO DESCARGANDO EL ARCHIVO



http://uii.io/XWYUU
                                   Aprende Como Descargar Los Archivos Del Blog
Con tecnología de Blogger.