Tuesday, July 9, 2013

Interpretacion de la clase de programacion metodologica 03

Lista de videos de la metodologia de la programacion

Tercera interpretacion de las clases de metodologia de la programacion por Meheran.

0.25

-Profesor Meharan comienza dando un breve resumen del programa Karel y sus funciones.

-Explica como todos archivos donde fueron implementado los codigos del programa Karel terminan en .java

-Karel esta implemtado en Java

-El profesor Meharan imita a un estudiante diciendo, "hey se algo de Java, puedo trabajar con el programa?"

-luego, responde que no, lo unico se se usaran son las funciones o firmas predterminadas en el programa.

*El programa de Karel es un programa creado exclusivamente por los estudiantes y profesores de Stanford, y por lo mismo se encuentra en el eclipse modificado para la misma universidad.

-El profesor Meharan continua explicando que lo aprendido en Karel es solo la introduccion a la metodologia de programacion, y ya la proxima semana comenzaran a ver el contenido principal, despidiendose asi de Karel, quien a su vez donosamente simula la despedida del programa.

1.09

-El profesor continua diciendo que si conocen de Java o programacion, por lo momentos solo enfoquence en lo aprendido de Karel, que todo lo que se conoce de Java sera enseñado

-Alguna pregunta antes de comenzar algo nuevo?

-un estudiante le pregunta sobre el programa de Karel.

-Como se detiene el objeto, o Karel, luego de terminar su funcion?

-El profesor responde que se cierre la ventana, el programa esta diseñado para que cuando termine su funcion el usuario detenga el programa cerrando la ventana.

*o todavia no han implemantado una funcion que cierre el prgrama sin afectar la ventana.

-Luego el profesor atribuye esa pregunta para comenzar el tema sobre los errores comunes.

2.03

-los errores comunes son todos aquellos que uno se encuentra cuando amenudo.

-Asimismo le pregunta a los estudiantes sobre las indicaciones de un producto de limpieza.

-Cuantos aqui han leido las indicaciones de un Shampoo, que estan detras de este?

-el profesor se sorprende al ver que mucha gente alzo la mano, respondiendoles en su caracteristico modo ligero y donoso que deberian salir un poco mas.

-los estudiantes reian.

-Luego el profesor va al punto escribiendo en la pizarra los pasos a seguir, ejemplificando los pasos a seguir de quellos que usan el shampoo.

-Escribe, que los pasos son: Enjuaga, enjabona, repite.

-Deduse que si se escucharian o acatarian las ordenes o pasos como se han predeterminado, nadie saliera de sus baños.

-Esta conotacion significa un loop infinito o un ciclo infinito.

3.13

-El profesor luego empieza a escribir algunos codigos referentes al programa Karel que son :

//   while(frontIsClear())
//    {
 //        turnLeft();
//     }

*Que significa: sige calculando hasta que el frente este libre, sino entonces cruza hacia la izquierda.

-Pregunta entonces: que pasaria si esta cerrado?

-Se encontraria, o nos encontrariamos en un "loop infinito"

-Por lo mismo nos encontramos con un error comun, donde el sintaxis, la forma de escribirlo esta bien pero la logica no.

4.29

-Con su personalidad jocosa el profesor Meharan comenta sobre un comercial donde presentaban un procesador que podia resolver esos loops infinitos en 2.9segundos, continuando que si, pues el prosesador tenia un defecto que se sobrecalentaba demaciado y se fundia, validando el  comercial, ya que el loop infinito era detenido cuando se fundia el procesador.

-Los estudiantes reian.

5.19

-Otro de los errores comunes que nos encontramos en cada programa se trata del "por un solo bicho" que no arranca el programa o no da el resultado deseado. en Inlges, "Off by one bug" o coro por "OBOB"

-OBOB significa que el programador se le olvido o no vio logicamente el paso siguiente para dar con el resultado.

6.00

-El profesor presenta un escenario donde el programa tiene un OBOB

