Teaching computer and data science with literate programming tools

Marcus Birkenkrahe - Faculty website https://www.lyon.edu/marcus-birkenkrahe - LinkedIn https://www.linkedin.com/in/birkenkrahe - Twitter (X) https://twitter.com/birkenkrahe - Researchgate.net https://www.researchgate.net/profile/Marcus-Birkenkrahe - Google Scholar https://scholar.google.com/citations?user=Vvnwsv0AAAAJ&hl=en - ORCID https://orcid.org/my-orcid?orcid=0000-0001-9461-8474 - Wikipedia https://en.wikipedia.org/wiki/Marcus_Birkenkrahe, birkenkrahe@lyon.edu

Format: 20-min talk; Q&A: BigBlueButton conference room
Status: TO_INDEX_QA

Talk

00:00.000 Introduction 00:54.160 My interest in this topic 02:08.040 What is data science? 03:47.640 Computer science is a craft 04:52.840 The problem 05:36.560 The solution: Emacs + Org-mode 06:24.120 Emacs configuration file 07:30.360 Story + code = source + documentation 08:22.040 What is literate programming? 09:59.880 Emacs as a literate programming tool 11:18.960 Case study: basic setup 12:11.280 Emacs + Org-mode notebooks 12:45.800 Onboarding: simplified Emacs tutorial 13:40.840 Instruction + interaction 14:48.720 Assignments + projects 16:15.280 Overall results positive 18:19.800 Conclusion & outlook

Duration: 19:27 minutes

Q&A

Listen to just the audio:
Duration: 42:23 minutes

Description

Help wanted: Q&A could be indexed with chapter markers

The Q&A session for this talk does not have chapter markers yet. Would you like to help? See help with chapter markers for more details. You can use the vidid="teaching-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to emacsconf-submit@gnu.org.

(If you want to work on this and you think it might take you a while, you can reserve this task by editing the page and adding volunteer="your-name date" or by e-mailing emacsconf-submit@gnu.org.)

I present a case study on using Emacs and Org-mode for literate programming in undergraduate computer and data science courses. Use of Emacs was obligatory in courses covering R, Python, C/C++, SQL, and more. Onboarding relied on simplified Emacs tutorials and starter configurations. Sessions involved live coding, and assignments and projects required Org-mode notebooks. I will present the setup, the results, and provide insight into my ongoing work with Emacs in the classroom. Especially in AI-assisted teaching, literate programming tools will become even more important, and Emacs and Org-mode will have a new role to play. Most importantly, using Emacs consistently for all classwork imparts deep infrastructure and computing knowledge that other tools often obfuscate.

  • Outline (tentative):
    1. Introduction to the speaker and the case study
    2. Teaching computer and data science today
    3. The rationale for using Emacs as an IDE
    4. The rationale for using Org-mode for literate programming
    5. Case study: purpose, content, technology, results
    6. Challenges and lessons learnt
    7. Literate programming in the age of low code and AI
    8. Conclusions and outlook

About the speaker:

Associate Professor of Computer and Data Science at Lyon College in Batesville, AR. He joined the Lyon faculty in 2021, on leave of absence from the Berlin School of Economics and Law. He earned a PhD in theoretical physics (lattice gauge theory). He has published widely in different areas, including: neural nets, multigrid applications, knowledge management, e-learning, literate programming, process modeling, and data science. He is associate editor of the International Journal of Data Science, editorial board member of the International Journal of Big Data Management, and corresponding member of the Institute for Data-Driven Digital Transformation (d-cube) in Berlin, Germany. Emacs user since ca. 1990.

This talk is based on a recent publication with the same title (Birkenkrahe, 2023; doi.org/10.3390/digital3030015).

Discussion

Feedback

  • at my company new helpdesk analysts seem to suffer from the same symptoms of not fully understanding comp architecture. I guess i will have to teach them emacs...
  • Very interesting talk, thank you!
  • Great talk, thanks.
  • Well done!
  • Very important point to teach CS: immersion. Nothing better than emacs for that.
  • Emacs is great for beginners (on CS): it makes them think programatically on their environment.

Notes

  • https://www.mdpi.com/2673-6470/3/3/15
  • Data Science: intersection of math, comp sci, domain knowledge
  • I like the idea you use this method to write every piece of your code. It's so easy for me to just ask llm a piece of code, run it and forget about it. I will try to improve this type of way to write code.
  • Students were able to use Emacs competently with 1 week (did I hear that right?) of practice
    • This is quit counter-intuitive.
    • I picked up Emacs 3 years ago, and through immersion was up to previous competency parity in about a week or so.
  • Org Remark allows you to highlight in org mode documents, If you pair that with org web tools you can highliht an offline web page backup with highlights in org mode
  • CRDT.el -- allows multiple people with their own emacs config to edit a hosted Emacs buffer
  • Just use one of the Emacs chatgpt or other LLM interfaces instead of leaving for Jupyter notebooks.
  • "The AI advantage [of Jupyter notebooks] does not make up for the loss of immersion that Emacs and Org-Mode provides.  [Immersion is a important]"

