domingo, 2 de octubre de 2016

Cierre del reto. José María

Yo al inicio de este reto de la semana i me sentí un poco opacado por toda la buena y exigente competencia que había en él, en general el equipo se sintió de la misma manera desde el concurso de programación hasta el primer avance del proyecto final, finalmente obtuvimos mucha confianza al lograr entender la función de nuestro jugador y al saber como implementar nuestra estrategia en él, esto generó una gran confianza en nosotros mismo y creernos que podemos competir ante tanta competencia, yo opino que aprendí a ser más competitivo y lograr vencer al típico pensamiento mediocre que la mayoría poseemos.
Como recomendación a un compañero le diría que primero, repase mucho python, cada función y como plasmarlas en el código, sintaxis, etc.
La actividad que en mi opinión fue la mejor fue el torneo de estrategias donde se observó el desempeño de cada algoritmo y la capacidad de este mismo.
La actividad que menos me agradó yo creo que fue el concurso de programación dado que se sentía mucha presión por personas que lo lograron acabar en muy poco tiempo, pero esto no significa que no me haya agradado, sin duda me agradó pero no tanto como el final.
No le modificaría nada a este reto, en lo personal no defraudó, fue mucho mejor de lo que se esperaba y muy bien organizado.

Cierre del reto. Ernesto

Los aprendizajes personales que conservo de este reto son: recordé en demasía el uso del lenguaje Python y todo lo que se puede realizar en este.
Además de que entendí el uso de la consola de mi máquina, comprendí la definición de un árbol de búsqueda y pude darle un uso en mi código. Aunque volví a enfrentar dificultades en la hora escribir mi código la asesoría que me fue otorgada fue muy buena.

Mis recomendaciones para los siguientes participantes serían:
1) Recuerda bien el uso de Python
2) Dale una repasada a la documentación y aprende el nombre de las funciones que te pueden ayudar más.
3) Escoge muy bien tu equipo
4) Practica un poco tu resolución de problemas en jueces en línea (OmegaUp, COJ, etc.)
5) Pregunta al momento de tener dudas.
6) Al momento de comparar tu código con el de los demás no te preocupes, cada quien tiene su estrategia.

La actividad que más me gusto fue el torneo final, puesto que se vio reflejado nuestro esfuerzo en resultados, al principio dude de cuan lejos podíamos llegar y al final fue totalmente lo contrario, pudimos llegar a estar entre los 10 mejores, para ser más exactos en el 8to lugar. Para mi este lugar supero mis expectativas, aunque me deja hambriento de mejorar.

La actividad que menos me gusto fue la competencia de programación en el primer día. Lo que no me gusto de este prueba fue mi comportamiento y nuestro resultado me desmotivo un poco. Siento que el propósito de la competencia es bueno, solo que me dejo más en claro que debo seguir practicando mi habilidad para resolver problemas.

En lo personal no cambiaría mucho la estructura u organización del reto. Creo que todas las actividades se complementaban una con otra, aunque me hubiera gustado tener un poco más de tiempo para entender mejor el uso del framework otorgado.

sábado, 1 de octubre de 2016

Cierre del reto. Andres

Me doy cuenta de que en este reto me llevo varias cosas nuevas que no conocía (o no sabía implementar) en python, así como la experiencia en como se utiliza e implementa la inteligencia artificial dentro de un algoritmo para que un jugador humano pueda jugar contra esta (que debe predecir sus movimientos y ganar al usuario).

Las recomendaciones que le daría a mis amigos para llevar a cabo este reto son:
1.- Practica python (para recordar la sintaxis del lenguaje).
2.- Investiga como se utliza las ramos en python.
3.- Prepara tu lógica para resolver problemas.
4.- No te estreses si no te sale al principio, busca ayuda para seguir adelante.

Para mi, la actividad que mas me gusto del reto fue la competencia de programación ya que ahí me di cuenta de que si puedo resolver problemas con la lógica pero necesito mejorar mi tiempo pues utilizo demasiado para poder resolverlos y debo ser capaz de realizarlos en un tiempo menor.

La actividad que menos me llamó la atención fue la conferencia, ya que conocía un poco el tema y lo único interesante para mí de ahí fue el que utilizaron para hacer las simulaciones y el lenguaje utilizado.

