# Teaching Other Markup Languages

I've been spending a lot of time lately using both $\LaTeX$ and Markdown and have found them incredibly useful. Some colleagues were blown away by some work I'm doing with $\LaTeX$. The more I think about my own use of them, the more I think about teaching/learning markup languages on a general level.

What are the merits of teaching languages like $\LaTeX$ and Markdown in a computer science class? Are they appropriate there?

I have seen the personal and professional value of these languages, but I'm wavering on if and how they fit into a formal CS course. (HTML is obviously relevant for its intrinsic connection to web development, so my question is really focused on other languages like the two aforementioned ones.)

• Are you asking whether to teach this as part of existing class(es), or as a completely separate class ("Markup Languages")? Jun 10 '17 at 0:29
• Existing classes. A separate class could be fun, but I don't think I could sell it as an elective against other elective options. Jun 10 '17 at 0:31
• Ah, too bad, one of the best elective classes I took was one that studied page description languages that included markup (e.g., SGML) and printer languages (e.g., PostScript). Jun 10 '17 at 0:40
• You need to show it to be relevant (for the pupils), and relevant for the curriculum: Some pupils will find this very relevant/interesting, if you start with what it can do. In the UK the curriculum talks about special purpose languages, so would be relevant at key-stage3 (pre exam stage), but after that you have the question, is it relevant to the exam. Jun 10 '17 at 7:40

Next year I'm planning on having some of my second and third year students build an API that can then be used by students in our mobile development classes, and possibly web development classes.

Hadn't thought of this before reading your post, but I think I may have part of the requirements be that they write documentation for the API so that the other classes can use it without having direct interaction with the authors. Since git, and specifically GitHub, is part of the task it makes sense that the documentation should be written in markdown. Seems like a good excuse to go over it in class.

A couple years ago I had a student that started teaching themselves Latex as part of an independent project. His goal was to create a calculus equation solver. He did fairly well learning Latex, but I'm not sure how I would go about bridging that in to a full class project.

To elaborate on why @RyanNutt said, a CS student should learn markdown and/or latex because they should be using those industry-standard tools to document their code. To teach them, you could integrate teaching markdown with teaching git and teaching documentation.

If you assigned a project, you could assigned students to write documentation as extra credit or as a part of the project. As a part of this, you could ask that the documentation be in markdown because that is the industry standard. The students can then push their finished work to a git provider (like GitHub) and see their full project as it would be in the "real world."

• I think there's a lot of value in that idea of creating documentation. That could also relate to our academic honesty conversation as students develop original docs for their programs. Jun 11 '17 at 16:17

Well, depending on how many papers you have your class write, you can give them a quick crash course in $\LaTeX$ and have them write the papers (or whatever other written material) in it. As others have said, another good idea is to write documentation in markdown or $\LaTeX$. Also, depending on the class, using $\LaTeX$ might be nice so you can read the math equations more easily (this being for more advanced, theoretical classes) when grading.

I started using $\LaTeX$ because on Physics.SE when I edit, I needed to figure out the commands for various symbols (there can be some quite math heavy posts, and sometimes newer users don't use any MathJax at all, or post a picture), at which point I found out about Detexify, and then from there TeX.SE, and - well - I figured out I really enjoy it. From there I started teaching myself and now I can do some passably nice documents. So that's another thing to consider - some people in the class may start using it due to your classes and find that they really enjoy it so they learn more on their own.

One resource that may be useful if you do start using $\LaTeX$ more regularly is ShareLaTeX which is an online editor, which also has documentation for basic tasks in $\LaTeX$, and - more importantly for a teacher - sharing and history abilities, though I believe the more advanced ones require some sort of premium account. You can also put documents in a Github repository or pull them out of a repository, I believe.