Texto original escrito por Hillel Wayne, experto en métodos formales y testeo de software de alta complejidad, que ofrece consultoría, charlas, workshops y textos de gran interés, de los cuales hemos elegido este, que traducimos aquí al Español para su divulgación.
Texto original escrito por Hillel Wayne y publicado en su web HillelWayne.com
***
Ahora que me gano la vida impartiendo talleres sobre software, dedico mucho tiempo a mejorarlos. Una de las mejoras que realicé fue la creación de «progressive cheatsheets» o chuletas progresivas. Más adelante hablaré de la motivación y la implementación, pero este sería el aspecto que tendrían:
Progresiones #1 y #2 de la chuleta (haz click para ver a tamaño completo).
Asumo que sabes «por qué usar chuletas»… Es mucho mejor consultar una página que resume todo lo esencial, que buscar en un libro entero. Pero las chuletas o software cheasheets tienen problemas y podemos hacerlas mucho mejor.
Disclaimer: Esta traducción de ingles a español ha sido realizada de forma gratuita, no profesional, por un traductor amateur en Ibidem Group, por lo que podría contener imprecisiones. Si necesitas traducciones de software para un proyecto profesional, te ofrecemos traductores profesionales nativos expertos en localización de software. Contacta con nuestra empresa de traducción en Madrid o nuestra traductores en Barcelona.
INDICE
Actualmente dirijo talleres para 2 lenguajes de programación, TLA+ y Alloy, y necesito chuletas para ambos. Ambos tienen chuletas públicas, pero aunque puedo utilizar la de Alloy tal cual, la chuleta de TLA+ tiene varias páginas. Las hojas de trucos deberían tener como máximo una página. Si pasan de dos, nadie las mira. Primer paso: hacer una versión de una página.
Mi herramienta preferida es LaTeX, un DSL de composición tipográfica que creció mucho más allá de su nicho original. Es la mejor herramienta para el control de diseños. Esto se debe menos a su propia calidad intrínseca y más que nada a que el resto de alternativas son mucho, mucho peor.
He encontrado una plantilla de chuleta aquí. Divide el cotnenido en secciones y el diseño en columnas. LaTeX calcula cómo distribuir el contenido en las columnas por mí. Esto es bueno porque al principio no sabía cuánto contenido necesitaba o cómo agruparlo mejor. Podía reordenar las secciones y hacer que todo se redistribuyera automáticamente. Desgraciadamente, LaTeX es muy quisquilloso y a menudo acababa con el contenido desbordando las columnas. Pero arreglar los errores extraños de LaTeX sigue siendo mejor que intentar maquetar todo manualmente.
Las chuletas básicas me sirvieron durante un tiempo, pero luego empecé a tener problemas. No los que hacen que las chuletas sean inútiles, sino los que las hacen más lentas.
Las chuletas deben ser densas. Cuanta más información se incluya en una sola página, más probable será que alguien encuentre lo que necesita… si es que ya sabe lo que necesita.
Si un estudiante no sabe lo que necesita exactamente, puede intentar aplicar la idea equivocada. Cosas como usar con cuando en realidad necesitan ELEGIR, cambiar la notación de función y conjunto de funciones, cosas así.
Este es un problema mucho mayor cuando todavía están aprendiendo el material. Todavía no tienen un modelo mental, así que no saben qué material es relevante y cuál no. La mayor parte de la chuleta es material que aún no hemos cubierto. Esto tiene dos modos de fallo:
Mis talleres son largos y abarcan material exigente. Ya estoy metiendo toda una disciplina en el cerebro de mis alumnos, no hace falta añadir más dificultad encima. Así que busqué formas de solucionar este problema.
La solución más directa es ocultar todo lo que aún no he cubierto. En lugar de dar a los alumnos una sola chuleta, les doy siete. Después de la primera lección, reciben la chuleta nº 1, que sólo cubre la primera lección. Después de la segunda lección, reciben la ficha nº 2, que cubre tanto la primera como la segunda lección. Así hasta llegar a la versión final de la chuleta, que lo tiene todo.
Podemos hacerlo con el paquete etoolbox de LaTeX. Definimos un interruptor con newtoggle, como \newtoggle{lógica temporal}. Luego creamos un nuevo archivo main.tex que importamos a cheatsheet. En el documento raíz, hacemos
\newtoggle{topic A}
\newtoggle{topic B}
\newtoggle{topic C}
% ...
\input{main}
\toggletrue{topic A}
\input{main}
\toggletrue{topic B}
\input{main}
\toggletrue{topic C}
Esto significa que cada instancia de main tendrá activos todos los interruptores anteriores. Ahora podemos escribir:
\iftoggle{topic B}{content}{}
Si la conmutación es verdadera, se procesa normalmente. Si la conmutación es falsa, nos saltamos la renderización de toda la sección. Ahora puedo estar seguro de que las únicas cosas que el estudiante está viendo son cosas que ya hemos cubierto.
Esto resuelve muy bien el problema. Sin ruido y sin rodeos. Pero podemos hacerlo mejor.
Los temas de la chuleta están ordenados por temas, no por lecciones. Piensa en algo como las funciones de Python: pondrías la sintaxis de los argumentos variados justo después de la sintaxis regular, aunque uno sea un tema para principiantes y el otro sea un tema avanzado.
Así que la chuleta final podría tener este aspecto:
columna | columna |
A | C |
B | D |
¿Cómo debería ser la chuleta que sólo cubre A y D? Si eliminamos C y B, LaTeX recalculará el diseño de la página como
columna | columna |
A | |
D |
En la chuleta anterior, el alumno ve la A en la parte superior izquierda y la D en la parte inferior izquierda. Pero en la chuleta con los cuatro temas, la parte inferior izquierda es ahora la C. Si el alumno se acostumbró a ver la D en la parte inferior izquierda, tendrá que romper su hábito y volver a aprender la nueva ubicación. El problema se agrava a medida que añadimos más temas y progresiones a la hoja.
Esto puede parecer un problema menor, pero no me gusta. Es una sobrecarga mental adicional para los estudiantes que no tiene nada que ver con el material real. Dificultad accidental, no esencial. Lo quiero fuera. Cada parte del contenido debe estar en el mismo lugar en cada chuleta.
Pensé que esto sería bastante difícil. Tendría que decirle a LaTeX que maquetara el documento como si todo el contenido estuviera allí, pero que no mostrara trozos de texto. Eso parecía una técnica de LaTeX de nivel experto.
Así que hice trampa.
\newenvironment{requires}[1]
{
\iftoggle{#1}{
% We've passed this point, show normal
}{
\color{white} % Hide text
\rowcolors{2}{white}{white} % Hide tables
}
}
En lugar de utilizar \iftoggle, he creado un nuevo entorno. Si el toggle es verdadero, procedemos normalmente. Si es falso, sin embargo, hago que todo el texto en el entorno sea blanco. El texto se sigue renderizando, lo que significa que el diseño es consistente entre las hojas. Pero nadie puede verlo, así que no distrae. Así se hace el trabajo.
El principal inconveniente es que no funciona dentro de las tablas. Algo sobre los entornos anidados vuelve loco a LaTeX. Pero puedo envolver toda la tabla en un bloque requires, así que al dividir las tablas puedo obtener más o menos los beneficios aquí. La estética es peor pero eh.
Si quieres hacer tus propias chuletas progresivos, aquí tienes una plantilla de ejemplo que produce esta salida de muestra.
Lo probé por primera vez en un taller de Facebook en noviembre. Funcionó de forma espectacular. Las personas que utilizaron las progresiones desde el principio lo tuvieron mucho más fácil para encontrar el material correcto que las personas que sólo utilizaron la versión final de la chuleta. El primer grupo también tuvo menos falsos negativos, cuando intentaron utilizar el concepto equivocado. Lo considero un gran éxito. Sin embargo, hay que hacer tres apuntes:
Espero que hayas disfrutado de este vistazo a mi proceso de diseño. Si estás pensando «wow a esta persona realmente le importa la enseñanza» no dudes en ponerte en contacto conmigo para solicitar un taller corporativo, o unirte a mi boletín de noticias aquí para recibir avisos de nuevos talleres de software!
Gracias a Lito Nicolai y a Greg Wilson por sus comentarios.
Articulos relacionados
Plantilla con las etiquetas Html imprescindibles para cualquier proyecto web standard. Dentro de nuestra sección de traducciones web incluimos aquí la traducción de este artículo sobre la plantilla de etiquetas Html comunes a todos los proyectos web. Una chuleta muy útil para...
Traducción al español de un texto sobre aprendizaje, lenguaje, PNL, BERT, MT, PEMT.... By Sebastian Ruder
Traducción al español de las expresiones de los departamentos de informática