summaryrefslogtreecommitdiffstats
path: root/2023/talks/teaching.md
blob: 70e0ffa2c4db5d768321f640a743a89f6b5ee916 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
[[!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"]]

<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# 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>, <mailto:birkenkrahe@lyon.edu>

[[!inline pages="internal(2023/info/teaching-before)" raw="yes"]]

[[!template id="help"
volunteer=""
summary="Q&A could be indexed with chapter markers"
tags="help_with_chapter_markers"
message="""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>."""]]

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

-   <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)
        -   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"]]