summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt')
-rw-r--r--2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt1193
1 files changed, 1193 insertions, 0 deletions
diff --git a/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt b/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt
new file mode 100644
index 00000000..560be0c6
--- /dev/null
+++ b/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt
@@ -0,0 +1,1193 @@
+WEBVTT captioned by sachac, checked by sachac
+
+NOTE Introduction
+
+00:00:00.000 --> 00:00:04.519
+Welcome to my talk, which is pre-recorded,
+
+00:00:04.520 --> 00:00:06.959
+so please don't blame me if I come across
+
+00:00:06.960 --> 00:00:08.599
+as wooden and humorless.
+
+00:00:08.600 --> 00:00:11.319
+It's hard to work up any emotion
+
+00:00:11.320 --> 00:00:13.879
+when looking at a mechanical eye.
+
+00:00:13.880 --> 00:00:15.039
+Of course, I am German,
+
+00:00:15.040 --> 00:00:18.639
+so I am pretty wooden and humorless to begin with.
+
+00:00:18.640 --> 00:00:20.439
+What else do you need to know about me?
+
+00:00:20.440 --> 00:00:23.319
+Not much, I suppose, except that I have been
+
+00:00:23.320 --> 00:00:25.199
+an Emacs user on and off
+
+00:00:25.200 --> 00:00:26.919
+since my days as a graduate student
+
+00:00:26.920 --> 00:00:30.079
+in theoretical physics in the 1990s.
+
+00:00:30.080 --> 00:00:34.679
+I picked Emacs and Org Mode up again
+
+00:00:34.680 --> 00:00:36.239
+for teaching during COVID
+
+00:00:36.240 --> 00:00:38.039
+when I had a lot of time on my hands,
+
+00:00:38.040 --> 00:00:40.359
+and when the teaching and learning needs shifted
+
+00:00:40.360 --> 00:00:44.239
+because of the exclusive online teaching.
+
+00:00:44.240 --> 00:00:48.199
+Now I'm going to take my picture away.
+
+00:00:48.200 --> 00:00:49.559
+You had a good look at me.
+
+00:00:49.560 --> 00:00:54.159
+I think that's just going to be in the way.
+
+NOTE My interest in this topic
+
+00:00:54.160 --> 00:00:57.279
+So my interest in this topic began with
+
+00:00:57.280 --> 00:00:59.279
+an Emacs talk given by Daniel German
+
+00:00:59.280 --> 00:01:04.119
+from the University of Victoria in Canada in 2021.
+
+00:01:04.120 --> 00:01:06.439
+Daniel demonstrated in detail
+
+00:01:06.440 --> 00:01:09.199
+how he uses Emacs and Org Mode
+
+00:01:09.200 --> 00:01:12.119
+to prepare and deliver lectures
+
+00:01:12.120 --> 00:01:14.199
+on different programming languages.
+
+00:01:14.200 --> 00:01:16.319
+This gave me the idea to try the same thing
+
+00:01:16.320 --> 00:01:19.999
+with my students with an important alteration.
+
+00:01:20.000 --> 00:01:23.559
+I wanted to force them to use Emacs and Org Mode
+
+00:01:23.560 --> 00:01:25.959
+just as most computer science instructors
+
+00:01:25.960 --> 00:01:29.079
+force their students to use whatever they are using
+
+00:01:29.080 --> 00:01:32.359
+when they develop their material.
+
+00:01:32.360 --> 00:01:36.839
+I carried my plan out and mandated Emacs and Org Mode
+
+00:01:36.840 --> 00:01:40.359
+as the only programming platform and IDE
+
+00:01:40.360 --> 00:01:43.639
+for three consecutive terms in all my courses,
+
+00:01:43.640 --> 00:01:45.919
+nine courses in total.
+
+00:01:45.920 --> 00:01:47.799
+I will give more details later.
+
+00:01:47.800 --> 00:01:49.919
+I published my results as a case study
+
+00:01:49.920 --> 00:01:52.279
+in September of this year,
+
+00:01:52.280 --> 00:01:53.639
+and it contains the missing bits
+
+00:01:53.640 --> 00:01:56.159
+that I will not talk about today for lack of time,
+
+00:01:56.160 --> 00:01:58.639
+especially regarding the methodology,
+
+00:01:58.640 --> 00:02:00.119
+the assessment, et cetera.
+
+00:02:00.120 --> 00:02:04.999
+Please also use the Q&A to inquire about such details
+
+00:02:05.000 --> 00:02:08.039
+if they interest you.
+
+NOTE What is data science?
+
+00:02:08.040 --> 00:02:12.799
+I probably don't have to explain what computer science is,
+
+00:02:12.800 --> 00:02:16.359
+but not everyone may know what data science does.
+
+00:02:16.360 --> 00:02:18.239
+I teach courses in both disciplines
+
+00:02:18.240 --> 00:02:20.559
+and the boundaries between them are blurred,
+
+00:02:20.560 --> 00:02:22.639
+so much of what I'm saying about data science
+
+00:02:22.640 --> 00:02:24.719
+will also be relevant for computer science.
+
+00:02:24.720 --> 00:02:29.359
+Conceptually, data science is an interdisciplinary affair
+
+00:02:29.360 --> 00:02:31.999
+that intersects with computer science
+
+00:02:32.000 --> 00:02:34.959
+and with whatever it is that the data scientist
+
+00:02:34.960 --> 00:02:39.159
+or his or her clients know very well; their domain.
+
+00:02:39.160 --> 00:02:42.679
+Because of this interdisciplinary character,
+
+00:02:42.680 --> 00:02:45.399
+and because their focus is on the data
+
+00:02:45.400 --> 00:02:48.119
+rather than only on algorithms or mathematics,
+
+00:02:48.120 --> 00:02:52.719
+successful data scientists need to be more broadly educated
+
+00:02:52.720 --> 00:02:56.199
+than specialists in computer science or statistics.
+
+00:02:56.200 --> 00:03:00.519
+In particular, there's a need to master
+
+00:03:00.520 --> 00:03:03.479
+the entire so-called data science pipeline:
+
+00:03:03.480 --> 00:03:06.079
+from data cleaning, which you see
+
+00:03:06.080 --> 00:03:08.879
+on the very left in this slide,
+
+00:03:08.880 --> 00:03:12.119
+over coding, to statistical modeling,
+
+00:03:12.120 --> 00:03:14.719
+and to data storytelling through visualization,
+
+00:03:14.720 --> 00:03:17.159
+which you see on the very right.
+
+00:03:17.160 --> 00:03:19.079
+This is why until recently,
+
+00:03:19.080 --> 00:03:22.119
+data science was a graduate-level education
+
+00:03:22.120 --> 00:03:25.879
+only for software engineers, computer scientists,
+
+00:03:25.880 --> 00:03:31.679
+statisticians, psychologists, biologists, business people,
+
+00:03:31.680 --> 00:03:34.279
+or for whoever took a special fancy
+
+00:03:34.280 --> 00:03:37.719
+to data in their chosen field.
+
+00:03:37.720 --> 00:03:40.039
+Only with a growing interest in machine learning,
+
+00:03:40.040 --> 00:03:41.999
+this has changed.
+
+00:03:42.000 --> 00:03:45.599
+And now we train--or try to train--data scientists
+
+00:03:45.600 --> 00:03:47.639
+in undergraduate programs as well.
+
+NOTE Computer science is a craft
+
+00:03:47.640 --> 00:03:52.399
+Now, what I'm saying here, I think is true
+
+00:03:52.400 --> 00:03:54.199
+for all areas of computing,
+
+00:03:54.200 --> 00:03:56.959
+from software engineering to data science.
+
+00:03:56.960 --> 00:04:00.639
+They are mostly taught and learned like a craft
+
+00:04:00.640 --> 00:04:03.679
+rather than a science, not through research,
+
+00:04:03.680 --> 00:04:04.679
+but through drill.
+
+00:04:04.680 --> 00:04:07.799
+The elements of this drill can be illustrated
+
+00:04:07.800 --> 00:04:09.959
+by learning how to fix cars.
+
+00:04:09.960 --> 00:04:12.759
+They include taking a problem apart
+
+00:04:12.760 --> 00:04:14.119
+with the tools you already know,
+
+00:04:14.120 --> 00:04:18.239
+learn a lot more tools in the process of doing that,
+
+00:04:18.240 --> 00:04:20.639
+then solve many, many problems
+
+00:04:20.640 --> 00:04:22.199
+of increasing difficulty
+
+00:04:22.200 --> 00:04:25.719
+while being or getting more literate, as it were,
+
+00:04:25.720 --> 00:04:27.919
+about the mechanics of computing,
+
+00:04:27.920 --> 00:04:30.759
+including the hardware, the infrastructure,
+
+00:04:30.760 --> 00:04:32.639
+and finally develop a way of thinking
+
+00:04:32.640 --> 00:04:35.519
+that allows the learner to identify patterns
+
+00:04:35.520 --> 00:04:39.719
+to solve new problems better and faster.
+
+00:04:39.720 --> 00:04:42.479
+Unlike learning how to fix cars,
+
+00:04:42.480 --> 00:04:44.439
+all of the objects of our interest--
+
+00:04:44.440 --> 00:04:48.719
+both hardware and software--are evolving rapidly.
+
+00:04:48.720 --> 00:04:51.519
+In this field, radical innovation is the rule,
+
+00:04:51.520 --> 00:04:52.839
+not the exception.
+
+NOTE The problem
+
+00:04:52.840 --> 00:04:58.679
+The problem that I identified is that students,
+
+00:04:58.680 --> 00:05:00.799
+especially undergraduate students
+
+00:05:00.800 --> 00:05:02.399
+in computer and data science,
+
+00:05:02.400 --> 00:05:06.439
+often do no longer understand the infrastructure.
+
+00:05:06.440 --> 00:05:08.919
+Here are a few examples of the problems
+
+00:05:08.920 --> 00:05:10.079
+that the students seem to have.
+
+00:05:10.080 --> 00:05:13.599
+They do not understand computer architecture,
+
+00:05:13.600 --> 00:05:14.599
+except in theory.
+
+00:05:14.600 --> 00:05:18.519
+They cannot navigate their way around their own computers.
+
+00:05:18.520 --> 00:05:22.319
+They don't understand the value or the issues of networks.
+
+00:05:22.320 --> 00:05:25.079
+They are often more interested in convenience
+
+00:05:25.080 --> 00:05:28.279
+than in customization of the environment.
+
+00:05:28.280 --> 00:05:31.839
+As a result, the machines which we're meant to control
+
+00:05:31.840 --> 00:05:35.079
+have all the power--though passively,
+
+00:05:35.080 --> 00:05:36.559
+of course, for now anyway.
+
+NOTE The solution: Emacs + Org-mode
+
+00:05:36.560 --> 00:05:43.679
+Enter Emacs, the self-extensible operating system
+
+00:05:43.680 --> 00:05:45.999
+disguised as a text editor.
+
+00:05:46.000 --> 00:05:50.999
+You're at EmacsConf, so of course I don't have to tell you
+
+00:05:51.000 --> 00:05:52.199
+what Emacs can do.
+
+00:05:52.200 --> 00:05:54.319
+Here's a rundown on the right-hand side
+
+00:05:54.320 --> 00:05:56.759
+of some of its most important properties,
+
+00:05:56.760 --> 00:05:58.959
+and an Org Mode file excerpt
+
+00:05:58.960 --> 00:06:00.519
+from one of my classes on the left.
+
+00:06:00.520 --> 00:06:05.239
+What you may not know is how to onboard students who have,
+
+00:06:05.240 --> 00:06:07.439
+at the start, no interest whatsoever
+
+00:06:07.440 --> 00:06:08.919
+in leaving their comfort zone,
+
+00:06:08.920 --> 00:06:12.399
+which is defined by a lifetime of Windows,
+
+00:06:12.400 --> 00:06:16.319
+pre-configured graphical interfaces, and software bloat.
+
+00:06:16.320 --> 00:06:19.679
+In fact, when I started this, I wasn't very hopeful,
+
+00:06:19.680 --> 00:06:22.399
+but the results have made me even more optimistic
+
+00:06:22.400 --> 00:06:24.119
+than I already am by nature.
+
+NOTE Emacs configuration file
+
+00:06:24.120 --> 00:06:28.839
+So to rein in your expectations,
+
+00:06:28.840 --> 00:06:31.839
+you cannot do entirely without
+
+00:06:31.840 --> 00:06:33.799
+configuring the student's experience.
+
+00:06:33.800 --> 00:06:35.279
+An important part of this
+
+00:06:35.280 --> 00:06:37.999
+is the initial Emacs configuration shown here.
+
+00:06:38.000 --> 00:06:40.639
+The minimal configuration file,
+
+00:06:40.640 --> 00:06:42.199
+which you can see on the right-hand side,
+
+00:06:42.200 --> 00:06:46.679
+allows the students to run code in C and C++, R, SQL,
+
+00:06:46.680 --> 00:06:48.599
+SQLite, Python, and Bash.
+
+00:06:48.600 --> 00:06:52.559
+It will allow them to update Emacs packages
+
+00:06:52.560 --> 00:06:55.039
+from the stable Melpa repository,
+
+00:06:55.040 --> 00:06:58.599
+and it will allow them to create code blocks easily
+
+00:06:58.600 --> 00:07:01.919
+using skeleton commands for code blocks,
+
+00:07:01.920 --> 00:07:06.279
+and to auto-load the Emacs Speaks Statistics package,
+
+00:07:06.280 --> 00:07:09.759
+which you particularly need when you run R in Emacs,
+
+00:07:09.760 --> 00:07:14.399
+and lastly, to disable toolbar and graphical menu bars.
+
+00:07:14.400 --> 00:07:18.999
+To do that encourages the exclusive use of the keyboard
+
+00:07:19.000 --> 00:07:23.199
+to control Emacs, and to stop the students
+
+00:07:23.200 --> 00:07:25.839
+from flicking all the time to the mouse;
+
+00:07:25.840 --> 00:07:30.359
+seems to be an essential part of getting used to Emacs.
+
+NOTE Story + code = source + documentation
+
+00:07:30.360 --> 00:07:38.839
+Now Org Mode was included in Emacs in 2006 as a major mode,
+
+00:07:38.840 --> 00:07:41.959
+and as you know, it's a structured plain text format
+
+00:07:41.960 --> 00:07:45.039
+with notebook live code execution.
+
+00:07:45.040 --> 00:07:47.839
+It's an ideal platform for literate programming,
+
+00:07:47.840 --> 00:07:52.359
+which is a term for programming that intermingles code,
+
+00:07:52.360 --> 00:07:55.839
+documentation, and output within a single document,
+
+00:07:55.840 --> 00:07:59.519
+and that can, as you can see here from an org file,
+
+00:07:59.520 --> 00:08:02.559
+either be tangled into source code
+
+00:08:02.560 --> 00:08:06.999
+or woven into a documentation file, which could be PDF,
+
+00:08:07.000 --> 00:08:11.039
+could be Markdown, could be OpenOffice,
+
+00:08:11.040 --> 00:08:13.919
+could be a notebook format.
+
+00:08:13.920 --> 00:08:18.479
+This methodology was conceived by Donald Knuth in 1984,
+
+00:08:18.480 --> 00:08:22.039
+and it is therefore even older than Emacs itself.
+
+NOTE What is literate programming?
+
+00:08:22.040 --> 00:08:27.199
+The main purpose of literate programming is not only
+
+00:08:27.200 --> 00:08:31.119
+to make code or documentation or output more manageable,
+
+00:08:31.120 --> 00:08:34.759
+but to allow humans to create a data story with ease
+
+00:08:34.760 --> 00:08:37.199
+from a single source.
+
+00:08:37.200 --> 00:08:40.359
+So what you see on the slide on the left-hand side
+
+00:08:40.360 --> 00:08:45.479
+is the story and code inside a Org Mode file.
+
+00:08:45.480 --> 00:08:49.479
+The file starts with some documentation,
+
+00:08:49.480 --> 00:08:52.519
+then with the white background is the code,
+
+00:08:52.520 --> 00:08:56.239
+and at the bottom you see an output file,
+
+00:08:56.240 --> 00:09:00.159
+which is not shown here on the slide itself.
+
+00:09:00.160 --> 00:09:02.839
+In the middle, you have the source code,
+
+00:09:02.840 --> 00:09:05.759
+which is the result of tangling
+
+00:09:05.760 --> 00:09:10.799
+or of opening a buffer inside org-mode.
+
+00:09:10.800 --> 00:09:16.119
+And on the very right-hand side, you have a PDF--
+
+00:09:16.120 --> 00:09:20.159
+actually this HTML rendering of the very same file
+
+00:09:20.160 --> 00:09:22.599
+that you see on the very left.
+
+00:09:22.600 --> 00:09:26.479
+So the humans look at some of this code,
+
+00:09:26.480 --> 00:09:29.879
+and the machines will look at other parts of the code.
+
+00:09:29.880 --> 00:09:33.359
+I actually did all my programming in a literate way
+
+00:09:33.360 --> 00:09:35.959
+even in the early 1990s, not using org-mode,
+
+00:09:35.960 --> 00:09:36.799
+which didn't exist yet,
+
+00:09:36.800 --> 00:09:40.319
+but using Norman Ramsey's Noweb preprocessor.
+
+00:09:40.320 --> 00:09:43.399
+And I still use it inside org-mode today.
+
+00:09:43.400 --> 00:09:47.439
+This preprocessor, Noweb, allows you to tangle code
+
+00:09:47.440 --> 00:09:50.079
+from within an org-mode file that's a self-standing file,
+
+00:09:50.080 --> 00:09:52.799
+much like org-mode's edit functions,
+
+00:09:52.800 --> 00:09:55.639
+which export code blocks into buffers
+
+00:09:55.640 --> 00:09:59.879
+in whatever language the code block is written.
+
+NOTE Emacs as a literate programming tool
+
+00:09:59.880 --> 00:10:02.719
+In data science, these interactive notebooks
+
+00:10:02.720 --> 00:10:05.999
+in one of the interpreted languages like Julia,
+
+00:10:06.000 --> 00:10:07.839
+Python, or R dominate.
+
+00:10:07.840 --> 00:10:10.239
+The basis technology,
+
+00:10:10.240 --> 00:10:12.759
+is that of Jupyter notebooks, which take their name
+
+00:10:12.760 --> 00:10:14.439
+from Julia, Python, and R.
+
+00:10:14.440 --> 00:10:19.199
+And these notebooks use a spruced-up shell (for example,
+
+00:10:19.200 --> 00:10:23.079
+IPython for Python) with an option to add SQL cells.
+
+00:10:23.080 --> 00:10:28.079
+Org Mode inside Emacs has a large number of advantages--
+
+00:10:28.080 --> 00:10:31.479
+some of them are listed here--over these notebooks.
+
+00:10:31.480 --> 00:10:33.679
+Two of these stand out particularly.
+
+00:10:33.680 --> 00:10:39.439
+Different languages can be mixed, as shown in the image,
+
+00:10:39.440 --> 00:10:43.439
+while in Jupyter notebooks, a notebook is limited to
+
+00:10:43.440 --> 00:10:45.639
+running a kernel in one language only.
+
+00:10:45.640 --> 00:10:48.159
+So the content of the notebook--
+
+00:10:48.160 --> 00:10:50.319
+its document code or output part--
+
+00:10:50.320 --> 00:10:52.879
+can be exported in a variety of formats,
+
+00:10:52.880 --> 00:10:55.479
+which makes it much easier to share with others
+
+00:10:55.480 --> 00:10:58.479
+and to use one's work in different reporting formats;
+
+00:10:58.480 --> 00:11:02.399
+for example, to read it out into a LaTeX publication.
+
+00:11:02.400 --> 00:11:08.319
+Actually, to come back to this,
+
+00:11:08.320 --> 00:11:11.039
+the file does not show different languages.
+
+00:11:11.040 --> 00:11:14.159
+That is something you can see in a paper of mine,
+
+00:11:14.160 --> 00:11:18.959
+in one of the figures.
+
+NOTE Case study: basic setup
+
+00:11:18.960 --> 00:11:22.719
+Now, coming to the case study itself,
+
+00:11:22.720 --> 00:11:25.039
+here are some of the overall results of the case study.
+
+00:11:25.040 --> 00:11:29.039
+Now, the courses ranged from introductory to advanced,
+
+00:11:29.040 --> 00:11:32.039
+as you can see here in the table on the left-hand side.
+
+00:11:32.040 --> 00:11:37.199
+The topics covered different programming applications.
+
+00:11:37.200 --> 00:11:38.679
+The courses were taught
+
+00:11:38.680 --> 00:11:41.039
+over a period of three consecutive terms.
+
+00:11:41.040 --> 00:11:45.839
+There was between 6 and 28 participants per course.
+
+00:11:45.840 --> 00:11:49.239
+I used a few other tools besides Emacs:
+
+00:11:49.240 --> 00:11:51.919
+GitHub as the main repository for all the material,
+
+00:11:51.920 --> 00:11:55.239
+Datacamp for structured online lessons and exercises,
+
+00:11:55.240 --> 00:11:57.359
+Canvas as a learning management system,
+
+00:11:57.360 --> 00:12:00.919
+and Zoom to record the sessions for later use.
+
+00:12:00.920 --> 00:12:03.279
+Now, the material for all these courses
+
+00:12:03.280 --> 00:12:05.399
+is openly available on GitHub,
+
+00:12:05.400 --> 00:12:11.279
+and the address is on the slide at the bottom.
+
+NOTE Emacs + Org-mode notebooks
+
+00:12:11.280 --> 00:12:15.879
+I'm now going to briefly comment on
+
+00:12:15.880 --> 00:12:18.799
+the most important aspects of using Emacs and Org Mode
+
+00:12:18.800 --> 00:12:20.119
+in and outside of class.
+
+00:12:20.120 --> 00:12:24.039
+Essentially, these two--Emacs and Org Mode--
+
+00:12:24.040 --> 00:12:26.239
+were used all the time for almost everything
+
+00:12:26.240 --> 00:12:29.239
+that the students were doing in and outside of class.
+
+00:12:29.240 --> 00:12:32.319
+The only exception were multiple choice tests
+
+00:12:32.320 --> 00:12:34.039
+and online assignments
+
+00:12:34.040 --> 00:12:35.599
+on the Datacamp learning platform
+
+00:12:35.600 --> 00:12:37.199
+in the data science courses.
+
+00:12:37.200 --> 00:12:39.999
+But everything else--code-along lectures, home assignments,
+
+00:12:40.000 --> 00:12:42.439
+student projects, practice in class--
+
+00:12:42.440 --> 00:12:45.799
+was done with these two tools.
+
+NOTE Onboarding: simplified Emacs tutorial
+
+00:12:45.800 --> 00:12:47.999
+To facilitate the onboarding,
+
+00:12:48.000 --> 00:12:50.999
+so to get students used to Emacs in the first place,
+
+00:12:51.000 --> 00:12:53.279
+I developed a simplified Emacs tutorial,
+
+00:12:53.280 --> 00:12:56.519
+which was focused on the basics of literate programming.
+
+00:12:56.520 --> 00:12:59.999
+It included navigation in major modes,
+
+00:13:00.000 --> 00:13:02.839
+managing files and buffers, customizing the interface,
+
+00:13:02.840 --> 00:13:04.039
+and keyboard shortcuts.
+
+00:13:04.040 --> 00:13:06.319
+It was considerably shorter;
+
+00:13:06.320 --> 00:13:12.879
+about a quarter of the size of the standard Emacs tutorial,
+
+00:13:12.880 --> 00:13:14.319
+which contains a lot more stuff.
+
+00:13:14.320 --> 00:13:16.759
+As a result of this onboarding,
+
+00:13:16.760 --> 00:13:18.279
+by the end of the second week,
+
+00:13:18.280 --> 00:13:19.919
+most students were able
+
+00:13:19.920 --> 00:13:22.639
+to use Emacs and Org Mode competently
+
+00:13:22.640 --> 00:13:25.079
+for their assignments in and outside of class,
+
+00:13:25.080 --> 00:13:29.639
+completely independent of their previous exposure
+
+00:13:29.640 --> 00:13:31.199
+to any of these tools.
+
+00:13:31.200 --> 00:13:35.399
+Most of the students, in fact, had never heard of Emacs.
+
+00:13:35.400 --> 00:13:40.839
+All the classes were taught physically in a computer lab.
+
+NOTE Instruction + interaction
+
+00:13:40.840 --> 00:13:42.759
+Emacs with Org Mode
+
+00:13:42.760 --> 00:13:45.479
+and the necessary languages for the class
+
+00:13:45.480 --> 00:13:47.359
+were pre-installed on the computers.
+
+00:13:47.360 --> 00:13:50.199
+The computers ran Windows, unfortunately,
+
+00:13:50.200 --> 00:13:52.759
+like most of the students' personal computers.
+
+00:13:52.760 --> 00:13:57.479
+A typical class involved a lecture delivered by me
+
+00:13:57.480 --> 00:13:59.159
+in Emacs as a code-along.
+
+00:13:59.160 --> 00:14:01.559
+The students would get an Org Mode file
+
+00:14:01.560 --> 00:14:03.399
+with all the code removed.
+
+00:14:03.400 --> 00:14:04.599
+You can see an example here
+
+00:14:04.600 --> 00:14:06.799
+on the slide on the right-hand side.
+
+00:14:06.800 --> 00:14:12.239
+This example is actually only one line of code in blue,
+
+00:14:12.240 --> 00:14:15.039
+visible at the bottom for an award file.
+
+00:14:15.040 --> 00:14:17.919
+Then the students submitted home assignments
+
+00:14:17.920 --> 00:14:21.159
+also as Org Mode files, complete with documentation,
+
+00:14:21.160 --> 00:14:23.479
+code and sample output.
+
+00:14:23.480 --> 00:14:26.999
+Working this way makes the classes highly interactive.
+
+00:14:27.000 --> 00:14:28.879
+So the students are busy coding
+
+00:14:28.880 --> 00:14:31.639
+and they learn to control their environment better
+
+00:14:31.640 --> 00:14:34.919
+all the time.
+
+00:14:34.920 --> 00:14:38.599
+In my classes, the students have to complete
+
+00:14:38.600 --> 00:14:41.359
+an independent, agile research project
+
+00:14:41.360 --> 00:14:44.239
+using an adaptation of Scrum as a methodology.
+
+00:14:44.240 --> 00:14:48.079
+You can find examples of these rather high-octane projects
+
+00:14:48.080 --> 00:14:48.719
+in my paper.
+
+NOTE Assignments + projects
+
+00:14:48.720 --> 00:14:52.679
+Now, using literate programming for the projects
+
+00:14:52.680 --> 00:14:54.399
+provided some unique benefits.
+
+00:14:54.400 --> 00:14:57.959
+By having to continuously interweave documentation,
+
+00:14:57.960 --> 00:15:01.599
+references and output alongside functional code,
+
+00:15:01.600 --> 00:15:04.319
+the students learn to communicate their work
+
+00:15:04.320 --> 00:15:05.599
+throughout the term
+
+00:15:05.600 --> 00:15:07.559
+in various stages of completion,
+
+00:15:07.560 --> 00:15:09.839
+from the research question at the start,
+
+00:15:09.840 --> 00:15:12.879
+over the prototype to the finished product.
+
+00:15:12.880 --> 00:15:14.999
+And here on the right-hand side,
+
+00:15:15.000 --> 00:15:17.479
+you can see one of those assignments
+
+00:15:17.480 --> 00:15:18.839
+that the students received,
+
+00:15:18.840 --> 00:15:24.959
+including some of the metadata for their Org Mode files
+
+00:15:24.960 --> 00:15:26.159
+in the beginning of the course.
+
+00:15:26.160 --> 00:15:32.599
+Here are two graphs that I created early on
+
+00:15:32.600 --> 00:15:34.319
+when I started doing this.
+
+00:15:34.320 --> 00:15:36.439
+They show how the test results of the students
+
+00:15:36.440 --> 00:15:39.639
+in two different courses, actually three courses,
+
+00:15:39.640 --> 00:15:41.719
+changed from before to after
+
+00:15:41.720 --> 00:15:45.919
+introducing literate programming with Emacs and Org Mode.
+
+00:15:45.920 --> 00:15:49.559
+So you see the before and after
+
+00:15:49.560 --> 00:15:53.479
+introducing literate programming in the red curve before
+
+00:15:53.480 --> 00:15:54.919
+and the blue curve afterwards.
+
+00:15:54.920 --> 00:15:58.519
+And the improvement, especially on the right-hand side,
+
+00:15:58.520 --> 00:15:59.719
+is quite significant.
+
+00:15:59.720 --> 00:16:01.999
+It was this performance improvement,
+
+00:16:02.000 --> 00:16:05.119
+apart from the students who were voicing their support,
+
+00:16:05.120 --> 00:16:07.999
+that made me extend the Emacs experiment
+
+00:16:08.000 --> 00:16:09.159
+after the first term
+
+00:16:09.160 --> 00:16:15.279
+and continue for the following two terms.
+
+NOTE Overall results positive
+
+00:16:15.280 --> 00:16:18.839
+The courses... Coming to the result, the overall result...
+
+00:16:18.840 --> 00:16:20.999
+The courses were formally and informally
+
+00:16:21.000 --> 00:16:23.119
+also evaluated by the students,
+
+00:16:23.120 --> 00:16:24.599
+but you need to look at my paper
+
+00:16:24.600 --> 00:16:27.039
+for some explicit student comments,
+
+00:16:27.040 --> 00:16:28.199
+which you will find there.
+
+00:16:28.200 --> 00:16:29.879
+Here, I'm giving you only the summary.
+
+00:16:29.880 --> 00:16:34.519
+So first of all, Emacs proved to be hard to learn for some,
+
+00:16:34.520 --> 00:16:37.839
+but all students succeeded in all courses,
+
+00:16:37.840 --> 00:16:39.519
+independent of the level of
+
+00:16:39.520 --> 00:16:40.959
+their previous knowledge and skill.
+
+00:16:40.960 --> 00:16:45.919
+The documentation practices remained pretty uneven.
+
+00:16:45.920 --> 00:16:49.639
+So some students wrote a lot, others wrote little.
+
+00:16:49.640 --> 00:16:52.999
+But they were overall much higher than in classes
+
+00:16:53.000 --> 00:16:57.279
+without the use of Emacs and Org Mode.
+
+00:16:57.280 --> 00:16:59.559
+The interactivity enabled through Emacs
+
+00:16:59.560 --> 00:17:01.599
+was highly praised by the students
+
+00:17:01.600 --> 00:17:05.039
+and always identified on the evaluations.
+
+00:17:05.040 --> 00:17:08.559
+And lastly and most importantly, given the problems
+
+00:17:08.560 --> 00:17:13.279
+that I identified earlier, the computing file
+
+00:17:13.280 --> 00:17:15.079
+and data handling competence
+
+00:17:15.080 --> 00:17:18.279
+of the students who worked with Emacs throughout
+
+00:17:18.280 --> 00:17:23.399
+opening Emacs shells, running programs through Emacs,
+
+00:17:23.400 --> 00:17:26.999
+these skills increased massively.
+
+00:17:27.000 --> 00:17:30.599
+In the published paper, I have expressed
+
+00:17:30.600 --> 00:17:32.839
+a little more doubt than you see on this slide.
+
+00:17:32.840 --> 00:17:38.359
+But now, actually, I'm feeling quite hopeful again,
+
+00:17:38.360 --> 00:17:41.879
+especially because recently for one term,
+
+00:17:41.880 --> 00:17:47.679
+I have returned to Jupyter notebooks.
+
+00:17:47.680 --> 00:17:50.599
+In the current term, I abandoned Emacs again
+
+00:17:50.600 --> 00:17:53.119
+for online Jupyter notebook installations.
+
+00:17:53.120 --> 00:17:55.679
+The reason is that these Jupyter notebooks
+
+00:17:55.680 --> 00:18:00.159
+that I use from DataCamp have generative AI support
+
+00:18:00.160 --> 00:18:03.439
+from ChatGPT integrated into the notebook.
+
+00:18:03.440 --> 00:18:04.919
+And I wanted to try that.
+
+00:18:04.920 --> 00:18:08.519
+But after one term without Emacs,
+
+00:18:08.520 --> 00:18:10.199
+I regret that decision now.
+
+00:18:10.200 --> 00:18:13.199
+The AI advantage does not make up
+
+00:18:13.200 --> 00:18:15.119
+for the loss of the immersion
+
+00:18:15.120 --> 00:18:19.799
+that Emacs and Org Mode deliver.
+
+NOTE Conclusion & outlook
+
+00:18:19.800 --> 00:18:21.399
+And here's the summary.
+
+00:18:21.400 --> 00:18:23.759
+When learning computer and data science,
+
+00:18:23.760 --> 00:18:25.679
+immersion is everything.
+
+00:18:25.680 --> 00:18:29.479
+The best students will aim at immersion anyway.
+
+00:18:29.480 --> 00:18:31.239
+But for the majority of students,
+
+00:18:31.240 --> 00:18:33.679
+immersion must happen in class.
+
+00:18:33.680 --> 00:18:39.839
+Emacs and Org Mode performed throughout very well
+
+00:18:39.840 --> 00:18:42.319
+as the central literary programming platform.
+
+00:18:42.320 --> 00:18:45.959
+And the pre-configuring and the onboarding,
+
+00:18:45.960 --> 00:18:48.959
+which I showed to you, were very important
+
+00:18:48.960 --> 00:18:50.359
+to train the students quickly.
+
+00:18:50.360 --> 00:18:54.479
+In the paper, I also speculated on the impact
+
+00:18:54.480 --> 00:18:57.919
+of low-code, no-code, and AI coding assistance.
+
+00:18:57.920 --> 00:19:00.239
+And my general view on this is that
+
+00:19:00.240 --> 00:19:01.799
+the arrival of these tools
+
+00:19:01.800 --> 00:19:04.319
+make literary programming as an immersive technique
+
+00:19:04.320 --> 00:19:08.399
+focused on teaching a broad range of skills
+
+00:19:08.400 --> 00:19:09.719
+even more important.
+
+00:19:09.720 --> 00:19:13.079
+So even with AI--or especially with AI--
+
+00:19:13.080 --> 00:19:16.799
+this kind of approach, I think, could be critical.
+
+00:19:16.800 --> 00:19:18.439
+And that's it.
+
+00:19:18.440 --> 00:19:19.839
+I'm at the end of my presentation.
+
+00:19:19.840 --> 00:19:21.719
+Thank you very much for your attention.
+
+00:19:21.720 --> 00:19:22.839
+And I'm looking forward to the Q&A.
+
+00:19:22.840 --> 00:19:27.280
+Thank you.