-El escenario es el siguiente: imaginese 5 pasos y en el 5to se encuentra una pared, el metodo esta diseñado para parar en el paso donde se encuentra la pared, pero el metodo esta escrito que LUEGO de pasar por ese paso se DESCARGA un objeto, lo que no terminara la funcion, ya que tiene un OBOB, o un BICHO o BUG logico.

-En este caso el estudiante tiene que analizar todo tipo de escenario antes de que se encuentre con este, o trabajar mientras se encuentran los errores.

*unas de las caracteristicas de los programadores profesionales es la del pensar mucho e investigar mucho antes del empezar a copiar metodos y codigos esporadicamente, el presentar un plan y un flowchart.

-El problema en este caso es sencillo, crear una especie de opcion en el metodo donde cada vez que se presente una situacion donde se llega al final, se pueda luego depositar el objeto y terminar asi la funcion deseada.

*Claro, la programacion es arte y cada quien tiene su tipo de programar dado el resultado deseado, pero en compañias o en el area laboral se siguen algunas relgas especificas como la del organizar nitidamente el programa o el comentar en los codigos para que la gente que este contratada para seguir actualizando el programa sepa que hacer y porque.

7.41

-Asi como el profesor Meharan explica los problemas comunes tambien llega a la funcionabilidad de los comentarios y el como se crean.

-Los comentarios como descritos anteriormente ayudan al programador a ver que funcion tiene el codigo escrito y se crean usando este tipo de simbologia.

// para comentarios de una linea
/* */ para comentario de parrafo, donde se abre con /* y se cierra con */

9.00

-Algunos estudiantes verifican lo aprendido, como el poner los comentarios en los metodos para saber que hace el metodo.

10.23

-*Otra funcion de los comentarios, ejemplificada en el programa de Karel y de los ejercicios que tiene todo estudiante que hacer para aprender a usar estos metodos simples y el como maquinar, logicamente los resultados y el ver como se reusan los metodos para no crear tanta basura ni que sea facil que una fuerza externa, como los hackers, entiendan el programa facilmente y lo modifique y te modifique el programa y se pierda todo lo creado y trabajado, es el de simplificar todos los metodos y rehusarlos exageradamente solo para la funcion deseada.

*esto se aprendera con el tiempo, por los momentos se tiene que hacer los programas como se les manda, aprender de estos y luego de terminado, asimismo mandan las indicaciones, jugar un poco con otro tipo de soluciones, ya que el tiempo para crear un programa, asi como lo mandan el clase varia por medio de la educacion, diciplina e ingenio que uno tenga al programar y a las fuerzas abstractas de la mente logica y cientifica. Un trabajo para todos, pero con mucho magnetismo para aquellos que les encanta la matematica o cualquier otro tipo de habilidad de las ciencia fisica o quimicas de nuestro progreso hacia la tecnologia.

-Los comentarios son escencialmente descripciones de los que no esta implicitamente descrito en el programa, ademas de su descripcion.

12.44

-Una de las tareas del programador antes de trabajar en el programa es el dscomponer todas las funciones del programa en partes y el trabajar luego por separado en cada una de esta, para luego y ir uniendolas y trabajando en la funcion en general.

-El profesor Meharan explica con un ejemplo comun, el de como se llego a la clase. Ejemplifica la vida de un estudiante diciendo de que primero este se despierta, se baña, come, camina o oma el bus y luego entra a clase, cada una de esas funciones tienen sus metodos y codigos para llegar a la clase o resultado, entonces uno como programador tiene que ver lo MACRO y lo MICRO de cada programa, por union o individualmente, buscando siempre el codigo escencial en cada funcion.

-Esta serie de planes se llama "Pasos sabios de refinamiento", o en ingles, "Stepwise refinement" y significa que cada accion tiene sus metodos, y que cada metodo tiene su funcion, y que cada funcion tiene sus variables, o llama a otros metodos, grabando o no la informacion segun el tipo de sus metodos, cuales esta los "Mutadores" o en ingles los "Mutators" como los "accesadores" o en ingles los "Accesors".