Questions and answers

  • Q: What tool(s) do you use for making your slides; they are very nice.  Would be great to get a template.
    • A: org-reveal
  • Q: Why MDPI? :)
    • A:
  • Q: Do you think immersion can be achieve on teaching other students with differnet backgrounds?
    • A:
      • yeh, exactly, kinda risky for young teacher.
        • Actually, may depend on the uni. AFAIK, MIT style they promote is full of workshops/handson classes with more limited lectures.
  • Q: Do some of your students nag you about using VSCode? I teach simple programming at a vocational school and even after showing the students vim, Emacs and nano and telling them that I prefer Emacs and also showing them code inside code blocks in Org mode and using Emacs in every class I teach, they still all chose VSCode as their editor. (I let them choose.) It seems like they are brainwashed somehow... Is the success in the obligatory use of Emacs?
    • A: I observe the same behavior
      • "The arguments from beginners for VS Code aren't strong"; appreciate the fact that immersion is the goal and the constraints of Emacs as required pushes towards immersion.  (Thank you for your answer!)
    • Having more tutorials on Emacs/Org mode would be most welcome (yantar92 aka Org contributor)
  • Q: I'm curious about your approach to handling EDA, particularly with wide datasets that have numerous columns. Given the constraints of Emacs which might not be optimal for viewing large tables, could you share how you navigate and explore such datasets efficiently? Do you integrate any specific Emacs tools or external methods to streamline this process?
    • A:
    • I know that John Kitchin is working with remote DFT calculations - Tbs of data to visualize.
  • Q: Do you have a startup emacs configuration for your students?
    • A:
  • Q: (from chat) Fantastic talk, thank you. I realise that it will be difficult to provide an accurate answer, but what proportion of your students do you think will keep on using Emacs after your courses?

Transcript

[00:00:00.000] Introduction

Welcome to my talk, which is pre-recorded, so please don't blame me if I come across as wooden and humorless. It's hard to work up any emotion when looking at a mechanical eye. Of course, I am German, so I am pretty wooden and humorless to begin with. What else do you need to know about me? Not much, I suppose, except that I have been an Emacs user on and off since my days as a graduate student in theoretical physics in the 1990s. I picked Emacs and Org Mode up again for teaching during COVID when I had a lot of time on my hands, and when the teaching and learning needs shifted because of the exclusive online teaching. Now I'm going to take my picture away. You had a good look at me. I think that's just going to be in the way.

[00:00:54.160] My interest in this topic

So my interest in this topic began with an Emacs talk given by Daniel German from the University of Victoria in Canada in 2021. Daniel demonstrated in detail how he uses Emacs and Org Mode to prepare and deliver lectures on different programming languages. This gave me the idea to try the same thing with my students with an important alteration. I wanted to force them to use Emacs and Org Mode just as most computer science instructors force their students to use whatever they are using when they develop their material. I carried my plan out and mandated Emacs and Org Mode as the only programming platform and IDE for three consecutive terms in all my courses, nine courses in total. I will give more details later. I published my results as a case study in September of this year, and it contains the missing bits that I will not talk about today for lack of time, especially regarding the methodology, the assessment, et cetera. Please also use the Q&A to inquire about such details if they interest you.

[00:02:08.040] What is data science?

I probably don't have to explain what computer science is, but not everyone may know what data science does. I teach courses in both disciplines and the boundaries between them are blurred, so much of what I'm saying about data science will also be relevant for computer science. Conceptually, data science is an interdisciplinary affair that intersects with computer science and with whatever it is that the data scientist or his or her clients know very well; their domain. Because of this interdisciplinary character, and because their focus is on the data rather than only on algorithms or mathematics, successful data scientists need to be more broadly educated than specialists in computer science or statistics. In particular, there's a need to master the entire so-called data science pipeline: from data cleaning, which you see on the very left in this slide, over coding, to statistical modeling, and to data storytelling through visualization, which you see on the very right. This is why until recently, data science was a graduate-level education only for software engineers, computer scientists, statisticians, psychologists, biologists, business people, or for whoever took a special fancy to data in their chosen field. Only with a growing interest in machine learning, this has changed. And now we train--or try to train--data scientists in undergraduate programs as well.

[00:03:47.640] Computer science is a craft

Now, what I'm saying here, I think is true for all areas of computing, from software engineering to data science. They are mostly taught and learned like a craft rather than a science, not through research, but through drill. The elements of this drill can be illustrated by learning how to fix cars. They include taking a problem apart with the tools you already know, learn a lot more tools in the process of doing that, then solve many, many problems of increasing difficulty while being or getting more literate, as it were, about the mechanics of computing, including the hardware, the infrastructure, and finally develop a way of thinking that allows the learner to identify patterns to solve new problems better and faster. Unlike learning how to fix cars, all of the objects of our interest-- both hardware and software--are evolving rapidly. In this field, radical innovation is the rule, not the exception.

[00:04:52.840] The problem

The problem that I identified is that students, especially undergraduate students in computer and data science, often do no longer understand the infrastructure. Here are a few examples of the problems that the students seem to have. They do not understand computer architecture, except in theory. They cannot navigate their way around their own computers. They don't understand the value or the issues of networks. They are often more interested in convenience than in customization of the environment. As a result, the machines which we're meant to control have all the power--though passively, of course, for now anyway.

[00:05:36.560] The solution: Emacs + Org-mode