Para mejorar el reto yo cambiaría el orden de como inició pues si al inicio se da la introducción del framework y posteriormente se da la competencia de programación, se nos otorga casi un día más para poder planear el algoritmo para generar el jugador estratégico y así tener mas oportunidad de aclarar dudas antes de la competencia final.

En lo personal este reto me dio una gran satisfacción pues al principio pensé que no lograría llegar con mi equipo muy lejos en la tabla de posiciones en la competencia final. Aunque al final fue todo lo contrario, mis expectativas no eran altas pero el resultado de nuestro trabajo si, pues logramos colocarnos en 8va posición de 20 y me siento muy orgulloso de este trabajo y experiencias que me llevo tanto a mi vida escolar como a mi vida personal para seguir mejorándome cada día.

Ex Machina

Ex Machina: Ethical Discussion
Estas pregunas fueron tomadas del sitio Just:Words de RameyLady.

  1. Is Nathan a reliable or unreliable narrator of his own motives and story? What can we say with certainty that we know about him or his actions in the film?
    - No era confiable porque sus motivos no eran claros; no se conocía nada sobre él.
  2. Does Caleb ever do anything we would consider truly unethical? Does he “deserve” his end?
    - Actuo de una manera equivocada pues no conocía todo el contexto y decidió confiar únicamente en la máquina.
    - Si merecia su final por lo antes mencionado.
  3. Speaking of the ending – how many legitimate storylines can you draft for the final scenes in the film? (“Legitimate” means the words and actions on screen as well as the previous scenes can support the storyline you suggest without breaking people’s expectations for story structure, honesty, or common sense.)
    - La confusión del piloto del helicóptero fue nuestra conclusión pues llegó un hombre al lugar y salió de este una mujer y no hay como una coherencia.
  4. Do you think there are any plot holes in the film?
    - No encontramos ninguno porque no hay que confundir un plot hole con el suspenso. 
  5. Before Ava “puts on” the skin of the other robots, do you think she passes the Turing Test? In other words, is her sentience/conscious awareness enough to allow her to exist with humans, or must she also take on the form of humanity?
    - Si pasó la prueba aunque en una ocasión se notó que la conversación era máquina-humano (definición de Bluebook). 
  6. Kyoko is a disturbing character to watch. What do her interactions with the other characters show us about Nathan, Caleb, and Ava? And about herself?
    - Muestra los verdaderos motivos de los demás personajes.
    - Kyoko analiza la situación y se comporta diferente de acuerdo con quien esta ella.
  7. If you say it fast enough, Bluebook sounds a lot like Google. The similarities were thinly veiled. What does the film say to us about the dangers of our technophilic world?
    - Es factible que los buscadores tengan información especifica gracias a nuestras búsquedas; también no se ve muy lejos el que nos espíen a través del celular utilizando el micrófono y la cámara.


jueves, 29 de septiembre de 2016

El torneo de estrategias

Al principio como se había comentado en la sección previa de este blog, se nos complicó demasiado el diseñar o el implementar nuestra estrategia  en el código que se mostró de ejemplo, para un jugador estratégico, pasaron dos días sin que alguno de los integrantes del equipo logrará entender el objetivo de nuestro jugador, el mismo día del pre torneo se logró adquirir la información y el entendimiento de cada una de las funciones que estábamos implementando, nos tardamos todo un día en lograr plasmar nuestra estrategia pero sirvió de mucho aprendizaje para nosotros al saber cómo implementar una estrategia y plasmar nuestras ideas en él.

De haber contado con un mayor rango de tiempo, hubiéramos planeado la distribución correcta entre entender y planificar la estrategia que se hubiera propuesto ya que al solo contar con dos días fue un poco difícil de implementar el "cómo lo hacemos" del "cómo se hace", pero aun así logramos salir adelante y logramos mejorar nuestros conocimientos de programación, es algo que este reto nos aporto y es algo muy valioso tanto para nuestra vida como para la experiencia adquirida.

En cuestión de la tabla de resultados nuestro algoritmo arrojó mejores puntajes de los que esperábamos ya que al hacer pruebas nuestro rango de error era pequeño pero probable, se logró competir entre tanto talento y salir en 8avo lugar de 20 equipos participantes, una gran sorpresa para nosotros; y de alguna manera nos sentimos orgullosos de nuestro trabajo.
De esta manera logramos superarnos a nosotros mismos y dejamos "el miedo"  de que no fuera una buena idea, el crear una estrategia un poco mas compleja de la que originalmente teníamos planeada.
Nos gustó mucho la idea del torneo pues nos tuvo unas horas al pendiente y preocupados (y nerviosos) de ver si nuestro código dio señales correctas de vida y de que no fallara al competir contra los demás equipos rivales.