*Los mutadores generan informacion y dan una respuesta.
*Los Acesadores generan su funcion y ayudan a los mutadores a dar respuesta.

-Las funciones mas basicas de un metodo son llamadas las funciones primitiva, aquellas que son usadas para la implementacion del metodo.

*Como por ejemplo en un metodo de agarrar algo, el los codigos escritos que hacen que este metodo agarre algo.

17.49

-Para realizar un programa el profesor Meharan explica los que es la "Descompocision" del programa, el descomponer el programa en varias partes.

-Luego habla sobre "El diseño de arriba hacia abajo" o en ingles, "Top Down design" que significa el trabajar en el programa de sus funciones principales a sus funciones especificas.

-Como lo contrario, que se llama "Diseño de abajo hacia arriba" que significa el trabajar desde las funciones espeficicas hacia las mas generales.

-El profesor Meharan explica tambien el nivel de preparacion que un estudiante necesita para trabajar con las formas de Descomponer el programa y dice que los principiantes comienzan a descomponer el programa de arriba hacia abajo y luego por su nivel de competencia llega a trabajar de abajo hacia arriba. pero en si es relativo dado el nivel de comprencion del estudiante, lo que si es cierto es que se ha demostrado bajo estadisticas que los estdiantes se tardan 100horas en pasar de arriba abajo a abajo arriba.

19.29

-El profesor Meharan invita a los estudiantes a crean un programa diseñado de arriba hacia abajo.

-Para este ejercicio el Profesor demuestra nuevamente el programa de Karel cuyo proposito esta vez es el de duplicar el numero de objetos que se encuentre en la via.

-En el programa la primera fila tiene una casilla que tiene 5 objetos y nada mas. El ejercicio debe de terminar con el doble de objetos en la misma casilla, osea que 10 objetos en la misma casilla.

-Para eso uno debe de programar a Karel con la funcion de hacer lo pedido y este metodo se denomina como el algoritmo de aquella funcion, el crean una funcion que calcule y opere un fin numero de datos para dar un resultado esperado, bajo las especificaciones del programa y esto se prepara con otro sin numero de pruebas o ejemplos, primero sencillas, y luego un poco mas complejas, para ver si el programa responde con los resultados esperados, y asi luego y perfeccionando su simplicitud y practicidad.

-En terminos de computacion el algoritmo significa el acercamiento a la respuesta especifica trabajando con la metodo del resolver los problemas de arriba a abajo, o de en general hacia lo mas complejo y detallado.

22.00

-El profesor Meharan usa este programa de Karel y comienza con una clase que extiende la clase original de Karel en la que le define o extiende algunos metodos espeficicos para la elaboracion de la funcion predeterminada que desea el operador que haga el programa.

-En esta clase el profesor Meharan crea unos metodos especificos a la funcion que quiere extenderle al programa de Karel.

-usa el metodo "run" para que Karel se mueva como uno quiera y dentro de este las funciones que uno quiere qu Karel haga si se encuentra algo definidos con otros metodos.

-Estos otros metodos son el de "tomar" o "agarrar" los objetos o "beepers", el otro es el de "retroceder" luego de encontrado el fin de la fila y llegar al comienzo, y el ultimo es el de "duplicar" los objetos en el mismo lugar donde fueron encontrados.

-Para esta serie de problemas el programador debe de emplear una serie de algoritmos que, el programa, u objeto en este caso llamado Karel, tiene que hacer para satisfaccer las demandas del ejercicio.

-El como hacer eso depende de cada estudiante, de su logica y del como resuelve los problemas generales de forma abstracta, con esto un por eso comienza de los mas elemental hacia lo mas espeficico, de arriba a abajo.

-Y el saber muy bien las limitaciones del ejercicio y la forma de ensamblar las piezas del rompecabezas, puesto que la programacion en cierto caso es eso, el armar un rompecabezas y ver el dibujo terminado, o la funcion del programa satisfecha.