Enter Emacs, the self-extensible operating system disguised as a text editor. You're at EmacsConf, so of course I don't have to tell you what Emacs can do. Here's a rundown on the right-hand side of some of its most important properties, and an Org Mode file excerpt from one of my classes on the left. What you may not know is how to onboard students who have, at the start, no interest whatsoever in leaving their comfort zone, which is defined by a lifetime of Windows, pre-configured graphical interfaces, and software bloat. In fact, when I started this, I wasn't very hopeful, but the results have made me even more optimistic than I already am by nature.

[00:06:24.120] Emacs configuration file

So to rein in your expectations, you cannot do entirely without configuring the student's experience. An important part of this is the initial Emacs configuration shown here. The minimal configuration file, which you can see on the right-hand side, allows the students to run code in C and C++, R, SQL, SQLite, Python, and Bash. It will allow them to update Emacs packages from the stable Melpa repository, and it will allow them to create code blocks easily using skeleton commands for code blocks, and to auto-load the Emacs Speaks Statistics package, which you particularly need when you run R in Emacs, and lastly, to disable toolbar and graphical menu bars. To do that encourages the exclusive use of the keyboard to control Emacs, and to stop the students from flicking all the time to the mouse; seems to be an essential part of getting used to Emacs.

[00:07:30.360] Story + code = source + documentation

Now Org Mode was included in Emacs in 2006 as a major mode, and as you know, it's a structured plain text format with notebook live code execution. It's an ideal platform for literate programming, which is a term for programming that intermingles code, documentation, and output within a single document, and that can, as you can see here from an org file, either be tangled into source code or woven into a documentation file, which could be PDF, could be Markdown, could be OpenOffice, could be a notebook format. This methodology was conceived by Donald Knuth in 1984, and it is therefore even older than Emacs itself.

[00:08:22.040] What is literate programming?

The main purpose of literate programming is not only to make code or documentation or output more manageable, but to allow humans to create a data story with ease from a single source. So what you see on the slide on the left-hand side is the story and code inside a Org Mode file. The file starts with some documentation, then with the white background is the code, and at the bottom you see an output file, which is not shown here on the slide itself. In the middle, you have the source code, which is the result of tangling or of opening a buffer inside org-mode. And on the very right-hand side, you have a PDF-- actually this HTML rendering of the very same file that you see on the very left. So the humans look at some of this code, and the machines will look at other parts of the code. I actually did all my programming in a literate way even in the early 1990s, not using org-mode, which didn't exist yet, but using Norman Ramsey's Noweb preprocessor. And I still use it inside org-mode today. This preprocessor, Noweb, allows you to tangle code from within an org-mode file that's a self-standing file, much like org-mode's edit functions, which export code blocks into buffers in whatever language the code block is written.

[00:09:59.880] Emacs as a literate programming tool

In data science, these interactive notebooks in one of the interpreted languages like Julia, Python, or R dominate. The basis technology, is that of Jupyter notebooks, which take their name from Julia, Python, and R. And these notebooks use a spruced-up shell (for example, IPython for Python) with an option to add SQL cells. Org Mode inside Emacs has a large number of advantages-- some of them are listed here--over these notebooks. Two of these stand out particularly. Different languages can be mixed, as shown in the image, while in Jupyter notebooks, a notebook is limited to running a kernel in one language only. So the content of the notebook-- its document code or output part-- can be exported in a variety of formats, which makes it much easier to share with others and to use one's work in different reporting formats; for example, to read it out into a LaTeX publication. Actually, to come back to this, the file does not show different languages. That is something you can see in a paper of mine, in one of the figures.

[00:11:18.960] Case study: basic setup

Now, coming to the case study itself, here are some of the overall results of the case study. Now, the courses ranged from introductory to advanced, as you can see here in the table on the left-hand side. The topics covered different programming applications. The courses were taught over a period of three consecutive terms. There was between 6 and 28 participants per course. I used a few other tools besides Emacs: GitHub as the main repository for all the material, Datacamp for structured online lessons and exercises, Canvas as a learning management system, and Zoom to record the sessions for later use. Now, the material for all these courses is openly available on GitHub, and the address is on the slide at the bottom.

[00:12:11.280] Emacs + Org-mode notebooks

I'm now going to briefly comment on the most important aspects of using Emacs and Org Mode in and outside of class. Essentially, these two--Emacs and Org Mode-- were used all the time for almost everything that the students were doing in and outside of class. The only exception were multiple choice tests and online assignments on the Datacamp learning platform in the data science courses. But everything else--code-along lectures, home assignments, student projects, practice in class-- was done with these two tools.

[00:12:45.800] Onboarding: simplified Emacs tutorial

To facilitate the onboarding, so to get students used to Emacs in the first place, I developed a simplified Emacs tutorial, which was focused on the basics of literate programming. It included navigation in major modes, managing files and buffers, customizing the interface, and keyboard shortcuts. It was considerably shorter; about a quarter of the size of the standard Emacs tutorial, which contains a lot more stuff. As a result of this onboarding, by the end of the second week, most students were able to use Emacs and Org Mode competently for their assignments in and outside of class, completely independent of their previous exposure to any of these tools. Most of the students, in fact, had never heard of Emacs. All the classes were taught physically in a computer lab.

