viernes, 10 de agosto de 2018

FUNDAMENTOS DE PROGRAMACIÓN

1.1 ¿En qué consiste la solución de problemas?

ANÁLISIS PREVIO DEL PROBLEMA

En esta etapa se debe definir y tener claro lo que el programa tiene que hacer junto con las tareas que debe realizar para llevar a cabo la solución, qué datos necesito para realizar la tareas, que formato deben tener los datos de entrada, de donde provienen los datos de entrada, como se obtienen esos datos, cómo interactúan los datos entre sí para obtener el resultado, muy importante tener claro cuál será el resultado que se desea obtener




CONFIGURACIÓN DEL ENTORNO DE DESARROLLO Y CODIFICACIÓN


Esta etapa consiste en transcribir o adaptar el algoritmo a un lenguaje de programación, se tendrá que adaptar todos los pasos diseñados en el algoritmo con sentencias y sintaxis propias del lenguaje.
Verificar errores, organizar el código y comentarlo, son buenas prácticas que hacen programas más legibles y facilitan la depuración.

Visita el siguiente vídeo

1.2 Planteamiento de solución de problemas según  POLYA


George Pólya fue un gran matemático que nació en Budapest en 1887 y murió en

Palo Alto California en 1985. A lo largo de su vida generó una larga lista de resultados
matemáticos y, también, trabajos dedicados a la enseñanza de esta disciplina, sobretodo
en el área de la Resolución de Problemas. Estos trabajos básicamente fueron escritos en los años cuarenta del siglo XX pero fueron traducidos hasta los años sesenta y setenta.
Se trata de un personaje clave en la Resolución de Problemas y es considerado el
pionero o gestor de las primeras etapas de esta temática.
La posición de Pólya respecto a la Resolución de Problemas se basa en una
perspectiva global y no restringida a un punto de vista matemático. Es decir, este autor plantea la Resolución de Problemas como una serie de procedimientos que, en realidad, utilizamos y aplicamos en cualquier campo de la vida diaria.
Para ser más precisos, Pólya expresa: “Mi punto de vista es que la parte más
importante de la forma de pensar que se desarrolla en matemática es la correcta actitud
de la manera de cometer y tratar los problemas, tenemos problemas en la vida diaria, en
las ciencias, en la política, tenemos problemas por doquier. La actitud correcta en la
forma de pensar puede ser ligeramente diferente de un dominio a otro pero solo
tenemos una cabeza y por lo tanto es natural que en definitiva allá sólo un método de
acometer toda clase de problemas. Mi opinión personal es que lo central en la enseñanza
de la matemática es desarrollar tácticas en la Resolución de Problemas”. 
Resultado de imagen para planteamiento de solución de problemas segun polya

MÉTODO DE LOS CUATRO PASOS.


Él plantea en su primer libro el llamado “El Método de los Cuatro Pasos”, para resolver cualquier tipo de problema se debe:
• comprender el problema
• concebir un plan
• ejecutar el plan y
• examinar la solución.
Para cada una de estas etapas él plantea una serie de preguntas y sugerencias.

1. Comprender el Problema.

Para esta etapa se siguen las siguientes preguntas:
• ¿Cuál es la incógnita?
• ¿Cuáles son los datos?
• ¿Cuál es la condición?
• ¿Es la condición suficiente para determinar la incógnita?
• ¿Es insuficiente?
• ¿Es redundante?
• ¿Es contradictoria?

2. Concebir un Plan.

Para Pólya en esta etapa del plan el problema debe relacionarse con problemas semejantes. También debe relacionarse con resultados útiles, y se debe determinar si se pueden usar problemas similares o sus resultados (aquí se subraya la importancia de los problemas análogos). Algunas interrogantes útiles en esta etapa son:
• ¿Se ha encontrado con un problema semejante?
• ¿Ha visto el mismo problema planteado en forma ligeramente diferente?
• ¿Conoce un problema relacionado?
• ¿Conoce algún teorema que le pueda ser útil?
• ¿Podría enunciar el problema en otra forma?
• ¿Podría plantearlo en forma diferente nuevamente? Refiérase a las definiciones.

3. Ejecución del Plan.

Durante esta etapa es primordial examinar todos los detalles y es parte importante recalcar la diferencia entre percibir que un paso es correcto y, por otro lado, demostrar que un paso es correcto. Es decir, es la diferencia que hay entre un problema por resolver y un problema por demostrar. Por esta razón, se plantean aquí los siguientes cuestionamientos:
• ¿Puede ver claramente que el paso es correcto?
• ¿Puede demostrarlo?
Él plantea que se debe hacer un uso intensivo de esta serie de preguntas en cada momento. Estas preguntas van dirigidas sobre todo a lo que él llama problema por resolver y no tanto los problemas por demostrar. Cuando se tienen problemas por demostrar, entonces, cambia un poco el sentido. Esto es así porque ya no se habla de datos sino, más bien, de hipótesis. En realidad, el trabajo de Pólya es fundamentalmente orientado hacia los problemas por resolver.
En síntesis: al ejecutar el plan de solución debe comprobarse cada uno de los pasos y verificar que estén correctos.

4. Examinar la Solución.

También denominada la etapa de la visión retrospectiva, en esta fase del proceso es muy importante detenerse a observar qué fue lo que se hizo; se necesita verificar el resultado y el razonamiento seguido De preguntarse:
• ¿Puede verificar el resultado?
• ¿Puede verificar el razonamiento?
• ¿Puede obtener el resultado en forma diferente?
• ¿Puede verlo de golpe?
• ¿Puede emplear el resultado o el método en algún otro problema?
Estas cuestiones dan una retroalimentación muy interesante para resolver otros problemas futuros: Pólya plantea que cuando se resuelve un problema (que es en sí el objetivo inmediato), también, se están creando habilidades posteriores para resolver cualquier tipo de problema. En otras palabras, cuando se hace la visión retrospectiva del problema que se resuelve, se puede utilizar tanto la solución que se encuentra como el método de solución; este último podrá convertirse en una nueva herramienta a la hora de enfrentar otro problema cualquiera.

Visita el siguiente vídeo para complementar tu información. 

1.3 Definición de algoritmo

Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica, como la solución de un problema. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo el algoritmo será siempre el mismo.

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.

Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.

Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.


1.4 ¿Qué es un diagrama de flujo? 

Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces se denominan con nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama de flujo de procesos (PFD)". Están relacionados con otros diagramas populares, como los diagramas de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).
diagrama de flujo de algoritmo          





































Bibliografías. 

  • Luis Joyanes Aguilar, Fundamentos de programación. algoritmos y estructuras de datos, Ed. Mc Graw-Hill.
  • Armando E. de Giusti, Algoritmos, Datos y Programas, . Ed., Prentice Hall.

  • Luis Joyanes Aguilar, Fundamentos de programación. algoritmos y estructuras de datos, Ed. Mc Graw-Hill.
  • Mario C. Ginzburg, Introducción General a la Informática, Periféricos y Redes Locales, Biblioteca Técnica Argentina.
  • Armando E. de Giusti, Algoritmos, Datos y Programas, . Ed., Prentice Hall.