viernes, 13 de junio de 2014

BLOQUE 1 Diseño y elaboración de algoritmos para la solución de problemas

DISEÑAS Y ELABORAS ALGORITMOS PARA LA SOLUCION DE PROBLEMAS

Problema

La palabra como tal se refiere a una determinada cuestión o asunto que requierede una solución.
Se trata de algún asunto en particular, que en el momento en que
se solucione aportará beneficios.








Metodología de solución
La solución de un problema en informática requiere de siete pasos, dispuestos de tal forma
que cada uno es dependiente de los anteriores, lo cuál indica que se trata de un proceso
complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración.
Los siete pasos de la metodología son los siguientes:

 


Definición del problema
En esta sección se debe redactar en forma clara y precisa el problema.


Análisis del problema
Consiste en establecer una serie de preguntas acerca de lo que establece el problema.
Para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la
solución del mismo, algunas preguntas son:


¿Con qué cuento?
¿Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle
a la computadora y si los datos con los que cuento son suficientes para dar solución
al problema ?

¿Qué hago con esos datos?

Una vez que tenemos todos los datos que necesitamos, debemos determinar qué hacer
con ellos, es decir qué fórmula, cálculos, qué proceso o transformación deben seguir los
datos para convertirse en resultados.

¿Qué se espera obtener?
¿Qué información deseamos obtener con el proceso de datos y de qué forma presentarla?
En caso de que la información obtenida no sea la deseada replantear nuevamente un
análisis en los puntos anteriores.

¿Qué es la prueba de escritorio?
Es seguir uno a uno los pasos, verificando que se llegue siempre a resultados válidos, si

nos encontrarnos con ambigüedades es necesario revisar nuestra Propuesta de solución.

Esto quiere decir que algo hicimos mal. Y en caso de encontrar error es necesario revisar
el proceso desde su Definición.
Podemos preguntarnos ¿funciona? si o no, aquí no puede haber supuestos

Codificación
Consiste en escribir la solución del problema en una serie de instrucciones detalladas en
un código reconocible por la computadora; es decir, en un lenguaje de programación. A
esta serie de instrucciones se le conoce como PROGRAMA.



Definición del problema
En esta sección se debe redactar en forma clara y precisa el problema.
Análisis del problema
Consiste en establecer una serie de preguntas acerca de lo que establece el problema.
Para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la
solución del mismo.
Diseño de la solución o propuesta de solución
Una vez definido y analizado el problema se procede a la creación del método el cuál consiste
en una serie de pasos ordenados que nos proporcione un algoritmo explícito para
su solución.
¿Qué es la prueba de escritorio?
Es seguir uno a uno los pasos, verificando que se llegue siempre a resultados válidos, si
nos encontrarnos con ambigüedades es necesario revisar nuestra Propuesta de solución.
Esto quiere decir que algo hicimos mal. Y en caso de encontrar error es necesario revisar
el proceso desde su Definición.
Podemos preguntarnos ¿funciona? si o no, aquí no puede haber supuestos
 
Codificación
Consiste en escribir la solución del problema en una serie de instrucciones detalladas en
un código reconocible por la computadora; es decir, en un lenguaje de programación. A
esta serie de instrucciones se le conoce como PROGRAMA.
Prueba y Depuración
Prueba es el proceso de identificar los errores que se presenten durante la ejecución del
programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los
siguientes puntos:
1. Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de
encontrar un error.
2. Sospechar de todos los resultados que arroje la solución, por lo tanto, se deberán verificar
cada uno de ellos.
3. Considerar todas las situaciones posibles, normales y anormales.
La Depuración consiste en eliminar los errores que se hayan detectado durante la
prueba para dar paso a una solución adecuada y sin errores.
Puntos importantes a considerar:
1. Para los errores de sintaxis:
Leer todos los mensajes de “error” y actuar en consecuencia.
Usar las estructuras definidas en el lenguaje.
Repetir el proceso hasta que no haya más mensajes.
En caso de error lógico, es necesario revisar nuestra Propuesta de Solución.
Si es necesario usar visores temporales. (Los visores temporales son pantallas de prueba
que nos permiten ver si está bien la forma en la que se presenta el programa para
resolver el problema, también se toman en cuenta los colores, el tipo de letra, tamaño,
etcétera).
Usar las herramientas de depuración. Se refiere a eliminar los errores que se hayan
detectado durante la revisión que se hizo.
Comparar con los datos de la Prueba de Escritorio. (Ver si lo que escribí es la solución


deseada al problema y si es lo que se requería).



