sábado, 7 de abril de 2012

ETAPAS DEL CICLO DE PROGRAMACION DE COMPUTADORAS

En las clases anteriores se trato los temas del DESARROLLO DE HABILIDADES DEL PENSAMIENTO
Donde realizamos solución de problemas, con las 4 etapas o fases para elaborar un programa de computador estas son:

1.     ANALIZAR EL PROBLEMA
2.     DISEÑAR UN ALGORITMO
3.     TRADUCIR EL ALGORITMO
4.     DEPURAR EL PROGRAMA

De las cuales profundizamos en la primera:

1.            ANALIZAR EL PROBLEMA con sus 5 etapas a desarrollar en la fase de análisis de un problema (entenderlo)

2.  FORMULAR EL PROBLEMAS: La solución de un problema debe iniciar por determinar y comprender exactamente en qué consiste ese problema.

3.    PRECISAR LOS RESULTADOS ESPERADOS (META Y SUBMETAS)
Para establecer los resultados que se esperan (meta) es necesario identificar la información relevante, ignorar los detalles sin importancia, entender los elementos del problema y activar el esquema correcto que permita comprenderlo en su totalida.
a.    Determinar con claridad cuál es el resultado final (producto) que debe devolver el programa es algo que ayuda a establecer la meta. Es necesario analizar qué resultados se solicitan y qué formato deben tener esos resultados (impresos, en pantalla, diagramación, orden, etc). Usted se debe preguntar:
• ¿Qué información me solicitan?                        • ¿Qué formato debe tener esta información?

4.    IDENTIFICAR DATOS DISPONIBLES  (estado inicial)
Otro aspecto muy importante en la etapa de análisis del problema consiste en determinar cuál es la información disponible. Usted se debe preguntar:      • ¿Qué información es importante?
•       ¿Qué información no es relevante?              • ¿Cuáles son los datos de entrada? (conocidos)
• ¿Cuál es la incógnita?  • ¿Qué información me falta para resolver el problema? (datos desconocidos)
¿Puedo agrupar los datos en categorías?
Otro aspecto importante del estado inicial hace referencia al nivel de conocimiento que el estudiante posee en el ámbito del problema que está tratando de resolver. Es conveniente que el estudiante se pregunte a sí mismo:
• ¿Qué conocimientos tengo en el área o áreas del problema?• ¿Son suficientes esos c       Conocimientos?
• ¿Dónde puedo obtener el conocimiento que necesito para resolver el problema?
• ¿Mis compañeros de estudio me pueden ayudar a clarificar mis dudas?
• ¿Qué expertos en el tema puedo consultar?

Determinar las restricciones: Resulta fundamental que los estudiantes determinen aquello que         está permitido o prohibido hacer y/o utilizar para llegar a una solución. En este punto se deben exponer las necesidades y restricciones (no una propuesta de solución). El estudiante debe preguntarse:
¿Qué condiciones me plantea el problema?       ¿Qué está prohibido hacer y/o utilizar?
¿Qué está permitido hacer y/o utilizar?            
¿Cuáles datos puedo considerar fijos (constantes) para simplificar el problema?
¿Cuáles datos son variables?                         ¿Cuáles datos debo calcular?

Establecer procesos (operaciones)
Consiste en determinar los procesos que permiten llegar a los resultados esperados a partir de los datos disponibles. El estudiante debe preguntarse:
¿Qué procesos necesito?                                           ¿Qué fórmulas debo emplear?
¿Cómo afectan las condiciones a los procesos?                       ¿Qué debo hacer?
¿Cuál es el orden de lo que debo hacer?
En la medida de lo posible, es aconsejable dividir el problema original en otros más pequeños y fáciles de solucionar (submetas), hasta que los pasos para alcanzarlas se puedan determinar con bastante precisión (módulos). Esto es lo que en programación se denomina diseño descendente o top-down.
El diseño descendente se utiliza en la programación estructurada de  computadores debido a que facilita:
La comprensión del problema                        Las modificaciones en los módulos
La verificación de la solución

Luego que aplicamos la primera etapa o fase para elaborar programas de computador: ANALIZAR EL PROBLEMA con sus etapas, empezamos a diseñar algoritmos (diagrama de flujo). 

Continuación etapas del ciclo de programación para computadoras

SEGÚNDA FASE DEL CICLO DE PROGRAMACION: ALGORITMOS

Los algoritmos permiten describir claramente una serie de instrucciones que debe realizar el computador para lograr un resultado previsible,  Vale la pena recordar que un procedimiento de computador consiste en una serie de instrucciones muy precisas y escritas en un lenguaje de programación que el computador entienda como lo es Scratch.
En resumen, un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la solución de un determinado problema.  Los hay tan sencillos y cotidianos como seguir la receta del médico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución de problemas muy complejos.

En términos generales, un Algoritmo debe ser:

Realizable: El proceso algorítmico debe terminar después de una cantidad finita de pasos. Se dice que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso resulta infinito o durante la ejecución se encuentra con un obstáculo insuperable sin arrojar un resultado.
Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o máquina) sepa qué, cómo y cuándo hacerlo. Debe existir un procedimiento que determine el proceso de ejecución.
Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuando se ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La precisión implica determinismo.

REPRESENTACION DE ALGORITMOS:

Se pueden representar de muchas maneras pero en este solo veremos dos formas: Seudocódigo y diagramas de flujo.  En seudocódigo la secuencia de instrucciones se representa por medio de frases o proposiciones, mientras que en un Diagrama de flujo se representa por medio de gráficos.
El Seudocódigo está compuesto por proposiciones informales en español que permiten expresar detalladamente las instrucciones que llevan desde un estado inicial (problema) hasta un resultado deseado (solución).
Utilizar diagramas de flujo para representa un algoritmo tiene claras ventajas.
a. Clarificar  el pensamiento: Aquí se identifica cómo se conectan los procesos y se dan cuenta de cómo estos se pueden organizar o agrupar para darles el orden lógico correcto.
b. Identificar pasos erróneos: Sobre un diagrama es más fácil identificar los cambios que se requieren para el correcto funcionamiento de un programa de computador que hacerlo sobre código.
Los diagramas de flujo son una de las técnicas más utilizadas para representar gráficamente la secuencia de instrucciones de un algoritmo.  Estas instrucciones están compuestas por operaciones, decisiones lógicas y ciclos repetitivos, entre otros.

TERCERA FASES DEL CICLO DE PROGRAMACION: TRADUCIR EL ALGORITMO
Luego que se realiza el análisis del problema y el diseño y representación gráficamente del algoritmo se pasa a ala etapa de traducción del algoritmo a un lenguaje de programación determinado (el nuestro será Scratch).  Cada lenguaje posee sus propias reglas gramaticales, por lo tanto el estudiante debe conocer de antemano la sintaxis que debe utilizar para resolver el problema.

CUARTA FASE DEL CICLO DE PROGRAMACION: DEPURAR EL PROGRAMA
Después de traducir el algoritmo a un lenguaje de programación como Scratch, el programa resultante debe ser probado y validados los resultados.  A este proceso se le conoce como depuración.  Depurar programas contribuye a mejorar la capacidad en los estudiantes a resolver problemas; la depuración basada en la retroalimentación es una habilidad útil para todo la vida.

Ahora vamos a emplear un ejemplo de estas cuatro etapas o fases para elaborar un programa de computadora.

EJEMPLO PASO A PASO


Desarrollar un programa en Scratch que pregunte al usuario 3 números naturales o enteros estos sean guardados en variables, y se muestre en pantalla la suma, la resta, la multiplicación y división de los tres números.
DESARROLLO
1.            Análisis del problema:
  1. Formulación del problema: Aunque la formulación del problema esta claramente determinado podemos decir: Desarrollar un programa en Scratch que pregunte al usuario tres números naturales o enteros y estos sean guardados en variables para realizar las cuatro operaciones básicas.
  2. Resultados esperados: Que los tres números sean naturales o enteros que estos sean digitados por el usuario y que el resultado de las 4 operaciones básicas sean mostrados en pantalla.
  3. Datos disponibles: Que el usuario es quien digitara los tres números naturales enteros, que debemos realizar las cuatro operaciones básicas con los tres números y mostrarlos en pantalla.
  4. Restricciones: Que deben ser digitados por el usuario, que son números naturales y positivos, que debemos realizar las cuatro operaciones básicas con estos tres números, que se deben mostrar en pantalla.
  5. Procesos necesarios:
1.     Inicio
2.     Conocer los tres números naturales
3.     Realizar una suma con estos tres números naturales
4.     Realizar una resta con estos tres números naturales
5.     Realizar una multiplicación con estos tres números naturales
6.     Realizar una división con estos tres números naturales
7.     Mostrar los resultados en pantalla
8.     fin

2.            Diseñar el algoritmo:
SEUDOCODIGO                                                        
  1. Inicio
  2. Crear las variables num1, num2, num3, suma, resta, multiplicación, división
  3. Conocer los tres números para ello: Preguntar “Por favor digite su primer número natural o entero”
  4. Guardar numero 1 en la variable “num1”
  5. Preguntar “Por favor digite su segundo número natural o entero”
  6. Guardar numero 2 en la variable “num2”
  7. Preguntar “Por favor digite su tercer número natural o entero”
  8. Guardar numero 3 en la variable “num3”
  9. Guardar en la varibale “suma” el valor de “num1” más “num2” mas “num3”
  10. Guardar en la varibale “resta” el valor de “num1” menos “num2” menos “num3”
  11. Guardar en la varibale “multiplicacion” el valor de “num1” por “num2” por “num3”
  12. Guardar en la varibale “división” el valor de “num1” dividido “num2” dividido “num3”
  13. Mostrar en pantalla La suma de los tres números naturales es: “suma” por 10 segundos
  14. Mostrar en pantalla La resta de los tres números naturales es: “resta” por 10 segundos
  15. Mostrar en pantalla La multiplicación de los tres números naturales es: “multiplicacion” por 10 segundos
  16. Mostrar en pantalla La división de los tres números naturales es: “división” por 10 segundos
  17. FIN


DIAGRAMA DE FLUJO DE DATOS

Ahora trata de traducir el algoritmo al lenguaje de programación a Scratch, Si tienes alguna duda cuenta con la docente que estará presta a orientarte.

EJERCICIO PRACTICO

Desarrollar un programa en scratch que pregunte al usuario el nombre, el apellido y la edad.  Estos datos deben ser mostrados en pantalla.
Realice paso a paso las 4 fases o etapas del ciclo de programación de computadora, estos datos deben reposar en tu cuaderno.