From ef8653db9a34c17bc5f103d81de25a2ed7a177a3 Mon Sep 17 00:00:00 2001 From: EmacsConf Date: Sat, 2 Dec 2023 10:05:20 -0500 Subject: Automated commit --- ...programming-tools--marcus-birkenkrahe--main.vtt | 1193 ++++++++++++++++++++ 1 file changed, 1193 insertions(+) create mode 100644 2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt (limited to '2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt') 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. -- cgit v1.2.3