AssemblerClub / z80asmmooc

A Massive Online Open Course on Z80 Assembly Language
GNU General Public License v3.0
24 stars 1 forks source link

Evaluación vídeo Desafío 1-1 #3

Closed lronaldo closed 7 years ago

lronaldo commented 8 years ago

Hola a todos,

Espero que estéis pasando un buen verano :grinning:.

Os dejo el primer vídeo del curso de Ensamblador Z80. Si tenéis un rato para verlo, agradecería mucho el feedback.

Notas:

Feedback especialmente interesante:

Mil gracias por vuestra ayuda :)

@ronsonmaria @Darky-Lucera @Davitsu @dfreniche @aalmiramolla @AmstradGamer @AugustoRuiz @Blitzman @fmgb @Raymost @villagra-abp @eduardobs79 @heclinares @peterAmoros @realmml

dfreniche commented 8 years ago

Buenas a todos,

Feedback “malo” 😉:

Feedback “bueno”:

Para ir razonando sobre los valores en Hex que hay que meter para cambiar los colores me he hecho esta hoja de cálculo de “vuelva usted a aprender qué era binario, Hex y decimal”. Por si a alguien le sirve:

https://docs.google.com/spreadsheets/d/10UAkvvQWF5JmSNAT7yG_a1IX6WpDGtTTynvd4hTVIU4/edit?usp=sharing

Diego Freniche Brito Blog: http://blog.freniche.com LinkedIn: http://es.linkedin.com/in/dfreniche

El 6 ago 2016, a las 14:07, Francisco Gallego notifications@github.com escribió:

Hola a todos,

Espero que estéis pasando un buen verano 😀.

Os dejo el primer vídeo del curso de Ensamblador Z80 https://www.youtube.com/watch?v=Ng9n24UPJlY. Si tenéis un rato para verlo, agradecería mucho el feedback.

Notas:

La estructura del curso está concebida como: Curso <-- Niveles <-- Desafíos <-- Retos. (<-- subconjunto de) Para cada desafío, se muestran uno o varios retos iniciales como ejemplo. Para los demás retos habrán pistas o explicaciones, pero no se muestra su resolución. En los vídeos se enlazará a los contenidos teóricos que sean necesarios. La idea es que los alumnos aprendan lo que necesiten para resolver los retos, pero siempre a su ritmo y según sus necesidades. Son siempre los alumnos quienes navegan por los vídeos que les hacen falta o consideran interesantes. Habrá una introducción al curso que explique todo esto. También habrá una breve introducción a cada nivel, explicando los objetivos. Feedback especialmente interesante:

Contenidos teóricos que consideréis oportuno explicar Ideas prácticas sobre nuevos retos, desafíos o ejercicios Fallos de explicación, correcciones sobre el vídeo Ideas de mejora de explicación Ideas de mejora estética Ideas sobre cómo acortar los vídeos (La duración ideal no debería ser superior a 5 minutos) Mil gracias por vuestra ayuda :)

@ronsonmaria https://github.com/ronsonmaria @Darky-Lucera https://github.com/Darky-Lucera @Davitsu https://github.com/Davitsu @dfreniche https://github.com/dfreniche @aalmiramolla https://github.com/aalmiramolla @AmstradGamer https://github.com/AmstradGamer @AugustoRuiz https://github.com/AugustoRuiz @Blitzman https://github.com/Blitzman @fmgb https://github.com/fmgb @Raymost https://github.com/Raymost @villagra-abp https://github.com/villagra-abp @eduardobs79 https://github.com/eduardobs79 @heclinares https://github.com/heclinares @peterAmoros https://github.com/peterAmoros @realmml https://github.com/realmml — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AssemblerClub/z80asmmooc/issues/3, or mute the thread https://github.com/notifications/unsubscribe-auth/AA9iLgEhi7EMMpwzwJjUDEZZyQfzY-pnks5qdHkFgaJpZM4JeRFv.

ghost commented 8 years ago

Buenas.

Acabo de ver el video y coincido con Diego en lo de que a veces hay demasiada información en pantalla o demasiado junta. No sabría qué proponer para mejorarlo, puesto que es muy interesante tenerla toda y se agradecen las zonas ampliadas. También tener la caja con Fran explicando da una sensación de cercanía que creo que es buena. El sonido me parece correcto.

En cuanto al contenido: Para mi está claro, bien y es un buen comienzo, pero en el video se comenta que no importa si no se entiende la traducción del código máquina a ensamblador, que ya lo veremos, pero por otra parte se plantean unos retos que creo que una persona que no entienda en absoluto el código ensamblador del video pueda si quiera plantearse en completar. Además debería ensamblarlo. Veo un "gap" en este punto.

Por otro lado pienso que quien se plantee seguir un curso de ensamblador, por muy básico que sea el inicio, un mínimo de conocimiento se ha de tener, por lo que no sé si es un problema o no.

Para entender "la magia" que ocurre al ejecutar ese código hexadecimal que ponemos se han de dar por supuestas unas cuantas cosas que mucho Ingenieros Informáticos de mi generación (y ojo que yo no lo soy) no tienen nada claro, como por ejemplo que la memoria de video está mapeada en la memoria principal y que las modificaciones de esa zona de memoria se reflejan en pantalla o tener en cuenta que z80 es little endian y las posiciones de memoria se han de introducir correspondientemente.

