Cómo hacer mejores chuletas (cheatsheets)

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.

cheetsheetschuletastraduccion
25 agosto, 2021 Optimisando el uso de las chuletas.
25 agosto, 2021 Optimisando el uso de las chuletas.

Traducción de Inglés a Español realizada por Jose, traductor profesional de Inglés con más de 20 años de experiencia traduciendo textos de todo tipo para la agencia de traducción Ibidem Group.

Texto original escrito por Hillel Wayne y publicado en su web https://www.hillelwayne.com/post/cheatsheets/

 

* * *

Ahora que me gano la vida impartiendo talleres, 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 tienen problemas y podemos hacerlas mucho mejor.

Punto de partida

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.

Teoría de la chuleta

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:

  1. No se dan cuenta de que es material de futuro e intentan utilizarlo en el lugar equivocado. Ejemplo: escribir set SUBSET set2 en lugar de set1 \subseteq set2.1
  2. Saben que no es relevante, pero añade tanto ruido que les cuesta localizar lo relevante.

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.

Primera aplicación

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.

Segunda aplicación

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.

Resultados

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:

  1. Al principio, daba la siguiente progresión antes de los ejercicios de la mitad de la lección. La gente intentaba entonces utilizar el material de la segunda mitad del módulo. Rápidamente pasé a repartirlas antes de los ejercicios de final de módulo, después de haber cubierto todo.
  2. Es muy fácil olvidarse de repartir las progresiones. He añadido nuevas diapositivas a los apuntes de clase en cada nuevo punto de reparto.
  3. No cotejes.

Espero que hayas disfrutado de este vistazo a mi proceso de diseño. Si estás pensando «wow esta persona realmente da una mierda sobre la enseñanza» no dude en ponerse en contacto si usted está interesado en un taller corporativo, o unirse a mi boletín de noticias aquí para los anuncios sobre nuevos talleres públicos!

Gracias a Lito Nicolai y a Greg Wilson por sus comentarios.

Valora este artículo

Articulos relacionados


Plantilla con las etiquetas Html imprescindibles para cualquier proyecto web standard.

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