miércoles, 28 de septiembre de 2016

Programando un jugador estratégico

En nuestro equipo, nosotros tres elegimos como estrategia el elegir las casillas de las esquinas para así poder encerrar a nuestro contrincante y derrotarlo, darle prioridad a estas casillas cuando los posibles tiros sean anunciados y sean expuestos para que si de tres posibles tiros se encuentra una esquina o una casilla en el borde, que el tiro se dirija hacia estas casillas. La lógica de nuestro algoritmo fue en parte difícil de implementar pero creemos que ya esta listo para poder ser utilizado para competir.
Nos hemos enfrentado a diversas dificultades, empezando desde el inicio de este proyecto, al conocer el framework al principio no nos quedó muy claro las funciones y detalles de estas mismas para entender el funcionamiento y poder crear nuestro jugador estratégico, esa dificultad es la que creemos que fue la más grande pero a pesar de esta logramos con el paso de la semana entender el proceso y lograr nuestro objetivo.

La parte que mas nos a gustado es aprender a resolver los problemas por medio de la lógica; buscando la manera de anticipar los movimientos del otro usuario y programarlo de manera de que al utilizar el jugador estratégico, este  responda y venza a su oponente sin ningún problema. Lo que menos nos gusto fue el tiempo para poder implementar este reto pues la falta d este nos generó problemas al principio pero gracias a esto aprendimos a manejar y aprovechar mejor nuestros recursos para poder efectuar la tarea a tiempo.

Nosotros anticipamos para el torneo de estrategias del día de mañana que podemos ser un oponente digno, ya que nos esforzamos por implementar la mejor estrategia disponible. Otro punto que esperamos es que tengamos un número razonable de puntos acumulados para obtener un buen porcentaje de calificación para este reto de Semana i.

martes, 27 de septiembre de 2016

Teoría de juegos

La teoría de juegos es una rama, principalmente de la economía, y de las matemáticas donde se estudia las decisiones para que un individuo tenga éxito, tiene que prestar mucha atención a las decisiones tomadas por agentes que intervienen en la situación.
Esta teoría se relaciona con la ciencia de la computación dado que muchas teoría lógicas toman lugar en la teoría de juegos, asimismo, esta teoría es usada para modelar programas que interactúen entre si.
"Yo actúo de una manera, tú actúas de otra", "Algo sucede. Ese algo que sucede va a depender de lo que ambos hagamos"; así podemos analizar la lógica del problema que se nos presenta e interpretando la frase es que cada persona piensa diferente y nuestras decisiones pueden afectar el resultado esperado.
Dado la información anteriormente  podemos concluir que en este taller estaremos usando la teoría de juegos para poder diseñar nuestro algoritmo; así como hoy se realizó para el framework "Dagor" donde se diseñó e implementó una estrategia para obtener la victoria.

Nos gusto mucho poder ver una evidencia del potencial de Python, el framework, ahí pudimos ver reflejado cada uno de los componentes o funciones que Python posee en acción. Además que pudimos darnos cuenta de lo que la inteligencia artificial puede llegar a hacer en un programa.
El hecho que la explicación haya sido detallada ayudó de manera fundamental a la comprensión de los puntos.
Los juegos expuestos en clase, para un usuario pueden llegar a ser sencillos o básicos, pero para un programador es sorprendente la cantidad de trabajo que esto implica.
Lo que pudimos notar es que al principio no sabíamos que hacer para poder desarrollar nuestro jugadorEstrategico pero conforme probamos varias teorías que teníamos logramos crear nuestra estrategia que implementaremos en este proyecto.


Javier Navarro. (11 Mayo 2011). ¿Qué es la teoría de juegos?. 27 septiembre 2016, de El Blog Salmón, sitio web: http://www.elblogsalmon.com/conceptos-de-economia/que-es-la-teoria-de-juegos
Chris Stokel. (24 Mayo 2015), ¿Qué es exactamente la teoría de juegos?. 27 septiembre 2016, BBC Mundo, sitio web:
http://www.bbc.com/mundo/noticias/2015/02/150220_teoria_de_juegos_que_es_finde_dv