[[!meta title="Teaching computer and data science with literate programming tools"]] [[!meta copyright="Copyright © 2023 Marcus Birkenkrahe"]] [[!inline pages="internal(2023/info/teaching-nav)" raw="yes"]] # Teaching computer and data science with literate programming tools Marcus Birkenkrahe - Faculty website - LinkedIn - Twitter (X) - Researchgate.net - Google Scholar - ORCID - Wikipedia , [[!inline pages="internal(2023/info/teaching-before)" raw="yes"]] 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](https://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 - - 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) - If you make more videos, share them on [[https://orgmode.org/worg/]{.underline}](https://orgmode.org/worg/) - 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? [[!inline pages="internal(2023/info/teaching-after)" raw="yes"]] [[!inline pages="internal(2023/info/teaching-nav)" raw="yes"]]