Juan Castro

Como planeo mis clases utilizando Emacs y Org-mode

Posted at — Sep 21, 2019

Cómo usuario de Emacs he tratado de llevar su uso a la mayoría de los aspectos de mi vida, y uno donde no podía faltar era, por supuesto, en mi trabajo. Como profesor de matemáticas, una de las principales tareas que realizo es planear mis clases, así que dediqué un tiempo en construir un sistema que me permitiera planear mis clases, llevar control sobre ellas y presentar mis planeaciones en un formato legible para el humano promedio. A continuación comparto lo que he logrado hasta ahora.

¿Cómo planeaba antes?

Aprendí a planear clases durante formación como docente, en aquella época se me dio una plantilla de MS-Word y con ella trabajaba. El problema de esta plantilla es que MS Word (y Libre Office también en ocasiones) hacen una tortura manejar tablas; en incontables ocasiones la tabla se movía, se negaba a cambiar su tamaño, a añadir nuevas filas, y en más de una ocasión fue más sencillo reiniciar todo el trabajo que arreglar la tabla que ya tenía.

https://pixelfed.social/storage/m/ed927593d303a303939e1879ef5534e46ecb9617/e267cbf98ba9486f9e7c8afbc2d1cfcd402a8965/TJNrt2UyTrm8QiMo9PH39WTZjn2NNTJk2ogqMTTH.png

Por alguna misteriosa razón, todos los profesores que conozco utilizan un formato similar en tabla, pero colocan todo dentro de una sola celda, es decir, la tabla funciona más que nada como "marco" para la hoja. Dado que nada me obligaba a mantener ese formato tan enfadoso de escribir decidí eliminarlo, sin embargo, la información que contiene se mantiene prácticamente intacta.

Seleccionando las herramientas

El formato elegido para trabajar fue Org-mode, un formato que, curiosamente, uso para todo, menos para organizar mi día. Org-mode posee la sencillez de escritura de Markdown, el poder de LaTeX (especialmente para escribir fórmulas), la capacidad de exportar en varios formatos, capacidad de seguimiento de hábitos, entre otras muchas bondades que lo hacen sumamente poderoso y a la vez (casi siempre) fácil de usar.

Gracias a su capacidad de "doblar" los encabezados me permite ver solo la sección que me interesa en el momento y mantener "dobladas" el resto de forma que no interrumpan mi lectura, y su capacidad de exportar en PDF con LaTeX me permite generar un documento rápidamente para entregar a la dirección de la escuela.

Describiendo el sistema

Al abrir alguna de mis planeaciones lo primero que encontramos es un encabezado llamado "org-data" acompañado de una etiqueta :noexport:; este encabezado incluye todas las opciones de org-mode y LaTeX:

#+title: PLANEACIÓN DIDÁCTICA
#+author: Yo
#+options: toc:nil date:nil num:nil p:nil tags:nil todo:nil
#+seq_todo: COMENZADO(t!) | TERMINADO(d!)
#+startup: indent
#+startup: logdrawer
#+latex_class: koma-article
#+latex_header: \usepackage{lmodern}
#+latex_header: \fontfamily{lmss}\selectfont 
#+latex_header: \usepackage[margin=1in, letterpaper]{geometry}
#+latex_header: \usepackage[spanish]{babel}
#+latex_header: \usepackage{fancyhdr}
#+latex_header: \setlength{\headheight}{15.2pt}
#+latex_header: \pagestyle{fancy}
#+latex_header: \chead{\bfseries ESCUELA SECUNDARIA \\ "nombre de la escuela" \\ SECUENCIA DIDÁCTICA}
#+latex_header: \lhead{\includegraphics [width=2cm]{/path/to/escudo.png}}
#+latex_header: \rhead{\includegraphics [width=2cm]{/path/to/otro-escudo.png}}
#+latex_header: \cfoot{}
#+latex_header: \renewcommand{\headrulewidth}{0pt}
  • title y author: Incluyen el título y mi nombre, para que aparezcan al exportar a PDF

  • options: Las opciones de exportación de org-mode. Evitan que genere un índice, la fecha de creación, que numere cada encabezado, que exporte las etiquetas y las secuencias TODO

  • seq_todo: La secuencia de TODO, en lugar de mostrar TODO y DONE, mostrará COMENZADO y TERMINADO. El signo de admiración añade la fecha cada vez que se modifica el estado TODO del encabezado.

  • startup: indent: Añade un sangrado de manera que el contenido de los encabezados estén alineados con el subnivel al que pertenecen.

  • startup: logdrawer: Guarda las notas y las fechas cuando cambia el estado TODO en un drawer llamado LOGBOOK.

  • latex_header: Órdenes de LaTeX, necesarias para darle formato al PDF que se genere. Entre otras cosas, definen los márgenes, el tipo de papel y el encabezado de las páginas.

