Está en la página 1de 5

Como citar este artculo:

Rodolfo Quispe-Otazu. Que es un Algoritmo?. Blog de Rodolfo Quispe-Otazu [Internet]. Marzo 2007. Disponible en: http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php

Nuestra herramienta mental ms importante para competir con la complejidad es la abstraccin. Por tanto, un problema no deber considerarse inmediatamente en trminos de instrucciones de un lenguaje, sino de elementos naturales del problema mismo, abstrados de alguna manera. [Niklaus Wirth, Creador del Lenguaje Pascal]

Definicion: Algoritmo
Podemos encontrar muchas definiciones de algoritmo en los textos de programacion, todas ellas muy similares:

Conjunto ordenado y finito de pasos que permite hallar la solucin de un problema. Una secuencia de pasos que conducen a la realizacin de una tarea. Descripcin exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento. Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lgica de un programa. Es un sistema por el cual se llega a una solucin, teniendo en cuenta que debe de ser definido, finito y preciso. Toda receta, proceso, rutina, mtodo, procedimiento, tcnica, formula que resuelven un determinado problema. Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una accin determinada. Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas. Descripcin precisa de una sucesin de instrucciones que permite llevar a cabo un trabajo en un nmero finito de pasos. Un conjunto de smbolos y procedimientos usados en la realizacin de un clculo.

Las definiciones mas completas o formales:

Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]

Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988] Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solucin o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]

Caracteristicas:
Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Ser definido: Sin ambigedad, cada paso del algoritmo debe indicar la accin a realizar
sin criterios de interpretacin. Ser finito: Un nmero especfico y numerable de pasos debe componer al algoritmo, el cual deber finalizar al completarlos. Tener cero o ms entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. Tener una o ms salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como nicamente verlos en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programacin que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada ms ni nada menos que aquello que se requiera para y en su ejecucin.

Historia:
La palabra algoritmo proviene del nombre del matemtico llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como AlKhorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-Khowarizmi) 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 fcil comprensin, de ah que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio pblico. Cabe destacar cmo seal las virtudes del sistema decimal indio (en contra de los sistemas tradicionales rabes) y cmo explic que, mediante una especificacin clara y concisa de cmo calcular sistemticamente, se podran definiralgoritmos que fueran usados en dispositivos mecnicos similares a un baco en vez de las manos. Tambin estudi la manera de reducir el numero de operaciones necesarias que formaban el clculo. Por esta razn, aunque no haya sido l el inventor del primer algoritmo, merece que este concepto est asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algortmico. 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 mquina analtica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie complet su mquina, por lo que el algoritmo nunca se implement.

La idea de resolver un problema o de disponer de un algoritmo es bastante antigua, tal es as, que exista la errada creencia que no haba problema que no se pudiera resolver y en base a ello, el matemtico David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gdel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequea parte es computable, luego que el objetivo que perseguia David Hilbert no era computable, es lo que se ha denominado como la computabilidad de los algoritmos.

Como citar este artculo:


Rodolfo Quispe-Otazu. Que es la Programacion?. Blog de Rodolfo Quispe-Otazu [Internet]. Abril 2007. Disponible en: http://www.rodolfoquispe.org/blog/que-es-la-programacion.php

Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno. [Geoffrey James, El Tao de la Programacion]

Introduccion:
La Programacion ha pasado a tener un papel importantisimo en la vida diaria, gracias a ella podemos programar los ordenadores, electrodomesticos, robots y otras maquinas. La Programacion intenta resolver ciertos problemas que nos surgen todos los dias basandose en una metodologia. El conjunto de problemas que son resolubles utilizando un computador es indudablemente, muy extenso. El concepto de algoritmo es fundamental para la actividad de resolver problemas con computadoras, por lo que necesitamos adquirir un conocimiento firme sobre lo que es y no es con objeto de llevar a cabo de forma eficaz la actividad de resolver problemas ya que este es el proposito de escribir algoritmos.

Definiciones:

Un programa de computador es un conjunto de instrucciones ordenes dadas a la maquina que producirn la ejecucin de una determinada tarea. A la persona que escribe programas se le denomina Programador, al proceso de escribir programas se denomina Programacion. En informtica, la programacion es un proceso por el cual se escribe (en un lenguaje de programacion), se prueba, se depura y se mantiene el cdigo fuente de un programa informtico.

La Programacion es la accion de escribir un conjunto de instrucciones escritas en un determinado lenguaje, que dirigen a un ordenador para la ejecucin de una serie de operaciones, con el objetivo de resolver un problema que se ha definido previamente. La Programacion es un conjunto de tecnicas utilizadas para desarrollar programas que sean faciles de leer, depurar (poner a punto) y modificar o mantener.

Programacion y Algoritmos
Un programador no solo debe aprender la tarea que realiza cada instruccion sino que ademas debe saber combinar estas instrucciones para realizar un tarea en particular. Al considerar este problema desde un punto de vista diferente, un programador primero debe resolver el problema paso a paso y luego tratar de encontrar las instrucciones (o series de instrucciones) apropiada que resuelva el problema. La solucion paso a paso se conoce como algoritmo. Los algoritmos juegan un papel muy importante en la ciencia de la computacion.

Programacion y Ingenieria de Software:


Al principio la programacion de ordenadores se veia como un arte, todo era cuestion de dominar un lenguaje de programacion y aplicar habilidades personales de resolucion de problemas. En la actualidad no es aceptable escribir un programa que realiza una tarea sin seguir principios y metodos de ingenieria de software para obtener programas confiables. Una buena formacion en programacion no solo debe incluir el estudio de los esquemas algoritmicos, y estructuras de datos mas importantes, el analisis de algoritmos y el paradigma orientado a objetos. Una buena formacion en programacion tambien deberia incluir, una formacion en ingenieria de software y estudiar ingenieria de requisitos, metodos de desarrollo de software, gestion de proyectos, y sobre todo, adquirir experiencia practica participando en proyectos de software.

Programacion y Creatividad
La programacion es una actividad en la que la creatividad juega un papel crucial, por ello un buen programador ademas de tener una buena formacion academica es una persona muy creativa y con una gran capacidad de abstraccion, esencial para la resolucion de problemas. Los programadores siempre deben tener presente que se enfrentan a una actividad muy compleja y deben desconfiar de los lenguajes, metodos o herramientas que se ofrecen como soluciones magicas para construir software de forma casi automatica y sin apenas esfuerzo, sin dejar lugar a la creatividad. Ellos deben saber, de acuerdo a Brooks, que las tecnologias abordan problemas accidentales. Pero los problemas esenciales pueden ser abordados a traves de solidos principios software. El buen programador debe ser un persona que sabe trabajar en equipo, que conoce la importancia del trabajo metodico, y que no se comporta como un programador complusivo que se plantea la programacion como una batalla a muerte contra la maquina, sin tregua ni cuartel. Definicin y significado de Identificador -ProgramadorProgramador Persona que disea, escribe y/o depura programas de ordenador o computadora, es decir, quien disea la estrategia a seguir, propone las secuencias de instrucciones y/o escribe el cdigo correspondiente... -HTMLHyper Text Markup Language, o simplemente HTML, es un lenguaje de programacin muy sencillo que se utiliza para crear los textos y las pginas web. Si se hace la traduccin...

-Lenguaje naturalLenguaje natural Lenguaje utilizado normalmente por las personas. El objetivo de poder programar ordenadores utilizando lenguaje natural es una vieja idea que todava no ha podido cumplirse, aunque los sistemas... -ODBCODBC Open Data Base Connection ( Coneccin abierta a base de datos ). Es una forma de coneccin a veces de datos, independientemente del lenguaje o programa que estemos utilizando.... -EnsambladorEnsamblador Lenguaje de programacin que est a un paso del lenguaje de mquina. El ensamblador traduce cada sentencia del lenguaje ensamblador a una instruccin de mquina. Los programadores deben estar...

También podría gustarte