Algoritmo
Un algoritmo es un conjunto ordenado y finito de operaciones que se
utilizan para la solución de un problema. Se trata de instrucciones o reglas
definidas a través de pasos sucesivos que permiten realizar una actividad.
Es una serie de actividades encaminadas todas a resolver el problema en
cuestión.Para que un algoritmo pueda ser considerado como tal, debe ser
una secuencia ordenada, definida y finita de instrucciones.



Características de los algoritmos
El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son
ampliamente aceptadas como requisitos para un algoritmo:
1. Carácter finito. Un algoritmo siempre debe terminar después de un número finito de
pasos.
2. Precisión. Cada paso de un algoritmo debe estar precisamente definido; las operaciones
a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso.
3. Entrada. Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes
de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas
entradas son tomadas de conjuntos específicos de objetos.
4. Salida. Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica
con las entradas.
5. Eficacia. También se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como para
que en principio puedan ser hechas de manera exacta y en un tiempo finito por un
hombre usando papel y lápiz.
Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de
rigor formal, puesto que no está exactamente claro que significa “precisamente definido”,
“de manera rigurosa y no ambigua”, o “suficientemente básicas”, y así sucesivamente.
A partir del carácter finito y de la salida se deduce que ante una misma situación inicial
o valores de entrada, (esto es, los datos que inventas cuando haces una corrida de escritorio)
un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción
de los algoritmos probabilistas que ya se mencionaron anteriormente.

Diagramas de flujo
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados
con flechas para indicar la secuencia de instrucciones. Los diagramas de flujo son
usados para representar algoritmos.Un diagrama de flujo es una forma más tradicional de especificar los detalles algorítmicos de un proceso y constituye su representación.



Ventajas de los diagramas de flujo
Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano
reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de
texto.
Permiten identificar los problemas y las oportunidades de mejora del proceso.
Son una excelente herramienta para capacitar a los nuevos empleados y también a los
que desarrollan la tarea, cuando se realizan mejoras en el proceso.
También puede ser utilizados para clases de talleres o de acciones sobre bachilleratos
técnicos.

Reglas para la construcción de diagramas de flujo
Cualquier diagrama de flujo debe tener un inicio y un fin.
Las líneas utilizadas para indicar la dirección del flujo deben ser rectas, verticales y horizontales.
Todas las líneas utilizadas para indicar la dirección del flujo deben estar conectadas.
El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha.
No pueden llegar más de una línea a un símbolo.





Solución de problemas