La mayoría de esas instrucciones las descubrí en el momento, googleando lo que quería lograr y encontrando la información en foros y en el manual de Org-mode.

El siguiente encabezado que vemos es uno llamado "DATOS GENERALES", donde incluyo la misma información que en la sección del mismo nombre en el viejo formato de Word, con al diferencia que aquí he vertido la información como una lista.

Un tercer encabezado se llama "PRIMER TRIMESTRE" y aquí es donde comienza el verdadero trabajo.

Las secuencias y las sesiones

Cada trimestre de la clase de matemáticas está dividido en una serie de Secuencias (o contenidos), cada secuencia se divide en sesiones de 50 minutos, y estas a su vez, en 3 momentos: inicio, desarrollo y cierre.

Existen dos formas de planear una secuencia, cada una con sus ventajas y desventajas:

  • Planear por secuencia: Se planea el inicio, desarrollo y cierre de una secuencia didáctica de varios días. Es más sencillo de planear y más rápido, pero también más ambiguo y con mas oportunidad a la improvisación.

  • Planear por sesión: Se planea el inicio, desarrollo y cierre de cada una de las sesiones que componen la secuencia. Esta forma es más tardada y más compleja, pero añade más puntos de control y elimina mucha de la ambigüedad que hay en el otro método.

Personalmente soy partidario del segundo método, aunque he probado ambos y mucho tiempo preferí planear por secuencias, hoy encuentro más provechoso tener claro el trabajo en cada una de las sesiones de trabajo.

Todas las sesiones comienzan con los organizadores curriculares, que he vertido de la siguiente forma:

\dotfill
** Secuencia 1  (# de sesiones: fecha/inicio --> fecha/cierre)
Nombre del contenido o secuencia
+ *Aprendizaje esperado:* 
+ *Eje temático:* 
+ *Tema:* 
+ *Consideraciones previas:* $0
\dotfill

Como cada secuencia comienza con exactamente los mismos datos, he creado una plantilla de YASnippet, de manera que solo escribo sec + TAB y se despliega toda la plantilla, al presionar TAB al siguiente elemento y puedo llenarla sencillamente.

Dos elementos quizá llamen la atención. El primero, la orden \dotfill; esta es una función de LaTeX que añade una línea punteada, solo sirve para separar los organizadores curriculares del resto de la información. El segundo elemento que llama la atención lo hace por su ausencia, ¿por qué escribo las fechas de una forma tan informal en lugar de usar alguna de las muchas opciones que Org-mode ofrece? La razón es que el formato de org-mode (es decir, el estándar ISO) es bastante confuso para lo que estoy acostumbrado, y, aunque me permitiría usar la agenda, tuve algunos problemas que explicaré más adelante.

Ahora toca llenar cada una de las sesiones que componen la secuencia. Para esto, nuevamente he usado una plantilla de YASnippet:

*** Sesión 1
***** Inicio (  min.) 
- 

***** Desarrollo (  min.)
- 

***** Cierre (  min.)
- 

***** Recursos
+ 

***** Evaluación
+

Esta plantilla me permite escribir rápidamente el número de la sesión de la que se trata, la cantidad de minutos dedicados a cada momento, y finalmente, redactar las actividades que se realizarán en cada momento, los recursos necesarios para la sesión y los métodos de evaluación. Nuevamente, los mismos datos que en el formato anterior.

Extras que solo Org-mode ofrece

Hasta aquí, salvo la automatización de YASnippet, no he alcanzado nada muy interesante. Pero las bondades de Org-mode comienzan a verse a partir de aquí.

Al comenzar cada secuencias y cada sesión, cambio el estado TODO a COMENZADO, automáticamente se añade la fecha dentro de un drawer llamado LOGBOOK, al terminar la sesión o secuencia cambio nuevamente el estado TODO a TERMINADO, esto me permite no solo llevar un control de qué clases ya impartí y donde voy, sino también el día en el que las comencé, esto con el fin de llevar un seguimiento de las fechas y ver si voy cumpliendo con las fechas que me propuse.

https://pixelfed.social/storage/m/ed927593d303a303939e1879ef5534e46ecb9617/e267cbf98ba9486f9e7c8afbc2d1cfcd402a8965/fjlIvRJRg9wZQVOMac5gEsxt5tJQUYoyzjWbfEoT.png

Un elemento que se puede ver en la plantilla de Word y que no he agregado aquí es el de "ADECUACIONES", este apartado sirve para anotar aquellos cambios que he decidido hacer a mi clase. Con Org-mode logro esto presionando C-c C-z sobre el encabezado donde quiero hace mi adecuación (o una anotación) esto abre un buffer donde puedo escribir y guardo mi nota con C-c C-c. El resultado es un pequeño texto así:

    - Nota tomada el [2019-09-13 vie] \\
    Adecuación realizada

Esta nota se almacena dentro del LOGBOOK.

Una última característica a la que saco provecho es a Org-capture y la función Diario. Los profesores llevamos generalmente un Diario de Clase, aunque cada quien lo diseña de diferente forma, yo apunto en él los elementos o sucesos más relevantes de la sesión y que deseo registrar para futuras referencias. En mi init.el tengo la siguiente plantilla:

(global-set-key (kbd "C-c c") 'org-capture)
(setq org-capture-templates
      '(
	("d" "Diario" entry
	 (file+olp+datetree "/path/to/DIARIO.org")
	 "* %?" :prepend t)))

Al presionar C-c c d un buffer aparece y me permite escribir una entrada normal. Esta entrada se almacena en un archivo llamado DIARIO.org y automáticamente llena los encabezados del año, mes y día, de manera que el diario luce algo así:

https://pixelfed.social/storage/m/ed927593d303a303939e1879ef5534e46ecb9617/e267cbf98ba9486f9e7c8afbc2d1cfcd402a8965/0Tc3N5IJDS6mGyxrKLlnDDzX2iuO4jOtI0NyKdLk.png

Las etiquetas las agregué yo presionando C-c C-q al momento de escribir los encabezados, de forma que me facilite un futuro filtrado.

Exportando a PDF

Si entrego al director el archivo .org y lo abre en el bloc de notas me lo va a devolver con la misma. Necesito entregarlo en un formato legible por una persona normal, y ese formato es PDF. Las órdenes de LaTeX establecidas al inicio ya le dan formato al documento, y el drawer LOGBOOK, por defecto, no se exporta, eso permite generar un documento limpio que puedan leer o imprimir para archivarlo. El resultado luce más o menos así (censuro el nombre de la escuela y los escudos por seguridad):

https://pixelfed.social/storage/m/ed927593d303a303939e1879ef5534e46ecb9617/e267cbf98ba9486f9e7c8afbc2d1cfcd402a8965/Zr6EyEaRoKboxUF3cplTPiNHbqGONy5IjiTZS7Db.png

TODO

Quedan muchos aspectos en los que debo trabajar para que mi sistema sea más cercano a la perfección:

  • Uso de la agenda: No he encontrado la forma (si es que existe) de excluir los fines de semana de la agenda

  • Uso de enlaces a otros archivos: Tengo libros y demás materiales que uso diario, enlazarlos podría acelerar el proceso de buscarlos y abrirlos

  • Mejorar el PDF resultante: lo admito, se ve feo, la tabla de Word será todo lo que quieran, pero se ve bonita.

Pese a que quedan cosas por mejorar, considero que he logrado un sistema funcional, sencillo de seguir (una vez ya establecido) y que me permite centrarme en diseñar mis clases, y no en acomodar una horrible tabla. Claro que para alcanzar este sistema tardé varios días buscando e ideando como hacer lo que quería, y creo que justo ahora estoy cerca del formato perfecto para planear clases. Al menos para mi.