En este sentido y hasta que lo memoricé (lo cual tampoco supone mucho esfuerzo), agradecía mucho tener delante un mapa de memoria del CPC que me dijera desde la posición #0000 a la #FFFF qué es lo que hay. Saber donde empieza la memoria de video y dónde está la pila (y recordar que esta crece para abajo). También saber dónde se encuentra el firmware y la posición mínima de memoria donde poder cargar un programa. Cuando descubrí que podía cambiar las posiciones de pila y video por defecto ya se me abrió el cielo. :)

Sé que los últimos párrafos están fuera del alcance del video y que quizá no sea la mejor manera de empezar y que ya esté planificado cuando introducir esos conceptos, pero para mi resultaron esenciales.

En cuanto tenga un hueco me pondré con los retos.

Un saludo.

lronaldo commented 8 years ago

Muchas gracias por los comentarios, chicos. Son y serán de mucha utilidad :grinning:.

La intención es que el curso tenga la máxima calidad posible, por lo que tendré en cuenta vuestras opiniones y procuraré siempre que sea necesario rehacer vídeos con tal de que las explicaciones y propuestas queden bien.

En cuanto a lo que comentáis, os digo:

Conforme os pongáis con los retos, cualquier conocimiento que echéis en falta también me es importante saberlo. De igual forma, las cosas que más os cuesten, detalles que os frustren, cosas que os gusten... todo eso es esencial para potenciarlo cara a los alumnos :grinning:.

Muchísimas gracias por vuestros comentarios y ayuda. Con revisiones así seguro que podemos sacar un curso genial para mucha gente. (Nota: en la encuesta que hice en twitter, 75% (158) se muestran a favor de un curso de código máquina, 38% (80) con intención de empezar ya mismo).

BeatrizSabater commented 8 years ago

Buenas lronaldo.

El contenido del curso está muy bien y me gusta la forma en la que lo estás explicando (mi opinión es de una persona que no tiene gran conocimiento sobre el tema). Lo único que hecho en falta es una explicación inicial de todo, un vídeo de introducción en vez de ir explicándolo sobre la marcha.

Para mi gusto ese vídeo tendría que tener estos apartados:

Del sonido sólo he de decir que en este vídeo se escucha muy bien, pero que en los siguientes pierde calidad. Aunque parezca una chorrada, si tienes un micrófono del Guitar Hero te recomiendo que lo pruebes a ver qué tal suena, tiene buena calidad y yo lo uso para grabaciones y suelen quedar muy bien.

Respecto al diseño le echaré un vistazo, creo que uno de los problemas principales es el color, hace que te distraigas un poco y hace una separación rara entre las distintas partes del vídeo.

Pienso que la duración es ideal. Y creo que no me dejo nada más.

¡Un saludo! :)

lronaldo commented 8 years ago

Muchas gracias por tu comentario, @NatsuGirl :smile:

En efecto, hacen falta vídeos de presentación e introducción tanto al curso y la metodología como a los niveles individualmente. Estos vídeos están planificados, pero serán los últimos en hacerse. La introducción es mejor hacerla cuando todo el contenido ya está claro y desarrollado, porque el contenido podría cambiar. Así la introducción será siempre coherente con el contenido, al ser hecha al final :).

Tengo pensado conseguir un buen micro para los próximos vídeos que grabe. De hecho, quizá rehaga los primeros vídeos con el nuevo micro. De momento no lo tengo, pero espero conseguirlo pronto. También creo que es importante :).

Cualquier sugerencia de diseño que pueda ser llevada a la práctica y mejore lo actual se agradece sin dudas :+1:

Lo principal que más me preocupa es que probéis con los retos y me digáis dificultad, tiempo que os lleva hacerlos, complicaciones que encontráis, si son entretenidos o no... Esa es la parte esencial del curso :wink:

Mil gracias, como siempre :grinning:

DSkywalk commented 7 years ago

Quizá este video desde la visión del programador lo he visto más flojo.

Supongo que intenta introducir al debugger de Winape, pero creo que sería mejor tener "algo" que compilara y lo vieras luego en el CPC ejecutándose (incluso luego accediendo al editor y/o hacer una ejecución paso a paso). No veo muy práctico, editar memoria a pelo desde el inicio... :disappointed:

Espero igualmente haber sido de ayuda!

lronaldo commented 7 years ago

@DSkywalk Sí, como te he comentado por chat, el fundamento es empezar por el bajo nivel conociendo los detalles. Por eso el módulo 1 del curso será sólo de código máquina, introduciendo algo de ensamblador, pero sólo como forma de entender el código máquina más fácilmente.

Después, en el módulo 2 se usará el editor integrado de WinAPE para ver cómo el código se ensambla y va a parar a la RAM. Así el usuario entiende el proceso y valora la mejora de usar ensamblador respecto a código máquina, pero sin perder de vista que lo que se ejecuta es el código máquina. Eso es muy importante para luego poder perder el miedo a analizar binarios o realizar ciertos tipos de optimizaciones, además de para entender todo de forma correcta, sin imaginarse cosas que no son.

Por último, y esto no tengo claro aún si será en módulo 3 o más adelante, usaremos un editor común y corriente y un ensamblador para generar el binario. Al final terminaremos usando CPCtelera, y el estudiante entenderá todo el proceso que se realiza cuando pones make. Además, esto resta misticismo y permite valorar mejor el ensamblador como herramienta. Hay muchas concepciones equivocadas que provienen del hecho de no enseñar estos detalles, y la idea de explicarlos es evitarlas y permitir la construcción sólida de conocimiento tanto en nuevos programadores como en experimentados que quieren mejorar.

Por supuesto, aunque mi idea es seguir este hilo, pueden haber infinitas formas de conseguir lo mismo, y seguro que muchas mejores. Toda idea es siempre bienvenida. Mil gracias :smile: