Ir al contenido principal

Fundamentos de Programación

FUNDAMENTOS DE PROGRAMACIÓN 

Proceso de solución de un problema








Solución de problemas

Es el proceso a través del cual podemos reconocer las señales que identifican la presencia de una dificultad, anomalía o entorpecimiento del desarrollo normal de una tarea, recolectar la información necesaria para resolver los problemas detectados y escoger e implementar las mejores alternativas de solución, ya sea de manera individual o grupal. Aplicada al mundo laboral, la resolución de problemas permite mantener el correcto desarrollo de las actividades, tareas o procesos, y estar preparado para enfrentar de manera eficiente los entorpecimientos.

¿En qué consiste? 

La resolución de problemas utilizando como herramienta una computadora no se resume únicamente en la escritura de un programa, sino que es masa compleja. Siguiendo las siguientes etapas: 


  • Análisis del problema

Análisis previo del programa
Primeramente se analiza el problema en su contexto del mundo real. Deben obtenerse los requerimientos del usuario. Éste análisis permite precisar el problema para dar un objetivo a resolver. Dos componentes importantes de este modelo son los datos a utilizar y las transformaciones de los mismos.



  • Diseño de una solución

Diseño de la solución 
Una técnica de diseño en la resolución de problemas consiste en la identificación de las partes que componen el problema y la manera en que se relacionan. Cada uno de estos subproblemas debe tener un objetivo específico. La integración de las soluciones de los subproblemas es lo que permitirá obtener la solución buscada.


  • Especificación de algoritmos

La solución de cada subproblema debe ser especificada a través de un algoritmo. Esta etapa busca obtener la secuencia de pasos a seguir para resolver el problema. Para ello es fundamental la elección de un buen algoritmo. 


    • Escritura de programas

    Algoritmos
    Un programa escrito en un lenguaje de programación determinado es traducido automáticamente al lenguaje de máquina de la computadora que lo va a ejecutar. Esta traducción, denominada compilación, permite detectar y corregir los errores sintácticos que se cometan en la escritura del programa. 



    • Verificación

    Ventana de verificación  
    Una vez que se tiene un programa escrito en un lenguaje de programación se debe verificar que su
    ejecución produce el resultado deseado, utilizando datos representativos del problema real. 

    La facilidad de verificación y la depuración de errores de funcionamiento del programa conducen a una mejor calidad del sistema y es un objetivo central de la Ingeniería de Software.



    Solución de problemas según POLYA


    George Pólya

    George Pólya fue un gran matemático fue la 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. 



    Método de los cuatro pasos 




    • Comprender el Problema  

    Ésta es la etapa para determinar la incógnita, los datos, las condiciones, y decidir si esas condiciones son suficientes, no redundantes ni contradictorias. Donde se plantea 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? 

    • 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. 


    • Ejecución del Plan 

    En ésta 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. 

    • Examinar la Solución o  etapa de la visión retrospectiva

    En ésta fase del proceso es muy importante detenerse a observar qué fue lo que se hizo; se necesita verificar el resultado y el razonamiento seguido. Estas cuestiones dan una retroalimentación muy interesante para resolver otros problemas futuros, Pólya plantea que cuando se resuelve un problema, también, se están creando habilidades posteriores para resolver cualquier tipo de problema. 

    Para comprender mejor lo dicho por Pólya les recomiendo ir al siguiente vídeo:Resolución de problemas - George Pólya 

    Algoritmo. Definición

    Se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas o un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema.
    Los algoritmos son independientes de los lenguajes de programación, en cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje diferente de programación, son la infraestructura de cualquier solución, luego escrita en cualquier lenguaje de programación.    
    Algoritmos en la programación

    Diagrama de flujo 


    El diagrama de flujo o diagrama de actividades, también conocido como flujograma es la representación gráfica del algoritmo o proceso. 

    Los diagramas de flujo se pueden aplicar a todos los aspectos de cualquier proceso, desde el flujo de materiales hasta los pasos para realizar una venta o darle mantenimiento a un producto. 

    Tipos de diagramas de flujo 


    • Matricial


    Los agentes que intervienen en el proceso aparecen en la cabecera del dibujo y las actividades desempeñadas se encuentran subordinadas a ellos. Se pueden construir de arriba abajo o de izquierda a derecha. Se recomiendan los primeros.


    • Lineal

    Las actividades del proceso aparecen secuenciadas una debajo de la otra. Es más fácil de construir y es recomendable si los agentes de proceso son mayores a seis, pero aporta menos información.

    Elementos de los diagramas de flujo 




    Te dejo éste otro link para aclarar tus posibles dudas: Fundamentos de programación  






    Referencias: 




    Comentarios

    Entradas populares de este blog

    Algoritmos y Pseudocódigo en PSEINT

    ¿Qué es PSeInt? PSeInt, es la abreviatura de Pseudocode Interpreter, Intérprete de Pseudocódigo.   PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos. ¿Para qué sirve? PSeInt está pensado para asistir a los estudiantes que se inician en la construcción de programas o algoritmos computacionales. Pretende facilitarle al principiante la tarea de escribir algoritmos en este pseudolenguaje presentando un conjunto de ayudas y asistencias, y brindarle ademas algunas herramientas adicionales que le ayuden a encontrar errores y comprender la lógica de los algoritmos. ¿Qué es un pseudocódigo en PSeInt...
    Lenguajes de Programación Gráficos  Lenguaje Gráfico  Se define como un software que permite el acceso de datos remotos de un proceso  y también permite, utilizando las herramientas de comunicaciones necesarias, el control del mismo.  En la programación gráfica, la interfaz se perfila como uno de los elementos mas trascendentales, ya que este dependerá el resultado final. Lenguajes de Programación Gráfica  Visual Basic 6.0 Creado en 1991 por Alan Cooper para Microsoft, este paquete permite programar contenidos informáticos gráficos de manera simple y accesible. La programación gráfica se puede llevar a cabo directamente ya que el Visual Basic no requerirá de los usuarios la escritura de los códigos de programación. JAVA Java es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Es un lenguaje de programación de propósito general, concurrente, orientado ...