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.