<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computacion e Informatica &#187; Algoritmica y Programacion</title>
	<atom:link href="http://www.rodolfoquispe.org/blog/category/algoritmica-y-programacion/feed" rel="self" type="application/rss+xml" />
	<link>http://www.rodolfoquispe.org/blog</link>
	<description>Ingenieria de Software, Educacion y TIC, Internet y La Web y un largo e inimaginable etcetera …</description>
	<lastBuildDate>Sun, 14 Mar 2010 15:54:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>El Tao de la Programacion</title>
		<link>http://www.rodolfoquispe.org/blog/el-tao-de-la-programacion.php</link>
		<comments>http://www.rodolfoquispe.org/blog/el-tao-de-la-programacion.php#comments</comments>
		<pubDate>Sun, 13 Apr 2008 06:52:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Algoritmica y Programacion]]></category>

		<guid isPermaLink="false">http://www.rodolfoquispe.org/blog/?p=41</guid>
		<description><![CDATA[
Libro Uno: El Vacío Silencioso
Asi habló el programador maestro:
&#8220;Cuando hayas aprendido a sacar el código de error, será la hora que te vayas.&#8221;
Libro Dos: Los Maestros Antiguos
Así habló el programador maestro:
&#8220;Después de tres días sin programar, la vida se vuelve sin sentido.&#8221;
Libro Tres: Diseño
Así habló el programador maestro:
&#8220;Cuando el programa está siendo probado, es muy [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="/img/post/img-post41.jpg" alt="Perfil del buen Profesor" /></p>
<p><strong>Libro Uno: El Vacío Silencioso</strong></p>
<p>Asi habló el programador maestro:<br />
&#8220;Cuando hayas aprendido a sacar el código de error, será la hora que te vayas.&#8221;</p>
<p><strong>Libro Dos: Los Maestros Antiguos</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Después de tres días sin programar, la vida se vuelve sin sentido.&#8221;</p>
<p><strong>Libro Tres: Diseño</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Cuando el programa está siendo probado, es muy tarde para hacer cambios de diseño.&#8221;</p>
<p><strong>Libro Cuatro: Codificación</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno.&#8221;</p>
<p><strong>Libro Cinco: Mantenimiento</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Aunque un programa sólo tenga tres líneas de largo, algún dia tendrá que ser mantenido.&#8221;</p>
<p><strong>Libro Seis: Administración</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Sean los programadores muchos y los administradores pocos &#8212; entonces todos serán productivos.&#8221;</p>
<p><strong>Libro Siete: Sabiduría Corporativa</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Le puedes mostrar un programa a un ejecutivo de la corporación, pero no puedes hacer que entienda las computadoras.&#8221;</p>
<p><strong>Libro Ocho: Hardware y Software</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Sin viento, el pasto no se mueve. Sin software, el hardware es inútil.&#8221;</p>
<p><strong>Libro Nueve: Epílogo</strong></p>
<p>Así habló el programador maestro:<br />
&#8220;Es hora de que te vayas.&#8221;</p>
<p><strong>Referencias:</strong></p>
<p>Geoffrey James. <strong>The Tao of Programming</strong>. Infobooks. 1986</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodolfoquispe.org/blog/el-tao-de-la-programacion.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como NO realizar una practica de programacion</title>
		<link>http://www.rodolfoquispe.org/blog/como-no-realizar-una-practica-de-programacion.php</link>
		<comments>http://www.rodolfoquispe.org/blog/como-no-realizar-una-practica-de-programacion.php#comments</comments>
		<pubDate>Sat, 09 Feb 2008 06:48:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Algoritmica y Programacion]]></category>

		<guid isPermaLink="false">http://www.rodolfoquispe.org/blog/?p=36</guid>
		<description><![CDATA[
De la programación propiamente dicha

Ignora los mensajes de error
Ignora las advertencias, &#8220;warnings&#8221; o &#8220;hints&#8221;
Escribe el código directamente sin pensar
Aunque el código no compile o no funcione, sigue escribiendo
Si el código tiene un error que no se produce siempre, ignóralo y sigue escribiendo
Si el código tiene un error que se produce siempre, cambia cosas aleatoriamente hasta [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="/img/post/img-post36.jpg" alt="Como NO realizar una practica de programacion" /></p>
<p><strong>De la <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programación</a> propiamente dicha</strong></p>
<ul>
<li>Ignora los mensajes de error</li>
<li>Ignora las advertencias, &#8220;warnings&#8221; o &#8220;hints&#8221;</li>
<li>Escribe el código directamente sin pensar</li>
<li>Aunque el código no compile o no funcione, sigue escribiendo</li>
<li>Si el código tiene un error que no se produce siempre, ignóralo y sigue escribiendo</li>
<li>Si el código tiene un error que se produce siempre, cambia cosas aleatoriamente hasta que desaparezca</li>
<li>Construye enormes porciones de código sin compilar / ejecutar / probar</li>
<li>No escribas comentarios, salvo los obligatorios</li>
<li>Ignora los enunciados</li>
<li>Ignora las normas de <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programación</a> y presentación</li>
<li>Escribe la documentación al final</li>
<li>No aprendas a utilizar el depurador ni otras herramientas</li>
<li>No utilices jamás breakpoints al depurar un programa</li>
</ul>
<p><strong>De la relación con el profesor</strong></p>
<ul>
<li>No pidas ayuda</li>
<li>Nunca describas un problema en detalle</li>
<li>Lleva siempre los fuentes equivocados</li>
<li>No aísles el problema</li>
<li>Usa el correo electrónico con habilidad</li>
<li>Eskríbelo todo cn abrvtrs o konsonantes ekstrañas</li>
<li>Comete faltas de ortografía</li>
<li>No te identifiques</li>
</ul>
<p><strong>Y, sobre todo&#8230;</strong></p>
<ul>
<li>Deja el trabajo para el final</li>
<li>Copia las prácticas</li>
<li>No vayas a clase</li>
</ul>
<p><strong>Fuente Original:</strong></p>
<p><span class="pubs">Agustín Cernuda del Río</span>. <a href="http://www.di.uniovi.es/~cernuda/noprog_ESP.html" target="_blank"><strong>Como NO realizar una practica de programacion</strong></a>. Universidad de Oviedo. 2002</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodolfoquispe.org/blog/como-no-realizar-una-practica-de-programacion.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que es la Programacion Orientada a Objetos?</title>
		<link>http://www.rodolfoquispe.org/blog/que-es-la-programacion-orientada-a-objetos.php</link>
		<comments>http://www.rodolfoquispe.org/blog/que-es-la-programacion-orientada-a-objetos.php#comments</comments>
		<pubDate>Sun, 15 Jul 2007 06:11:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Algoritmica y Programacion]]></category>

		<guid isPermaLink="false">http://www.rodolfoquispe.org/blog/?p=19</guid>
		<description><![CDATA[
Programacion Orientada a Objetos (POO): Metodo de Implementacion en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son miembros de una jerarquia de clases unidas mediante relaciones de herencia. En tales programas las clases suelen verse estaticas, mientras [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="/img/post/img-post19.jpg" alt="¿Que es la Programacion Orientada a Objetos?" /></p>
<p><strong><a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a> Orientada a Objetos (POO):</strong> Metodo de Implementacion en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son miembros de una jerarquia de clases unidas mediante relaciones de herencia. En tales programas las clases suelen verse estaticas, mientras que los objetos suelen tener una naturaleza mucho mas dinamica, promovida por la evidencia de la ligadura dinamica y el polimorfismo.</p>
<p><strong>Objeto:</strong> Algo a lo cual se le puede hacer cosas. Un objeto tiene un estado, comportamiento e identidad; la estructura y comportamiento de objetos similares se definen en una clase comun. Los terminos instancia y objeto son intercambiables.</p>
<p><strong>Clase:</strong> Conjunto de objetos que comparten una estructura comun y un comportamiento comun. Los terminos y clase y tipo suelen ser (no siempre) equivalentes; una clase es un concepto ligeramente diferente del de un tipo, en el sentido de que enfatiza la clasificacion de estructura y comportamiento.</p>
<p><strong>Encapsulación:</strong> El proceso de introducir en el mismo comportamiento los elementos de abstraccion que constituyen su estructura y comportamiento; el encapsulamiento sirve para separar el interfaz contractual de una abstraccion y su implantacion.</p>
<p><strong>Abstraccion:</strong> Las caracteristicas esenciales de un objeto que lo distiguen de todos los demas objetos y proporcionan asi fronteras conceptuales definidas con nitidez en relacion con la prespectiva del observador; el proceso de centrarse en las caracteristicas esenciales de un objeto. La abstraccion es uno de los elementos fundamentales del modelo de objetos.</p>
<p><strong>Herencia:</strong> Relacion entre clases, en la que una clase comparte la estructura y comportamiento definido en otra (herencia simple) u otras (herencia multiple) clases. La herencia define una relacion &#8220;de tipo&#8221; entre clases en la que una subclase hereda de una o mas superclases generalizadas, una subclase suele especializar a sus superclases aumentando o refinando la estructuras y comportamiento existentes.</p>
<p><strong>Polimorfismo:</strong> Un concepto de teoria de tipos, de acuerdo con el cual un nombre (como declaracion de una variable) puede denotar objetos de muchas clases diferentes que se relacionan mediante alguna superclase comun; asi todo objeto denotado por este nombre es capaz de responder a algun conjunto comun de operaciones de diferentes modos.</p>
<p><strong>Ligadura dinámica y estatica</strong>: Ligadura denota asociacion de un nombre (como un declaracion de un variable) con una clase; <strong>ligadura dinamica</strong> es una ligadura en la que la asociacion nombre/clase no se realiza hasta que el objeto designado por le nombre se crea en tiempo de ejecucion; <strong>ligadura estatica</strong> es una ligadura en la que la asociacion nombre/clase se realiza cuando se declara el nombre (en tiempo de compilacion) pero antes de la creacion del objeto se designa el nombre.</p>
<p><strong>Mensaje:</strong> Operacion que un objeto realiza sobre otro. Los terminos mensaje, metodo o operacion suelen ser equivalentes.</p>
<p><strong>Metodo:</strong> Operacion sobre un objeto, definida como parte de la declaracion de una clase; todos los metodos son operaciones, pero no todas las operaciones son metodos. Los terminos mensaje, metodo o operacion suelen ser equivalentes.</p>
<p><strong>Comportamiento:</strong> Como actua y reacciona un objeto, en terminos de sus cambios de estado y su paso de mensajes; la actividad exteriormente visible y comprobable de un objeto.</p>
<p><strong>Clase abstracta: </strong>Una clase que no tiene instancias. Una clase abstracta se escribe con la intencion de que sus subclases concretas añadan elementos nuevos a sus estructura y comportamiento, normalmente implementas en operaciones abastractas.</p>
<p><strong>Clase base:</strong> La clase mas generalizada en una estructuras de clases. La mayoria de las aplicaciones tienen muchas de tales clases raiz. Algunos ejemplos definen una clase base primitiva, que sirve como la superclase ultima de todas las clases.</p>
<p><strong>Clase concreta:</strong> Clase cuya implementacion esta completa y por tanto  puede estar instanciada.</p>
<p><strong>Clase contenedor (container):</strong> Clases que sirve como plantilla para otras clases, en las que la plantilla puede denotar colecciones homogeneas (todos los objetos de la coleccion son de la misma clase) o heterogeneas (cada uno de los objetos de la coleccion puede ser una clase diferente, aunque generalmente todos deben comportir un superlcase comun). Las clases contenedor se definen la mayoria de las veces como clases parametrizadas, en las que algun parametro designa la clase de los objetos contenidos.</p>
<p><strong>Clase generica:</strong> Clase que sirve como plantilla para otras clases, en las que la plantilla puede parametrizarse con otras clases objetos y/o operaciones. Un clase generica debe ser instanciada (rellenados sus parametros) antes de que puedan crearse objetos. Las clases genericas se usan tipicamente como clases contenedor. Los terminos clase generia y clase parametrizada son intercambiables.</p>
<p><strong>Jerarquia:</strong> Clasificacion u ordenacion de abstracciones. Las dos jerarquias mas habituales en un sistema complejo son su estructura de clases (que incluye jerarquia &#8220;de tipo&#8221;) y sus estructura de objetos (que incluye jerarquia &#8220;de partes&#8221; y de colaboracion); pueden encontrarse tambien jerarquias en las arquitecturas de modulos y procesos de un sistema complejo.</p>
<p><strong>Operacion:</strong> Algun trabajo que un objeto realiza sobre otro con el fin de provocar una reaccion. Todas las operaciones sobre un objeto concreto pueden encontrarse en forma de subprogramas libres y funciones miembros o metodos. Los terminos mensaje, metodo y operacion son intercambiables.</p>
<p><strong>Constructor:</strong> Operacion que crea un objeto y/o inicializa su estado.</p>
<p><strong>Destructor:</strong> Operacion de libera el estado de un objeto y/o destruye el propio objeto.</p>
<p><strong>Fuente Original:</strong></p>
<ul>
<li>Grady Booch. <strong>Analisis y Diseño Orientado a Objetos con Aplicaciones</strong>. Addison Wesley, 1996</li>
<li>Bertrand Meyer. <strong>Construccion de Software Orientado a Objetos</strong>. Prentice-Hall, 1998</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rodolfoquispe.org/blog/que-es-la-programacion-orientada-a-objetos.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que es la Programacion?</title>
		<link>http://www.rodolfoquispe.org/blog/que-es-la-programacion.php</link>
		<comments>http://www.rodolfoquispe.org/blog/que-es-la-programacion.php#comments</comments>
		<pubDate>Sun, 15 Apr 2007 06:03:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Algoritmica y Programacion]]></category>

		<guid isPermaLink="false">http://www.rodolfoquispe.org/blog/?p=13</guid>
		<description><![CDATA[Como citar este artículo:
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 [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Como citar este artículo:</strong><br />
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</em></p>
<p style="text-align: center;"><img class="aligncenter" src="/img/post/img-post13.jpg" alt="¿Que es el Programacion?" /></p>
<p><em>Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno. [Geoffrey James, El Tao de la Programacion]</em></p>
<p><strong>Introduccion:</strong></p>
<p>La <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a> ha pasado a tener un papel importantisimo en la vida diaria, gracias a ella podemos programar los ordenadores, electrodomesticos, robots y otras maquinas. La <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a> intenta resolver ciertos problemas que nos surgen todos los dias basandose en una metodologia.</p>
<p>El conjunto de problemas que son resolubles utilizando un computador es indudablemente, muy extenso. El concepto de <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> 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 <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmos</a>.</p>
<p><strong>Definiciones:</strong></p>
<ul>
<li>Un programa de computador es un conjunto de instrucciones ordenes dadas a la maquina que producirán la ejecución de una determinada tarea. A la persona que escribe programas se le denomina Programador, al proceso de escribir programas se denomina <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a>.</li>
<li>En informática, la <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> es un proceso por el cual se escribe (en un lenguaje de <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a>), se prueba, se depura y se mantiene el código fuente de un programa informático.</li>
<li>La <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a> es la accion de escribir un conjunto de instrucciones escritas en un determinado lenguaje, que dirigen a un ordenador para la ejecución de una serie de operaciones, con el objetivo de resolver un problema que se ha definido previamente.</li>
<li>La <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a> es un conjunto de tecnicas utilizadas para desarrollar programas que sean faciles de leer, depurar (poner a punto) y modificar o mantener.</li>
</ul>
<p><strong>Programacion y <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">Algoritmos</a></strong></p>
<p>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 <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmos</a> juegan un papel muy importante en la <a href="http://www.rodolfoquispe.org/blog/que-es-la-computacion.php" target="_self">ciencia de la computacion</a>.</p>
<p><strong>Programacion y <a href="http://www.rodolfoquispe.org/blog/que-es-la-ingenieria-de-software.php" target="_self">Ingenieria de Software</a>:</strong></p>
<p>Al principio la <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> de ordenadores se veia como un arte, todo era cuestion de dominar un lenguaje de <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> y aplicar habilidades personales de resolucion de problemas.</p>
<p>En la actualidad no es aceptable escribir un programa que realiza una tarea sin seguir principios y metodos de <a href="http://www.rodolfoquispe.org/blog/que-es-la-ingenieria-de-software.php" target="_self">ingenieria de software</a> para obtener programas confiables.</p>
<p>Una buena formacion en <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> no solo debe incluir el estudio de los esquemas algoritmicos, y estructuras de datos mas importantes, el analisis de <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmos</a> y el paradigma orientado a objetos. Una buena formacion en programacion tambien deberia incluir, una formacion en <a href="http://www.rodolfoquispe.org/blog/que-es-la-ingenieria-de-software.php" target="_self">ingenieria de software</a> y estudiar <a href="http://http://www.rodolfoquispe.org/blog/que-es-la-ingenieria-de-requerimientos.php" target="_self">ingenieria de requisitos</a>, metodos de desarrollo de software, gestion de proyectos, y sobre todo, adquirir experiencia practica participando en proyectos de software.</p>
<p><strong>Programacion y Creatividad</strong></p>
<p>La <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> 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 <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">programacion</a> como una batalla a muerte contra la maquina, sin tregua ni cuartel.</p>
<p><strong>Referencias:</strong></p>
<ul>
<li>Behrouz A. Forouzan. <strong>Introducción a la <a href="http://www.rodolfoquispe.org/blog/que-es-la-computacion.php" target="_self">Ciencia de la Computacion</a></strong>. Thomson Paraninfo 2003</li>
<li>Jesús J. García Molina, Francisco J. Montoya Dato, José L. Fernández Alemán, Mª José Majado Rosales. <strong>Una Introducción a la <a href="http://www.rodolfoquispe.org/blog/que-es-la-programacion.php" target="_self">Programacion</a>. Un Enfoque Algorítmico</strong>. Thomson Paraninfo 2005</li>
<li>Wikipedia. <strong><a href="http://es.wikipedia.org/wiki/Programacion" target="_blank">Programacion</a></strong>. Febrero 2007</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rodolfoquispe.org/blog/que-es-la-programacion.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que es un Algoritmo?</title>
		<link>http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php</link>
		<comments>http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php#comments</comments>
		<pubDate>Sun, 11 Mar 2007 05:59:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Algoritmica y Programacion]]></category>

		<guid isPermaLink="false">http://www.rodolfoquispe.org/blog/?p=11</guid>
		<description><![CDATA[Como citar este artículo:
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 más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente en términos de instrucciones de un lenguaje, sino de elementos naturales del problema mismo, abstraídos de [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Como citar este artículo:</strong><br />
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</em></p>
<p style="text-align: center;"><img class="aligncenter" src="/img/post/img-post11.jpg" alt="¿Que es el Computacion?" /></p>
<p><em>Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente en términos de instrucciones de un lenguaje, sino de elementos naturales del problema mismo, abstraídos de alguna manera. [Niklaus Wirth, Creador del Lenguaje Pascal]</em></p>
<p><strong>Definicion: <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">Algoritmo</a><br />
</strong></p>
<p>Podemos encontrar muchas definiciones de <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> en los textos de programacion, todas ellas muy similares:</p>
<ul>
<li>Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.</li>
<li>Una secuencia de pasos que conducen a la realización de una tarea.</li>
<li>Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.</li>
<li>Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.</li>
<li>Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso.</li>
<li>Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema.</li>
<li>Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.</li>
<li>Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas.</li>
<li>Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos.</li>
<li>Un conjunto de símbolos y procedimientos usados en la realización de un cálculo.</li>
</ul>
<p>Las definiciones mas completas o formales:</p>
<ul>
<li>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]</li>
<li>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]</li>
<li>Un <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> 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 solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]</li>
</ul>
<p><strong>Caracteristicas:</strong></p>
<p>Las características fundamentales que debe cumplir todo <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> son:</p>
<ul>
<li><strong>Ser definido</strong>: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.</li>
<li><strong>Ser finito</strong>: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.</li>
<li><strong>Tener cero o más entradas:</strong> Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.</li>
<li><strong>Tener una o más salidas:</strong> 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 programación 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 <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a>.</li>
<li><strong>Efectividad:</strong> El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.</li>
</ul>
<p><strong>Historia:</strong></p>
<p>La palabra <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> proviene del nombre del matemático llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-Khowarizmi) que vivió entre los siglos VIII y IX.</p>
<p>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 valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. 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 <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmos</a> que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el numero de operaciones necesarias que formaban el cálculo.</p>
<p>Por esta razón, aunque no haya sido él el inventor del primer <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a>, merece que este concepto esté asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algorítmico.</p>
<p>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 aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.</p>
<p>La idea de resolver un problema o de disponer de un <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmo</a> es bastante antigua, tal es así, que existía la errada creencia que no había problema que no se pudiera resolver y en base a ello, el matemático David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gödel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequeña 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 <a href="http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php" target="_self">algoritmos</a>.</p>
<p><strong>Referencias:</strong></p>
<ul>
<li>Ricardo Baeza Yates. <strong><a href="http://www.dcc.uchile.cl/~rbaeza/manifest/academia.pdf" target="_blank">Computación: de los Juegos a los Algoritmos, y de la Teoría a la Práctica</a></strong>. Mayo 2003</li>
<li>Ricardo Baeza Yates. <strong><a href="http://www.dcc.uchile.cl/~rbaeza/inf/algoritmia.pdf" target="_blank">Algoritmia</a></strong>. Mayo 1995</li>
<li>Eduardo René Rodríguez Ávila. <strong><a href="http://homepage.mac.com/eravila/algoritmos.pdf" target="_blank">El Correcto y Completo Desarrollo de un Algoritmo</a></strong>. Mayo 2004</li>
<li>Wikipedia.<a href="http://es.wikipedia.org/wiki/Algoritmo" target="_blank"> <strong>Algoritmo</strong></a>. Wikipedia. Agosto 2007</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