Ejemplos de problemas y formas de solución
Simulando la preparación de un pay
A continuación se emplea la metodología de solución de problemas para definir e implementar
los pasos necesarios para simular la solución a un problema simple.
Hornear y servir un pay de fruta
Se puede ofrecer la implementación en
el lenguaje de programación llamado C
de la solución encontrada, aunque de
manera simulada. Esto quiere decir que
algunas operaciones no hacen nada en
realidad, sino que simulan la ocurrencia
de acciones que deben llevarse a cabo.
Especificación del algoritmo
El algoritmo presentado a continuación emplea las operaciones (tareas) definidas anteriormente
para resolver nuestro problema. En éste caso no fue necesario emplear operaciones
de control de flujo, pues el algoritmo se puede especificar en forma totalmente
secuencial.
Algoritmo:
1. Obtener la receta (huevos, harina, mantequilla, tipo_fruta, fruta y tiempo_horno).
2. Obtener la cantidad de comensales (comensales).
3. mezclar_base (huevos, harina, mantequilla).
4. hornear_base (tiempo_horno).
5. preparar_fruta (tipo_fruta, fruta).
6. cortar_servir (comensales, tipo_fruta).
Validación del algoritmo
Dominios: Los posibles dominios que existen en el contexto de éste
problema se constituyen a partir de los distintos valores de entrada
que pueden recibirse del usuario. Es decir, distintos tipos de fruta, distintas
cantidades para cada ingrediente, distintos tiempos en el horno
y distintas cantidades de comensales.
Validación: Debe ejecutarse el algoritmo para los dominios definidos,
es decir, cambiando valores para cada dato de entrada, y verificando
que se puede alcanzar el objetivo buscado.
Prueba de escritorio
Sirve para revisar que el algoritmo soluciona tu problema y lo hace de
manera eficiente y efectiva.
Prueba de escritorio: Corroboro con datos ficticios si resuelve mi
problema paso por paso ejemplo:
Preparacion de un pay
Cantidad de huevos (unidades): 3.
Cantidad de harina (gramos): 250.
Cantidad de mantequilla (gramos): 150.
Fruta que se desea en la cubierta: frutilla.
Cantidad de frutilla (gramos): 300.
Tiempo en el horno (minutos): 10.
Comensales: 5.
Mezclando 3 huevos, 250 gramos de harina y 150 gramos de mantequilla...
Horneando la base por 10 minutos...
Preparando 300 gramos de frutilla...
Cortando el pay de frutilla en 5 pedazos...
¡Listo!
La finalidad de la solución de problemas es poder codificar en un lenguaje de programación
los algoritmos, que previamente se desarrollaron y se esquematizaron en un diagrama
de flujo. Como anteriormente se mencionó, existen varios lenguajes de programación
que son útiles para esta codificación. Uno de ellos es el Basic-256, el cual es un editor de
código sencillo y amigable por lo básico de sus herramientas. Por lo que utilizaremos este
programa para la solución de problemas.
p El algoritmo se puede especificar en
forma totalmente secuencial como

en el caso de una receta de pay

BLOQUE 3

Manipulación y empleo de software educativo


SOFTWARE EDUCATIVO

Software Educativo
El Software Educativo se puede considerar como el conjunto de recursos informáticos diseñados con la intención de ser utilizados en el contexto del proceso de enseñanza aprendizaje.
Caracteristicas
Permite la interactividad con los estudiantes, retroalimentándolos y evaluando lo
aprendido.
Facilita las representaciones animadas.
Incide en el desarrollo de las habilidades a través de la ejercitación.
Permite simular procesos complejos.
Reduce el tiempo para impartir gran cantidad de conocimientos facilitando un trabajo
diferenciado, introduciendo al estudiante en el trabajo con los medios computarizados.
Facilita el trabajo independiente y a la vez un tratamiento individual de las diferencias.
Son interactivos. Contestan inmediatamente las acciones y permiten un diálogo y un
intercambio de información entre el computador y los estudiantes.
Individualizan el trabajo . Se adaptan al ritmo de trabajo de cada persona.
El entorno de comunicación o interfaz. La interfaz es el entorno a través del cuál los
programas establecen el diálogo con sus usuarios, y es la que posibilita la interactividad
característica de estos materiales.

Graphmatica
Entre el software educativo relacionado a las matemáticas, se encuentra Graphmatica.
Con este programa se pueden representar gráficamente cálculos y ecuaciones numéricas.
Funciona unidamente para el sistema Windows.
Se pueden representar funciones cartesianas, funciones de relaciones y ecuaciones
entre otras.
 
Programas Didácticos
Programas de Consulta
De consulta: Como por ejemplo los atlas geográficos y los atlas biológicos.
El navegador google maneja: el google maps por dar un ejemplo, aunque no es el único
que existe gratis para su uso en la red de Internet. Existen otros software educativos de
atlas geográficos, o biológicos que son de compra, como el siguiente.


Tutoriales 
Tutoriales: son aquellos programas que transmiten conocimiento al estudiante a través
de pantallas que le permiten aprender a su propio ritmo, pudiendo volver sobre cada
concepto cuantas veces lo desee.
 

El mejor tutorial para aprender a tocar guitarra acústica de una manera rápida, fácil y entretenida.
Tutorial de guitarra en español por Mario Freiria



Traductores

Esta herramienta te permite traducir texto o discursos de un idioma a otro, se pueden
incluir en programas o navegadores web, existen diferentes programas traductores y muchos
de estos los puedes encontrar en internet.
 


Mapas conceptuales
Los mapas conceptuales son la representación gráfica de ideas o conceptos, este tipo de
esquemas facilitan la comprensión y memorización, es de mucho mayor interés si estos
esquemas de aprendizaje están en soporte digital o formato web.


Ejercitación
• Ejercitación: permite al estudiante reforzar los conocimientos adquiridos llevando el
control de los errores y una retroalimentación positiva. Propone diversos tipos de ejercicios

tales como “completar”, “unir con flechas”, “selección múltiple”, entre otros.

Simulación
Simulación: simulan hechos y/o procesos en un entorno interactivo, permitiendo al
usuario modificar parámetros y ver cómo reacciona el sistema ante el cambio producido.
En algunos lugares o empresas lo utilizan para capacitación profesional o adiestramiento
para enseñar a manejar algún equipo o maquinaria.
También ha sido aplicado para cuestiones militares y capacitación del ejército en algunos
países.

Lockheed Martin Prepar3D
(Simulación de aeronaves, sumergibles y vehículos terrestres, con aplicación civil y militar)
 
 
 


Lúdicos
Lúdicos: proponen el aprendizaje a través de un ambiente interactivo, El usuario obtiene
puntos por cada logro y le quita por cada error. Crean una base de datos con los
puntajes para conformar un “cuadro de honor”.


 GCOMPRIS



GCompris es un programa de cómputo educacional con diferentes actividades para niños entre 2 y 10 años de edad.
Algunas actividades son como juegos, pero siempre son educacionales
Encontrarás algunas actividades dentro de los siguientes temas:
  • descubriendo la computadora: teclado, ratón, diferentes movimientos del ratón, ...
  • aritmética: tabla de memoria, enumeración, tabla de doble entrada (balance), imagen espejo, ...
  • Ciencia: El canal, El ciclo del agua, El submarino, ...
  • geografía: Coloca los países en el mapa.
  • juegos: ajedrez, memoria, ...
  • lectura: práctica de lectura
  • otros: Aprende a decir la hora, Rompecabezas de pinturas famosas, dibujos por vectores, ...
En total, GCompris comprende mas de 100 actividades y evoluciona constantemente. GCompris es Software Libre, por lo tanto tienes la posibilidad de adaptarlo a tus necesidades, o de mejorarlo, y porque no, de compartir tu trabajo con niños de todo el mundo.



DESCARGAR:
http://gcompris.net/index-es.html


Herramientas del software educativo
Los programas didácticos, cuando se aplican a la realidad educativa, realizan las funciones
básicas propias de los medios didácticos en general y además, en algunos casos, según la
forma de uso que determina el profesor, pueden proporcionar funcionalidades específicas.
Funciones que pueden realizar los programas
Función informativa
La mayoría de los programas a través de sus actividades presentan unos contenidos
que proporcionan una información estructuradora de la realidad a los estudiantes.
Los programas tutoriales y, especialmente las bases de datos, son los programas que realizan
más marcadamente una función informativa.
Función instructiva
Todos los programas educativos orientan y regulan el aprendizaje
de los estudiantes ya que, explícita o implícitamente, promueven
determinadas actuaciones de los mismos encaminadas a facilitar el
logro de unos objetivos educativos específicos.
Con todo, si bien la computadora actúa en general como mediador
en la construcción del conocimiento y el metaconocimiento
, son los programas tutoriales los que realizan de manera más explícita
esta función instructiva, ya que dirigen las actividades de los
estudiantes en función de sus respuestas y progresos.
Función motivadora
Generalmente los estudiantes se sienten atraídos e interesados
por todo el software educativo, ya que los programas suelen incluir
elementos para captar su atención, mantener su interés y, cuando
sea necesario, focalizarlo hacia los aspectos más importantes de las
actividades.
Función evaluadora
La interactividad propia de estos materiales, que permite responder
inmediatamente a las respuestas y acciones de los estudiantes,
les hace especialmente adecuados para evaluar el trabajo que se va
realizando con ellos.
Función investigadora
Los programas no directivos, especialmente las bases de datos, simuladores y micromundos,
ofrecen a los estudiantes interesantes entornos dondehacer lo siguiente: buscar determinadas
informaciones, cambiar los valores de las variables de un sistema, etcétera.
Además, tanto estos programas como los programas herramienta, proporcionan a los
profesores y estudiantes instrumentos de gran utilidad para el desarrollo de trabajos de
investigación que se realicen básicamente al margen de las computadoras.
Función expresiva
Dado que las computadoras son capaces de procesar los símbolos mediante los cuáles las
personas representamos nuestros conocimientos y nos comunicamos, sus posibilidades
como instrumento expresivo son muy amplias.
Función metalingüística
Mediante el uso de los sistemas operativos (MS/DOS, WINDOWS) y los lenguajes de programación
(BASIC, LOGO…) los estudiantes pueden aprender los lenguajes propios de la
informática.
Función lúdica
Trabajar con las computadoras realizando actividades educativas es una labor que a menudo
tiene unas connotaciones lúdicas y festivas entre los estudiantes.
Función innovadora
Aunque no siempre sus planteamientos pedagógicos resulten
innovadores, los programas
educativos se pueden considerar
materiales didácticos ya que
utilizan una tecnología recientemente
incorporada a los centros
educativos y, en general, permiten
muy diversas formas de uso.
Esta versatilidad abre amplias
posibilidades de experimentación
didáctica e innovación educativa en el aula. 
 