27.00

-El profesor Meharan hace incapie en que los programas u objetos mas efectivos son los que no recuerdan nada sino que colocan momentaneamente los resultados de un lugar predeterminado a otros, y mientras mas cerca y rapido sea ese lugar o memoria, mejor, ya que asi no podra ser tan facilmente decubierto por hackeadores que modifican o roban informacion.

-En ese ejemplo el profesor Meharan le recuerda a los estudiantes a que el objeto o Karel no sabe contar, asi que no lo programen como contador sino como administrador, el que mueve las cosas de un lado a otro segun sus funciones y el que hace una serie de algoritmo o cumputaciones simples, pero no de memoria pues no tiene memoria.

-Por ejemplo, un estudiante le pregunta que si Karel puede grabar el numero de "beepers" en si o crear una funcion que asi lo haga, y este responde que Karel no graba informacion, pues solo genera "beeper" son infinitos y infinito mas lo que se le ponga seguira siendo infinito, y que mejor que crear una funcion que grabe y sea facilmente modificada por otra persona es el dejar el resultado cerca, en una especie de momentum, pseudo memoria donde se grabe, pero no en ninguna variable u objeto especifico al menos sea predeterminado en el ejercicio.

-Por lo mismo este programa o ejercicio hace incapie en que Karel haga el proceso de duplicar los "beepers" de una celda a la sigiente de forma separada hasta no encontrar mas "beepers" y haber luego duplicado la cantidad para luego ponerlos todos en el sitio donde encontro la mitad de los "beepers" paso por paso, funcion a funcion.

-Primero agarra un "beeper" y se mueve a la celda siguiente y pone luego dos en esta, luego retrocede al mismo sitio y si ve un "beeper" mas, hace la misma tarea hasta no encontrar mas "beepers" para luego agarrar el bloque de los "beepers" duplicado y colocarlos en el mismo sitio poniendo uno a otro, agarrando un "beeper" de la celda siguente a la anterior hasta el no encontrar mas "beepers" y asi terminar la funcion y devolverse al lugar donde comenzo.

34.00

-El profesor Meharan explica la importancia del como documentar los programas con un ejemplo mal hecho donde el codigo no tiene comentario ni esta dividido en metodos, separados por secciones ni tiene la funcion escrita de cada metodo ni nada de eso, diciendo que en el area profecional un comienza un codigo o un programa y que uno se puede saber todo al respecto pero cuando llega otra persona que no sabe lo que pasa y ya uno esta trabajando en otro codigo entonces se les es dificil decifrar el codigo, perdiendo asi tiempo y esfuerzo en algo es un deber del que programa.

38.00

-El profesor Meharan explica los principios de la "Descompocision":

*resuelve un problema por paso.

*Puede tener de 1 a 15 lineas de codigo, dependiendo de su funcion y su dependencia entre otros metodos o clase, solamente para diferenciarlo de los demas.

*Tiene nombres especificos a la funcion que se va ha hacer.

*Llevan comentarios.

43.00

-El profesor hablar sobre el ejercicio que le deja a los estudiantes donde Karel se encuentra con una serie de escenarios en los cuales este(Karel) encuentra un "beeper" y lo recoje o desaparece, celda por celda por cada columna que tenga el escenario.

-El problema principal es el recojer los "beepers" el secundario es el de pasar por las columnas y el final es el saber detenerse.

-Entonces el profesor Meharan explica como Karel primero ver si tiene un "beeper que recoger para recogerlo y luego crea un "loop" mientras se mueve para ver si ha llegado al limite de esa columna, luego Karel ve si tiene el techo, lo que significa que el escenario ha terminado, sino da una vuela de 180 grados y sigue su funcion hasta el limite de la columna donde revisara la funcion de forma negativa o complementaria, revisando si el techo, o en este caso el "no" techo esta presente para continuar, hasta encontrarlo y terminar.

No comments:

Post a Comment