[00:13:40.840] Instruction + interaction

Emacs with Org Mode and the necessary languages for the class were pre-installed on the computers. The computers ran Windows, unfortunately, like most of the students' personal computers. A typical class involved a lecture delivered by me in Emacs as a code-along. The students would get an Org Mode file with all the code removed. You can see an example here on the slide on the right-hand side. This example is actually only one line of code in blue, visible at the bottom for an award file. Then the students submitted home assignments also as Org Mode files, complete with documentation, code and sample output. Working this way makes the classes highly interactive. So the students are busy coding and they learn to control their environment better all the time. In my classes, the students have to complete an independent, agile research project using an adaptation of Scrum as a methodology. You can find examples of these rather high-octane projects in my paper.

[00:14:48.720] Assignments + projects

Now, using literate programming for the projects provided some unique benefits. By having to continuously interweave documentation, references and output alongside functional code, the students learn to communicate their work throughout the term in various stages of completion, from the research question at the start, over the prototype to the finished product. And here on the right-hand side, you can see one of those assignments that the students received, including some of the metadata for their Org Mode files in the beginning of the course. Here are two graphs that I created early on when I started doing this. They show how the test results of the students in two different courses, actually three courses, changed from before to after introducing literate programming with Emacs and Org Mode. So you see the before and after introducing literate programming in the red curve before and the blue curve afterwards. And the improvement, especially on the right-hand side, is quite significant. It was this performance improvement, apart from the students who were voicing their support, that made me extend the Emacs experiment after the first term and continue for the following two terms.

[00:16:15.280] Overall results positive

The courses... Coming to the result, the overall result... The courses were formally and informally also evaluated by the students, but you need to look at my paper for some explicit student comments, which you will find there. Here, I'm giving you only the summary. So first of all, Emacs proved to be hard to learn for some, but all students succeeded in all courses, independent of the level of their previous knowledge and skill. The documentation practices remained pretty uneven. So some students wrote a lot, others wrote little. But they were overall much higher than in classes without the use of Emacs and Org Mode. The interactivity enabled through Emacs was highly praised by the students and always identified on the evaluations. And lastly and most importantly, given the problems that I identified earlier, the computing file and data handling competence of the students who worked with Emacs throughout opening Emacs shells, running programs through Emacs, these skills increased massively. In the published paper, I have expressed a little more doubt than you see on this slide. But now, actually, I'm feeling quite hopeful again, especially because recently for one term, I have returned to Jupyter notebooks. In the current term, I abandoned Emacs again for online Jupyter notebook installations. The reason is that these Jupyter notebooks that I use from DataCamp have generative AI support from ChatGPT integrated into the notebook. And I wanted to try that. But after one term without Emacs, I regret that decision now. The AI advantage does not make up for the loss of the immersion that Emacs and Org Mode deliver.

[00:18:19.800] Conclusion & outlook

And here's the summary. When learning computer and data science, immersion is everything. The best students will aim at immersion anyway. But for the majority of students, immersion must happen in class. Emacs and Org Mode performed throughout very well as the central literary programming platform. And the pre-configuring and the onboarding, which I showed to you, were very important to train the students quickly. In the paper, I also speculated on the impact of low-code, no-code, and AI coding assistance. And my general view on this is that the arrival of these tools make literary programming as an immersive technique focused on teaching a broad range of skills even more important. So even with AI--or especially with AI-- this kind of approach, I think, could be critical. And that's it. I'm at the end of my presentation. Thank you very much for your attention. And I'm looking forward to the Q&A. Thank you.

Captioner: sachac

Q&A transcript (unedited)

So, things are still a bit rusty, but believe me, by the end of the morning, we will be well-oiled machinery. So, hi Marcus, how are you doing? forgotten, but you started your presentation with the, in a very dark room and with this typical note of dry German humor that I particularly liked. so any sense of humour is the result of very hard work. is evident in this particular remark. So as we did before and perhaps this time more punctiliously, terrible adverb, that's why I'm an English major we will be taking questions first from the pad and then we'll be moving on to people in the BBV room. Let me just check if we have some people. We do have some people. All right, so Markus, I'm gonna ask you the questions in the pad unless you have something to remark first. remark. I mean, only that we're coming to the end of the term here, and I think in the paper that I wrote, I expressed doubt that Emacs was good for beginners, but I've now gone back to an interactive notebook in the class without Emacs, and I've just missed it terribly the whole term. And I think I saw you walk too, so that's kind of interesting. That's it. let's get started with the questions because I'm a little worried that we might acquire debt because of the time that we have. And just to be clear, so that you also know the time at which we're supposed to be finishing, the next talk here on this track is supposed to be at 10.40, which is in 13 minutes from now. All right, with that said, starting with the first questions. What tools do you use for making your slides? They are very nice and I concur. OrgReveal? OrgReveal. I don't have the link right now, but it's an org mode package where You create some meta information and I think it's basically JavaScript, JavaScript package that will work from a bunch of different platforms, but it works particularly well from Emacs. So you use that a lot. interacting with JavaScript in the background and it makes for a very clean presentation right from Emacs. I mean, it's not opened in Emacs unless you use a web browser in Emacs that supports such compositing but it's pretty convenient and I recommend looking into it. So if anybody's interested. right now. So obviously right now, Marcus is writing inside of his own Emacs, but we also have the pad. We'll make sure that you have all the links accessible a little bit later. Okay, moving on to the next question, why MDPI? answer, kind of boring I suppose. So when I came here to the US, I used to teach a lot of graduate courses and I had to suddenly teach a lot of undergraduate courses, which partly motivated this move because it made me realize, as I said in the presentation, how little the students understand of the underlying infrastructure and how important it is for them to work with an IDE that doesn't make coding especially convenient, but that teaches them a lot of the stuff on the side, you know, while still presenting a very smooth environment, which developers appreciate as well. So I came here and I used to publish like 4 or 5 research papers per year, but I didn't have the time. So I was contacted by MDPI. And it's 1 of those research paper mills, which seem to be springing up where authors can, really the institutions of the authors have to pay so that they can publish, right? So it's not really, and I checked them out and they seem to be proper peer review publishing, but to be absolutely sure I said, well, you can have my article, but of course for free, I'm not going to pay for you to publish it. And so that's what they did. They invited me and I submitted the paper and it was a very good process. That was a very, it was a good peer review critique. So I changed the paper quite a bit. It's still not a great paper. It's just a small case study. That's the kind of thing that you have a lot in medical research where also people don't have a lot of time to do research, proper research, which takes a very long time. And so that's why MDPI. And they are in the most of the relevant citation indices. So they are reputable enough. I mean, normally I would say for anybody who does anything like this, you might not even want to bother with the journal these days anymore. You just go straight to ArcSci, put out your preprint. And in fact, what will happen if you're on ArcSci, if somebody finds it interesting, they're going to reach out to you to capture your paper and have it published under their heading. Oh yeah, actually the other reason why I wanted MDPI is because there were open access from the start. And I really like, if you go to the paper, I really like the way it's presented. So I looked at a few papers and I thought it's a really nice online access, online open access solution. That's the long answer, sorry. many details so it was far from a boring answer, let me reassure you. Moving on to the question, we only have about 8 minutes left so I'd like to finish those 2 questions and let people in the audience speak. So do you think immersion can be achieved on teaching other students with different backgrounds? I had actually a discussion last night with my wife in bed about this, about the use of textbooks which are famously non-immersive because they're consumed away from the class. Very rarely you sit in class like people used to do and read something together. Maybe they did that in English. And that is of course instantly immersive. But in computer science, many other topics, psychology, you know, biology and so on, you cannot get immersion, at least not in a lecture theater. You get it in a lab because people solve the problem and then they're immersed in it. So, but my answer would be, yes, I can think totally immersion can be achieved anywhere, but what you have to do is you have to not lecture and you have to let students do work as you go along. So I used to lecture quite a bit because I was an insecure young professor and just read all my slides and my notes as I used to use, as everybody uses to when they start. But as I went along, I realized, you know, I've got such a grasp of the topic that I really everything I do now is prepared in Emacs in an interactive way so I start saying a few words and then the students immediately we get to work and they seem to love that because in most of the other classes people just talk at them they take their stuff home and work at home, which is of course is super. But most of the students, if they have, in at least in a liberal arts college, they have 5 other classes, they do not take a lot of time to do the work at home. So it's, you know, yeah, It's kind of different. It's kind of risky, yeah, but the main point I was trying to make is Emacs and Org Mode really helped me to boil that interactive session down to something that will work in the classroom. I don't have to jump around between platforms. For example, this term, and I didn't use Emacs in the class with the students, I had to render using a package. It's actually a very nice package called, what's it called? Ox, what's it called? Ox, Ox IPNB. It's called Ox IPNB. So what it does is it renders in the usual way with Emacs, Org Mode does, renders interactive notebook files in Jupyter. And that took me a lot of time. And I immediately noticed as soon as the teacher has to fight platforms themselves, they take the ball off the immersion task, you know, to keep the student on the problem. Yeah. I was going to remark that. I suppose it might be MIT style. Big difference though, my classes are very, very short, small. So I have like between 10 and 15 students per class. 1 of the reasons why I went to this college is because I was fed up teaching, trying to teach hundreds of students. Okay, sorry, do some of your students nag you about using VS Code? Yes, they do, but their arguments aren't very good. They hadn't really compared Emacs and VS Code. And what I do, actually I use RStudio as well, demonstrate VS Code, RStudio and Emacs. And I think it's very easy for them to see. And there are some videos about that as well, how much easier it is to get into Emacs to limit your investments to what you actually wanna do. When the problem with VS Code is it comes at you with this sort of Microsoft store ideology, like a gazillion plugins, which if you're a developer, you know what you want. And I mean, it's a bit like VS Code is like Google search for as if you were programming in Google search, a complete waste of time. Having said that, I've also seen some videos with people who really know how to use VS Code. And of course, you know, if somebody gets on the inside of a tool and spends upwards of a thousand hours in the tool, they'll be great. But that's not true for beginners. So hold on, there's another 1. I'm reading them, sorry. Leo, I can see the questions, but you may wanna turn them around. you're free to read them. I'm on your fasted computer. I teach simple programming at a vocational school, and even after showing the students Vim, Vim, of course, is a contender, and now I'm telling them I prefer Emacs. They still all choose VS Code as their editor. Well, okay, what I did is mandatory. I didn't let them choose. That's what I did. And I thought that was quite risky, but in the end, it turns out that the best students loved it and keep using Emacs in their jobs. I hear that now. The students in the middle were probably the ones who would pick VS Code because every tutorial they see, they learn a lot through YouTube and so everything they see is in VS Code. If there were more tutorials in Emacs, I'm trying to make some, then of course that would be different. But I think it's partly brainwashing and partly, of course, the other reason is there is no online Emacs. They use VS Code Dev, right? And that's, of course, they use an online cloud solution. Like most of the students in the high school, I teach Python in the high school right now, and the students only get Chromebooks that are completely cut down to nothing. They cannot have Linux on their Chromebooks. So what are they supposed to do? Their only choice really is Repl. Repl.com is a possibility for them to do that. But, you know, or they use code spaces, which is VS Code in GitHub. We only have about 2 minutes left. So if you could take 1 question, that would be great. Sorry. Any more tutorials will be most welcome. Yes, I I'd love to. I spent the rest of my days on this earth making Emacs tutorials if Approach to handling EDA. Oh yeah, with white data sets. Well, that's a good point. I don't know, if you look at the comments, I think these are on YouTube, right, at some point, Leo? they will definitely be on YouTube. answer the EDA, that's too long to go into right now, plus my cat is here. So I'm going to answer that in the comments, all right? Start up the conversation. Yes, I'm going to post that in the comments as well. Marcus, you're going to continue the discussion. It's just a stream that will be moving on to the next talk in about 50 seconds. Marcus, feel free to keep answering questions inside this room. You also have people, we're going to check aside with the stream, we have a number of people in the room. You can see them on the left on the button who are probably going to unmute themselves and ask you questions. So feel free to stay in the room, answer as lengthy as you want the questions because that's more content for us and we love it obviously. But it's just that I personally will be leaving to take care of the rest of the talks. So, Markus, do you have any last words before we move on? I'm going to copy this. I don't think I listened to the talk by Sascha yet, but I'm going to do that because I really want to copy this conference format. I think that is the conference format of the future, using volunteers to put together conferences. So I can't wait. Nobody wants to come to Batesville where I am, but thank you so much. That was really super professional. I love that. I think we caught up about 1 or 2 seconds into the last sentence you said but otherwise we were splendidly on time. So thank you so much Marcus. bit about that question about handling EDA. Because people have started asking questions on the left. Can you see the chat? that. Yeah, that's fine. So Marcus, have a great day and I'll probably see you later. Bye bye. There was a question about the, I wanted to ask the answer the question about EDA, large data sets. So, I mean, I teach undergraduate now, so there's a limited number of courses, like where I use, actually have big data issues. And I mean I'm not saying that I'm not that I don't run into performance issues with Emacs. I obviously do. But like the performance issues in Emacs are comparable to performance issues for example when using R. In R everything is in memory So you are limited to the available, what is it, 2 gigabyte or whatever memory of your computer. So you would have to find other infrastructure solutions anyway. The advantage of using Emacs is that I can, within 1 Org Mode file, connect to an external database. I can even, as probably most of you know, I can even use it as a text-based web browser if I want to. So I could look at individual files. And the other point of EDA of course is that you're not supposed to look at the tables. You're supposed to get the basic frame of your data. Is there a header? What's the approximate size and stuff like that? And then you're supposed to import it into a data frame ideally, at least in portions. And I don't think, yeah, so that's it. But the full answer is that I have not done big data analysis in Emacs. So that's actually a really nice extension. I'm going to write that down as a thing to talk about in some future talk. Okay, so ADA with big data. Even though interesting would be to know what kind of size of data you're actually talking about. So I don't know, what is it, upwards of 1 terabyte or something like that, I don't know. That'd be interesting to know. Haven't done that in class. So there's another question. Proportion of students that you think would keep on using Emacs after your course? That's not a difficult question, because as I said, I have very small classes. I've been here since 2 years. So I'm in touch with almost all the students. In fact, I'm getting them work after school. So that's really cool. And everybody who took to Emacs really seriously, so probably about 25% or so keep using Emacs after, afterwards. I mean, even in the job, right, in the professional field. Who, those who keep using Emacs after the course, I think the number is greater, but I have not followed up on that. I have to, my guess is more than half, I would say, half or more than half. Oh, Aaron, thank you so much. That's very sweet. But I didn't think the presentation was great. I was thinking about redoing it, but this is actually the first take. It was late, I had lots of other stuff to do. I think what I'm more interested in than papers is probably this idea of making Emacs-based data science videos because there aren't many out there. Most of the people who do, and computer science, most people who do that are not either developers and certainly not teachers. So I think that's a good idea. I'm gonna pick that up. So to do more Remax based data science videos Is there anything else? More people. There are some people here in the room still. What? Or wiki. What's my YouTube channel? I've got a bunch of different YouTube channels. I'm going to put them in the comments to my talk. Hold on, the 1 where I have the latest Emacs videos, you find my name, there's nobody in the world with my name. So if you look for Gerten Krag on YouTube, then you will find it. But I got a bunch of them. Hold on, I'm going to give you the... My channel. Okay, This 1 has only got a few videos. But so there's 1 with a lot more. Few recent videos. And I'm going to post more. Other ones in the comments of this video. Okay, what else? I'm trying to find my way back to the button. Okay, cool. Oh, yes, thank you. I will. That's very good. Thank you so much. Of course, I use Vork. I hadn't even thought of it. Very good. It's interesting, that's something that comes to my mind. When I was a young student, right, people who used Emacs and the web wasn't particularly large. So the volunteers would automatically make videos but not for commercial purposes. Now you have an army of people who make commercial videos and the videos are usually good for the first 10% of every content, but as soon as it gets a little more difficult, they either don't know what to do anymore or they don't do it because it's not commercially viable. The number of people who move on is gets smaller and smaller and smaller. So there's no commerce anymore. But when I was a student, pretty much all the documentation everywhere was created by volunteers, just like this conference or like anything in org mode. And that doesn't seem to be much of a trend anymore, but maybe we can resurrect it. So yes, I'm definitely gonna contribute to that. Multiple people are typing here. Oh, sorry. Yes. Thank you so much. I'm gonna put that, I'm gonna rectify that in the comment. Having said that, I am not 100% sure that I didn't lie here. May just be because I didn't have much time to put the presentation together. And it's perfectly possible that that's actually Google slides and not all reveal. In the classroom when I present and just do lectures, I always do reveal, but most of the time I do a tree slide. That's the quickest way to do it for me. So, so presentation. Hold on, Let me just copy this 1. Make sure that this doesn't get lost. Thank you so much for that. And presentations in class. I use sometimes org-present, but there are issues with the font sometimes. I use Treeslide most of the time and Org this is not org, so forget about that. Okay. Yeah, so you can send me your, you've got my email, I think, on the end, if you're interested in following up or letting me know about your stuff. It might be interesting to, I don't know, might be interesting to put together a conference or a little seminar just for educators. DF is still typing, I'm waiting. I'm waiting. Bastien, was talking about possibility to have just org mod conference. But the question is, is it worth making a Actually. how EmacsConf is well done. So it's like creating anything that has good Yeah, I mean. it's anywhere, like half of Emacs is anywhere remote. So it's almost the same. I don't know if that's what you mean. Org Mode is probably what attracts people to Emacs in the first place. Like, I suppose Org Roam is the, maybe the biggest 1 for people even outside of computer science. I use Org.ROM for everything. But there are... I mean, the thresholds... I think that the maintainer or maybe the creator of Org.MODE has claimed and said for many years that Org Mode itself doesn't actually necessarily need Emacs. You can have it as a completely separate application as well. But I, for a number of reasons, I don't like that. I really like the idea to be Emacs because the configurability is 1 of the strong points anyway. No, The thing is you use the flexibility. Plus, you also use the, I don't know if that's the right word, but you use there's something about the free ideology of Emacs that is what attracted me to it in the first place when I was younger and that I find even more important now. So what they say the community aspect, the reason, the main reason why Python is so big today, really. So yeah. it's org syntax that is supposed to be like breaking out of Emacs. So like there's a plan to lay out the actual standard document so that you can register the format officially. I've not followed up on it much. I don't know what the, I mean, that probably would, it would strength, very likely, if you do that, it would at least for a short time, strengthen org mode and weaken emacs. I don't know what other examples, if there are other examples of applications pulled out of IDEs like that. I'm not aware of any others. three-seater drama. People are trying to make like some external parsers, a lot of them. And a lot of stuff is done on mobile part. I can draw it to iOS, especially recently. So things that are Emacs independent are demanded. like every time. very much. I have some of my students have 0 affinity with computers. They really don't know their way around their computers at all. And so for them, It is quite important to learn how to find your way around Emacs because it's like a little operating system, but it's not. It's an operating system without much of the obscurity. And the alternative to that would be to simply let them work only on the command line, which is another possibility. But, you know, there of course you are limited with regard to if you want to swap languages. So for example, quite often I find myself in the situation I teach data science in R and Python and in Emacs org mode I can demonstrate both of these side by side in the same file. And that's a great advantage. Not to overburden the students when they are at the beginning with things that you don't want them to necessarily learn about. And plus the thing what I like as a graduate student when I stepped onto Emacs was that it was infinite possibilities to lose myself in Emacs and you know go on and learn more stuff about it. But it's such a long time ago that I barely dare to mention it anymore. it's since the Jupyter notebooks and that Google thing they are running. It's getting so popular that it's clear that command line is just losing in popularity in Not the usage. People are still using it, obviously. only the paid version allows you to go to the terminal and use the command line. But of course, the traction, and I think that's kind of interesting, 1 of the reasons why IPython or any of the Jupyter notebooks are so cool is because you can use a lot of shell commands from the IPython shell. There's a whole bunch of magic commands which are quite powerful. I mean the the 1 that comes to mind is time. The time command for example you know gives you a really nice performance quick performance check. There's a bunch of different, I think probably close to a hundred magic commands that you can use in Jupyter. But I don't know JupyterLab too well, but I noticed that the companies that do online training, And they are usually the ones that are closest to what beginners want, especially in business. And what those companies do is they, you know, they take, they take JupyterLab and turn it into a presentation of their own. Another 1 is Notable, notable.io. That's another 1. They took JupyterLab and turned it into something commercial. It's boosted up a little bit. And so the shell inside the JupyterLab has some of the most more important shell properties. And so people still use the command line without knowing that they use the command line. But I also like doing, how do I use org-roam? Well, I use it, I do not have not used it with the students yet, only the best students have sort of seen me use it and copied it. But I use it probably in a very naive, trivial way. I can't say that I am, that I have a very sophisticated use. I basically, I like the fact that, I mean, it's built on the original concept of the, with the German word, Zettelkasten, right? Which is that you do not have to think about a taxonomy because as you move along, your taxonomy changes all the time. You know, what you think is important at the beginning, your root node, as you go along, you realize, oh, that's not the root node at all. There's a higher level and a higher level. And some of the lower levels are at the lower level, actually the higher level. So you're beginning to create hierarchies that are out of date as soon as you create the hierarchy. So what is the idea of the tittle custom is that anything that comes to your mind you can throw in the custom the box it literally means Box of notes and That's what I appreciate about it. So I create a I create a note pretty much for anything I do, but I've only used it for about a year and a half or so, or grown, maybe a year. So I can see that I'm coming up against the Zettelkasten or note box problems, which is that I've got so many notes now that unless I have clever aliases, there is a chance that I might forget that I no matter what system you use. different approach than hierarchies, right? It's the same, it's the same, it's the same principle as a relational database versus a hierarchical database. Same thing. So, yeah, and I've not used that. I've not really used, actually I have cut meta notes, of course I do. So notes that point to other notes. Yes, of course. I use those. I have not taught that part to the students because I do project work with the students, but there's only so much time. I'm already, I mean, already, I don't think there's any class that where I am able to use more than 30% of my material. And the reason is that when the students come to class, which is I pointed out in the video, they know so little. And most of the students, at least in liberal arts, spend just too little time outside of class, getting there, you know, drilling down into the, into the, into the infrastructure, into the work. Only, only the best students do that. The ones that really catch fire. project at the end? I use Scrum. Maybe I shouldn't, but I've used Scrum for many years. So I have course projects that start at the beginning and they do sprint reviews every 3 or 4 weeks. So term end projects I find completely useless because the students do the work at the very end of the term. the end, they just report at the end. I use the IMRAD method. So I use IMRAD, basically IMRAD plus, plus Scrum, right? So, So the first sprint review is introductory, the research proposal, the second 1 is about methodology, the third 1 about results, and the last 1 is their final presentation. And so that's the way I manage the projects, but that's about as much as I can do with them. It's a good idea. I hadn't even thought about using Org-ROM with them, but to teach them that might be a good idea, actually. what I found useful during my graduate is for literature review. Yes. The other part of our program that is not about your like noting down your thoughts is about writing about literature notes. And of course, I mean, there's more stuff that they should learn, you know, like another 1, since you mentioned literature, you know, latex and Bibtech is another obvious extension of that. But that is actually a good idea because the literature is what they have the hardest time papers. I had a really nice experience because 1 of our librarians, our digital librarian, came along and talked to the students, and he taught me about a tool called litmap.com, which is basically, I don't know how it's implemented, but it's basically a graph, a graph representation of papers organized by citation. It's very, very cool. And the students who used to only find, I don't know, 1 paper and otherwise, of course, 15 YouTube videos and 100 blogs, suddenly started finding and reading scientific papers. It was only because of this presentation. So you should take the, I think, I hope that is the right, that's the right mode, litmaps. Okay, it's not litmap, it's called Litmaps. I'm gonna give you an example. I don't know if I can share this, if you can look at that. But basically you create a, 1 can use 1 of your papers as a seed, and then it will create a graph, graph representation of it for you. And this is a powerful tool in itself. But what I'm saying is that the students suddenly, their use of literature and that citation goes to the roof. And I've been waiting for that for probably 15 years since I've started teaching. It's crazy. That's really cool. it's called connected papers. It's based on the open source citation data. I think. learning the topic. It's like you find 1 paper, then you look into the connections. You can quickly narrow down to the most cited, the core papers. situation, you know, and they're always at the beginning. As you go on, you develop different ways, but for these complete beginners, that's a good idea. Thank you so much for that. Okay, guys, anything else? I've enjoyed the conversation, so you should definitely, I'm going to take some of these things away. Thank you so much for that. Have you done, Yanta, have you done org mode documentations yourself on WOC? Or do you have a sort of a favorite 1? I mean, I often on walk, I often use the documentation for code blocks. I used to when I started doing that It's not part of the manual. yeah. And so I've used that a lot. mostly fixing the errors. Okay. All right. Well, thank you very much. And it's great to be at this conference. I think I'm going to get on. And for the talk, It was quite interesting to see our modules in actual teaching. German from Canada, the 1 of, I had him on 1 of the slides because he, he inspired me to do that. And, and I wouldn't be at the conference if I hadn't contacted him and said oh here's my paper and he said oh you should come to the conference and so that's why I came to the conference. Thank you very much and as they say keep in touch. You're welcome. Okay bye-bye. You're welcome. Okay, bye-bye. Take a copy of the chat before you go, if you can. Happy weekend to just bye bye. conference.

Questions or comments? Please e-mail birkenkrahe@lyon.edu