INTELIGENCIA ARTIFICIAL




La inteligencia artificial (IA) es un área multidisciplinaria que, a través de ciencias como la informática, la lógica y la filosofía, estudia la creación y diseño de entidades capaces de razonar por sí mismas utilizando como paradigma la inteligencia humana.


Tan general y amplio como eso, es que reúne varios campos (robótica, sistemas expertos, por ejemplo), todos los cuales tienen en común la creación de máquinas que pueden pensar. En ciencias de la computación se denomina inteligencia artificial a la capacidad de razonar de un agente no vivo. John McCarthy acuñó la expresión «inteligencia artificial» en 1956, y la definió así: “Es la ciencia e ingenio de hacer máquinas inteligentes, especialmente programas de cómputo inteligentes









DESCARGAR:

 

CATIA


CATIA (computer-aided three dimensional interactive application) es un programa informático de diseñofabricación e ingeniería asistida por computadora comercial realizado por Dassault Systèmes. El programa está desarrollado para proporcionar apoyo desde la concepción del diseño hasta la producción y el análisis de productos. Está disponible para Microsoft WindowsSolarisIRIX y HP-UX.
Provee una arquitectura abierta para el desarrollo de aplicaciones o para personalizar el programa. Las interfaces de programación de aplicaciones, CAA2 (o CAAV5), se pueden programar en Visual Basic y C++.
Fue inicialmente desarrollado para servir en la industria aeronáutica. Se ha hecho un gran hincapié en el manejo de superficies complejas. CATIA también es ampliamente usado en la industria del automóvil para el diseño y desarrollo de componentes de carrocería. Concretamente empresas como el Grupo VW (VolkswagenAudiSEAT y Škoda), BMWRenaultPeugeotDaimler AGChryslerSmart y Porsche hacen un amplio uso del programa. La industria de la construcción también ha incorporado el uso del software para desarrollar edificios de gran complejidad formal; el Museo Guggenheim Bilbao, en España, es un hito arquitectónico que ejemplifica el uso de esta tecnología

Descargar: http://catia.es.downloadastro.com/

PROGRAMA DIDACTICO
Un programa didáctico es un software educativo que se utiliza con la finalidad de apoyar el proceso de enseñanza-aprendizaje. Por medio de estos programas puedes aprender sobre algún tema o asignatura específico con la ayuda de actividades visuales y tácticos.



JClic 

JClic es una plataforma de unidades didácticas y ejercicios y juegos para escolares.
El programa contiene un gestor para estos ejercicios que se descargan desde un directorio de aplicaciones en la página del autor. Los hay de todas las asignaturas de educación general, de diferentes dificultades y en varios idiomas.


 http://jclic.uptodown.com/