diff options
4 files changed, 1660 insertions, 1 deletions
diff --git a/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt b/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt new file mode 100644 index 00000000..6674a23c --- /dev/null +++ b/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt @@ -0,0 +1,53 @@ +WEBVTT + + +00:00:00.000 --> 00:00:54.159 +Introduction + +00:00:54.160 --> 00:02:08.039 +My interest in this topic + +00:02:08.040 --> 00:03:47.639 +What is data science? + +00:03:47.640 --> 00:04:52.839 +Computer science is a craft + +00:04:52.840 --> 00:05:36.559 +The problem + +00:05:36.560 --> 00:06:24.119 +The solution: Emacs + Org-mode + +00:06:24.120 --> 00:07:30.359 +Emacs configuration file + +00:07:30.360 --> 00:08:22.039 +Story + code = source + documentation + +00:08:22.040 --> 00:09:59.879 +What is literate programming? + +00:09:59.880 --> 00:11:18.959 +Emacs as a literate programming tool + +00:11:18.960 --> 00:12:11.279 +Case study: basic setup + +00:12:11.280 --> 00:12:45.799 +Emacs + Org-mode notebooks + +00:12:45.800 --> 00:13:40.839 +Onboarding: simplified Emacs tutorial + +00:13:40.840 --> 00:14:48.719 +Instruction + interaction + +00:14:48.720 --> 00:16:15.279 +Assignments + projects + +00:16:15.280 --> 00:18:19.799 +Overall results positive + +00:18:19.800 --> 00:19:27.280 +Conclusion & outlook 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. diff --git a/2023/info/teaching-after.md b/2023/info/teaching-after.md index d8f013e5..ec0c961e 100644 --- a/2023/info/teaching-after.md +++ b/2023/info/teaching-after.md @@ -1,6 +1,400 @@ <!-- Automatically generated by emacsconf-publish-after-page --> +<a name="teaching-mainVideo-transcript"></a> +# Transcript + +[[!template new="1" text="""Welcome to my talk, which is pre-recorded,""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""so please don't blame me if I come across""" start="00:00:04.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""as wooden and humorless.""" start="00:00:06.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It's hard to work up any emotion""" start="00:00:08.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""when looking at a mechanical eye.""" start="00:00:11.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Of course, I am German,""" start="00:00:13.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""so I am pretty wooden and humorless to begin with.""" start="00:00:15.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""What else do you need to know about me?""" start="00:00:18.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Not much, I suppose, except that I have been""" start="00:00:20.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""an Emacs user on and off""" start="00:00:23.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""since my days as a graduate student""" start="00:00:25.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in theoretical physics in the 1990s.""" start="00:00:26.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I picked Emacs and Org Mode up again""" start="00:00:30.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for teaching during COVID""" start="00:00:34.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""when I had a lot of time on my hands,""" start="00:00:36.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and when the teaching and learning needs shifted""" start="00:00:38.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""because of the exclusive online teaching.""" start="00:00:40.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Now I'm going to take my picture away.""" start="00:00:44.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""You had a good look at me.""" start="00:00:48.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I think that's just going to be in the way.""" start="00:00:49.560" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""So my interest in this topic began with""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""an Emacs talk given by Daniel German""" start="00:00:57.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from the University of Victoria in Canada in 2021.""" start="00:00:59.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Daniel demonstrated in detail""" start="00:01:04.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""how he uses Emacs and Org Mode""" start="00:01:06.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to prepare and deliver lectures""" start="00:01:09.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""on different programming languages.""" start="00:01:12.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""This gave me the idea to try the same thing""" start="00:01:14.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""with my students with an important alteration.""" start="00:01:16.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I wanted to force them to use Emacs and Org Mode""" start="00:01:20.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""just as most computer science instructors""" start="00:01:23.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""force their students to use whatever they are using""" start="00:01:25.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""when they develop their material.""" start="00:01:29.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I carried my plan out and mandated Emacs and Org Mode""" start="00:01:32.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""as the only programming platform and IDE""" start="00:01:36.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for three consecutive terms in all my courses,""" start="00:01:40.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""nine courses in total.""" start="00:01:43.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I will give more details later.""" start="00:01:45.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I published my results as a case study""" start="00:01:47.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in September of this year,""" start="00:01:49.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and it contains the missing bits""" start="00:01:52.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that I will not talk about today for lack of time,""" start="00:01:53.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""especially regarding the methodology,""" start="00:01:56.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the assessment, et cetera.""" start="00:01:58.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Please also use the Q&A to inquire about such details""" start="00:02:00.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""if they interest you.""" start="00:02:05.000" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""I probably don't have to explain what computer science is,""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but not everyone may know what data science does.""" start="00:02:12.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I teach courses in both disciplines""" start="00:02:16.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and the boundaries between them are blurred,""" start="00:02:18.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""so much of what I'm saying about data science""" start="00:02:20.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""will also be relevant for computer science.""" start="00:02:22.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Conceptually, data science is an interdisciplinary affair""" start="00:02:24.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that intersects with computer science""" start="00:02:29.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and with whatever it is that the data scientist""" start="00:02:32.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""or his or her clients know very well; their domain.""" start="00:02:34.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Because of this interdisciplinary character,""" start="00:02:39.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and because their focus is on the data""" start="00:02:42.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""rather than only on algorithms or mathematics,""" start="00:02:45.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""successful data scientists need to be more broadly educated""" start="00:02:48.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""than specialists in computer science or statistics.""" start="00:02:52.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In particular, there's a need to master""" start="00:02:56.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the entire so-called data science pipeline:""" start="00:03:00.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from data cleaning, which you see""" start="00:03:03.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""on the very left in this slide,""" start="00:03:06.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""over coding, to statistical modeling,""" start="00:03:08.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and to data storytelling through visualization,""" start="00:03:12.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which you see on the very right.""" start="00:03:14.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""This is why until recently,""" start="00:03:17.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""data science was a graduate-level education""" start="00:03:19.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""only for software engineers, computer scientists,""" start="00:03:22.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""statisticians, psychologists, biologists, business people,""" start="00:03:25.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""or for whoever took a special fancy""" start="00:03:31.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to data in their chosen field.""" start="00:03:34.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Only with a growing interest in machine learning,""" start="00:03:37.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""this has changed.""" start="00:03:40.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And now we train--or try to train--data scientists""" start="00:03:42.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in undergraduate programs as well.""" start="00:03:45.600" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Now, what I'm saying here, I think is true""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for all areas of computing,""" start="00:03:52.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from software engineering to data science.""" start="00:03:54.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They are mostly taught and learned like a craft""" start="00:03:56.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""rather than a science, not through research,""" start="00:04:00.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but through drill.""" start="00:04:03.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The elements of this drill can be illustrated""" start="00:04:04.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""by learning how to fix cars.""" start="00:04:07.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They include taking a problem apart""" start="00:04:09.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""with the tools you already know,""" start="00:04:12.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""learn a lot more tools in the process of doing that,""" start="00:04:14.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""then solve many, many problems""" start="00:04:18.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""of increasing difficulty""" start="00:04:20.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""while being or getting more literate, as it were,""" start="00:04:22.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""about the mechanics of computing,""" start="00:04:25.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""including the hardware, the infrastructure,""" start="00:04:27.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and finally develop a way of thinking""" start="00:04:30.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that allows the learner to identify patterns""" start="00:04:32.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to solve new problems better and faster.""" start="00:04:35.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Unlike learning how to fix cars,""" start="00:04:39.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""all of the objects of our interest--""" start="00:04:42.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""both hardware and software--are evolving rapidly.""" start="00:04:44.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In this field, radical innovation is the rule,""" start="00:04:48.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""not the exception.""" start="00:04:51.520" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""The problem that I identified is that students,""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""especially undergraduate students""" start="00:04:58.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in computer and data science,""" start="00:05:00.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""often do no longer understand the infrastructure.""" start="00:05:02.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Here are a few examples of the problems""" start="00:05:06.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that the students seem to have.""" start="00:05:08.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They do not understand computer architecture,""" start="00:05:10.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""except in theory.""" start="00:05:13.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They cannot navigate their way around their own computers.""" start="00:05:14.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They don't understand the value or the issues of networks.""" start="00:05:18.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They are often more interested in convenience""" start="00:05:22.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""than in customization of the environment.""" start="00:05:25.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""As a result, the machines which we're meant to control""" start="00:05:28.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""have all the power--though passively,""" start="00:05:31.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""of course, for now anyway.""" start="00:05:35.080" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Enter Emacs, the self-extensible operating system""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""disguised as a text editor.""" start="00:05:43.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""You're at EmacsConf, so of course I don't have to tell you""" start="00:05:46.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""what Emacs can do.""" start="00:05:51.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Here's a rundown on the right-hand side""" start="00:05:52.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""of some of its most important properties,""" start="00:05:54.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and an Org Mode file excerpt""" start="00:05:56.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from one of my classes on the left.""" start="00:05:58.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""What you may not know is how to onboard students who have,""" start="00:06:00.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""at the start, no interest whatsoever""" start="00:06:05.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in leaving their comfort zone,""" start="00:06:07.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which is defined by a lifetime of Windows,""" start="00:06:08.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""pre-configured graphical interfaces, and software bloat.""" start="00:06:12.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In fact, when I started this, I wasn't very hopeful,""" start="00:06:16.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but the results have made me even more optimistic""" start="00:06:19.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""than I already am by nature.""" start="00:06:22.400" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""So to rein in your expectations,""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""you cannot do entirely without""" start="00:06:28.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""configuring the student's experience.""" start="00:06:31.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""An important part of this""" start="00:06:33.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""is the initial Emacs configuration shown here.""" start="00:06:35.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The minimal configuration file,""" start="00:06:38.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which you can see on the right-hand side,""" start="00:06:40.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""allows the students to run code in C and C++, R, SQL,""" start="00:06:42.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""SQLite, Python, and Bash.""" start="00:06:46.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It will allow them to update Emacs packages""" start="00:06:48.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from the stable Melpa repository,""" start="00:06:52.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and it will allow them to create code blocks easily""" start="00:06:55.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""using skeleton commands for code blocks,""" start="00:06:58.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and to auto-load the Emacs Speaks Statistics package,""" start="00:07:01.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which you particularly need when you run R in Emacs,""" start="00:07:06.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and lastly, to disable toolbar and graphical menu bars.""" start="00:07:09.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""To do that encourages the exclusive use of the keyboard""" start="00:07:14.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to control Emacs, and to stop the students""" start="00:07:19.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from flicking all the time to the mouse;""" start="00:07:23.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""seems to be an essential part of getting used to Emacs.""" start="00:07:25.840" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Now Org Mode was included in Emacs in 2006 as a major mode,""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and as you know, it's a structured plain text format""" start="00:07:38.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""with notebook live code execution.""" start="00:07:41.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It's an ideal platform for literate programming,""" start="00:07:45.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which is a term for programming that intermingles code,""" start="00:07:47.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""documentation, and output within a single document,""" start="00:07:52.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and that can, as you can see here from an org file,""" start="00:07:55.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""either be tangled into source code""" start="00:07:59.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""or woven into a documentation file, which could be PDF,""" start="00:08:02.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""could be Markdown, could be OpenOffice,""" start="00:08:07.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""could be a notebook format.""" start="00:08:11.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""This methodology was conceived by Donald Knuth in 1984,""" start="00:08:13.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and it is therefore even older than Emacs itself.""" start="00:08:18.480" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""The main purpose of literate programming is not only""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to make code or documentation or output more manageable,""" start="00:08:27.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but to allow humans to create a data story with ease""" start="00:08:31.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from a single source.""" start="00:08:34.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So what you see on the slide on the left-hand side""" start="00:08:37.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""is the story and code inside a Org Mode file.""" start="00:08:40.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The file starts with some documentation,""" start="00:08:45.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""then with the white background is the code,""" start="00:08:49.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and at the bottom you see an output file,""" start="00:08:52.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which is not shown here on the slide itself.""" start="00:08:56.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In the middle, you have the source code,""" start="00:09:00.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which is the result of tangling""" start="00:09:02.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""or of opening a buffer inside org-mode.""" start="00:09:05.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And on the very right-hand side, you have a PDF--""" start="00:09:10.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""actually this HTML rendering of the very same file""" start="00:09:16.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that you see on the very left.""" start="00:09:20.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So the humans look at some of this code,""" start="00:09:22.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and the machines will look at other parts of the code.""" start="00:09:26.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I actually did all my programming in a literate way""" start="00:09:29.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""even in the early 1990s, not using org-mode,""" start="00:09:33.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which didn't exist yet,""" start="00:09:35.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but using Norman Ramsey's Noweb preprocessor.""" start="00:09:36.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And I still use it inside org-mode today.""" start="00:09:40.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""This preprocessor, Noweb, allows you to tangle code""" start="00:09:43.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from within an org-mode file that's a self-standing file,""" start="00:09:47.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""much like org-mode's edit functions,""" start="00:09:50.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which export code blocks into buffers""" start="00:09:52.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in whatever language the code block is written.""" start="00:09:55.640" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""In data science, these interactive notebooks""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in one of the interpreted languages like Julia,""" start="00:10:02.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Python, or R dominate.""" start="00:10:06.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The basis technology,""" start="00:10:07.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""is that of Jupyter notebooks, which take their name""" start="00:10:10.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from Julia, Python, and R.""" start="00:10:12.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And these notebooks use a spruced-up shell (for example,""" start="00:10:14.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""IPython for Python) with an option to add SQL cells.""" start="00:10:19.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Org Mode inside Emacs has a large number of advantages--""" start="00:10:23.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""some of them are listed here--over these notebooks.""" start="00:10:28.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Two of these stand out particularly.""" start="00:10:31.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Different languages can be mixed, as shown in the image,""" start="00:10:33.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""while in Jupyter notebooks, a notebook is limited to""" start="00:10:39.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""running a kernel in one language only.""" start="00:10:43.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So the content of the notebook--""" start="00:10:45.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""its document code or output part--""" start="00:10:48.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""can be exported in a variety of formats,""" start="00:10:50.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which makes it much easier to share with others""" start="00:10:52.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and to use one's work in different reporting formats;""" start="00:10:55.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for example, to read it out into a LaTeX publication.""" start="00:10:58.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Actually, to come back to this,""" start="00:11:02.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the file does not show different languages.""" start="00:11:08.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""That is something you can see in a paper of mine,""" start="00:11:11.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in one of the figures.""" start="00:11:14.160" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Now, coming to the case study itself,""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""here are some of the overall results of the case study.""" start="00:11:22.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Now, the courses ranged from introductory to advanced,""" start="00:11:25.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""as you can see here in the table on the left-hand side.""" start="00:11:29.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The topics covered different programming applications.""" start="00:11:32.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The courses were taught""" start="00:11:37.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""over a period of three consecutive terms.""" start="00:11:38.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""There was between 6 and 28 participants per course.""" start="00:11:41.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I used a few other tools besides Emacs:""" start="00:11:45.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""GitHub as the main repository for all the material,""" start="00:11:49.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Datacamp for structured online lessons and exercises,""" start="00:11:51.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Canvas as a learning management system,""" start="00:11:55.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and Zoom to record the sessions for later use.""" start="00:11:57.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Now, the material for all these courses""" start="00:12:00.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""is openly available on GitHub,""" start="00:12:03.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and the address is on the slide at the bottom.""" start="00:12:05.400" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""I'm now going to briefly comment on""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the most important aspects of using Emacs and Org Mode""" start="00:12:15.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in and outside of class.""" start="00:12:18.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Essentially, these two--Emacs and Org Mode--""" start="00:12:20.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""were used all the time for almost everything""" start="00:12:24.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that the students were doing in and outside of class.""" start="00:12:26.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The only exception were multiple choice tests""" start="00:12:29.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and online assignments""" start="00:12:32.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""on the Datacamp learning platform""" start="00:12:34.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in the data science courses.""" start="00:12:35.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""But everything else--code-along lectures, home assignments,""" start="00:12:37.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""student projects, practice in class--""" start="00:12:40.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""was done with these two tools.""" start="00:12:42.440" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""To facilitate the onboarding,""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""so to get students used to Emacs in the first place,""" start="00:12:48.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I developed a simplified Emacs tutorial,""" start="00:12:51.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which was focused on the basics of literate programming.""" start="00:12:53.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It included navigation in major modes,""" start="00:12:56.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""managing files and buffers, customizing the interface,""" start="00:13:00.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and keyboard shortcuts.""" start="00:13:02.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It was considerably shorter;""" start="00:13:04.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""about a quarter of the size of the standard Emacs tutorial,""" start="00:13:06.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which contains a lot more stuff.""" start="00:13:12.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""As a result of this onboarding,""" start="00:13:14.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""by the end of the second week,""" start="00:13:16.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""most students were able""" start="00:13:18.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to use Emacs and Org Mode competently""" start="00:13:19.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for their assignments in and outside of class,""" start="00:13:22.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""completely independent of their previous exposure""" start="00:13:25.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to any of these tools.""" start="00:13:29.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Most of the students, in fact, had never heard of Emacs.""" start="00:13:31.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""All the classes were taught physically in a computer lab.""" start="00:13:35.400" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Emacs with Org Mode""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and the necessary languages for the class""" start="00:13:42.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""were pre-installed on the computers.""" start="00:13:45.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The computers ran Windows, unfortunately,""" start="00:13:47.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""like most of the students' personal computers.""" start="00:13:50.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""A typical class involved a lecture delivered by me""" start="00:13:52.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in Emacs as a code-along.""" start="00:13:57.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The students would get an Org Mode file""" start="00:13:59.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""with all the code removed.""" start="00:14:01.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""You can see an example here""" start="00:14:03.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""on the slide on the right-hand side.""" start="00:14:04.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""This example is actually only one line of code in blue,""" start="00:14:06.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""visible at the bottom for an award file.""" start="00:14:12.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Then the students submitted home assignments""" start="00:14:15.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""also as Org Mode files, complete with documentation,""" start="00:14:17.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""code and sample output.""" start="00:14:21.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Working this way makes the classes highly interactive.""" start="00:14:23.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So the students are busy coding""" start="00:14:27.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and they learn to control their environment better""" start="00:14:28.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""all the time.""" start="00:14:31.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In my classes, the students have to complete""" start="00:14:34.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""an independent, agile research project""" start="00:14:38.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""using an adaptation of Scrum as a methodology.""" start="00:14:41.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""You can find examples of these rather high-octane projects""" start="00:14:44.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in my paper.""" start="00:14:48.080" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""Now, using literate programming for the projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""provided some unique benefits.""" start="00:14:52.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""By having to continuously interweave documentation,""" start="00:14:54.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""references and output alongside functional code,""" start="00:14:57.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the students learn to communicate their work""" start="00:15:01.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""throughout the term""" start="00:15:04.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in various stages of completion,""" start="00:15:05.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from the research question at the start,""" start="00:15:07.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""over the prototype to the finished product.""" start="00:15:09.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And here on the right-hand side,""" start="00:15:12.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""you can see one of those assignments""" start="00:15:15.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that the students received,""" start="00:15:17.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""including some of the metadata for their Org Mode files""" start="00:15:18.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in the beginning of the course.""" start="00:15:24.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Here are two graphs that I created early on""" start="00:15:26.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""when I started doing this.""" start="00:15:32.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""They show how the test results of the students""" start="00:15:34.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""in two different courses, actually three courses,""" start="00:15:36.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""changed from before to after""" start="00:15:39.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""introducing literate programming with Emacs and Org Mode.""" start="00:15:41.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So you see the before and after""" start="00:15:45.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""introducing literate programming in the red curve before""" start="00:15:49.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and the blue curve afterwards.""" start="00:15:53.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And the improvement, especially on the right-hand side,""" start="00:15:54.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""is quite significant.""" start="00:15:58.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""It was this performance improvement,""" start="00:15:59.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""apart from the students who were voicing their support,""" start="00:16:02.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that made me extend the Emacs experiment""" start="00:16:05.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""after the first term""" start="00:16:08.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and continue for the following two terms.""" start="00:16:09.160" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""The courses... Coming to the result, the overall result...""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The courses were formally and informally""" start="00:16:18.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""also evaluated by the students,""" start="00:16:21.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but you need to look at my paper""" start="00:16:23.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for some explicit student comments,""" start="00:16:24.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which you will find there.""" start="00:16:27.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Here, I'm giving you only the summary.""" start="00:16:28.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So first of all, Emacs proved to be hard to learn for some,""" start="00:16:29.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""but all students succeeded in all courses,""" start="00:16:34.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""independent of the level of""" start="00:16:37.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""their previous knowledge and skill.""" start="00:16:39.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The documentation practices remained pretty uneven.""" start="00:16:40.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So some students wrote a lot, others wrote little.""" start="00:16:45.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""But they were overall much higher than in classes""" start="00:16:49.640" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""without the use of Emacs and Org Mode.""" start="00:16:53.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The interactivity enabled through Emacs""" start="00:16:57.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""was highly praised by the students""" start="00:16:59.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and always identified on the evaluations.""" start="00:17:01.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And lastly and most importantly, given the problems""" start="00:17:05.040" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that I identified earlier, the computing file""" start="00:17:08.560" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""and data handling competence""" start="00:17:13.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""of the students who worked with Emacs throughout""" start="00:17:15.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""opening Emacs shells, running programs through Emacs,""" start="00:17:18.280" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""these skills increased massively.""" start="00:17:23.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In the published paper, I have expressed""" start="00:17:27.000" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""a little more doubt than you see on this slide.""" start="00:17:30.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""But now, actually, I'm feeling quite hopeful again,""" start="00:17:32.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""especially because recently for one term,""" start="00:17:38.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I have returned to Jupyter notebooks.""" start="00:17:41.880" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In the current term, I abandoned Emacs again""" start="00:17:47.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for online Jupyter notebook installations.""" start="00:17:50.600" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The reason is that these Jupyter notebooks""" start="00:17:53.120" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that I use from DataCamp have generative AI support""" start="00:17:55.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""from ChatGPT integrated into the notebook.""" start="00:18:00.160" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And I wanted to try that.""" start="00:18:03.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""But after one term without Emacs,""" start="00:18:04.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I regret that decision now.""" start="00:18:08.520" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The AI advantage does not make up""" start="00:18:10.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""for the loss of the immersion""" start="00:18:13.200" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""that Emacs and Org Mode deliver.""" start="00:18:15.120" video="mainVideo-teaching" id="subtitle"]] +[[!template new="1" text="""And here's the summary.""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""When learning computer and data science,""" start="00:18:21.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""immersion is everything.""" start="00:18:23.760" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""The best students will aim at immersion anyway.""" start="00:18:25.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""But for the majority of students,""" start="00:18:29.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""immersion must happen in class.""" start="00:18:31.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Emacs and Org Mode performed throughout very well""" start="00:18:33.680" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""as the central literary programming platform.""" start="00:18:39.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And the pre-configuring and the onboarding,""" start="00:18:42.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""which I showed to you, were very important""" start="00:18:45.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""to train the students quickly.""" start="00:18:48.960" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""In the paper, I also speculated on the impact""" start="00:18:50.360" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""of low-code, no-code, and AI coding assistance.""" start="00:18:54.480" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And my general view on this is that""" start="00:18:57.920" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""the arrival of these tools""" start="00:19:00.240" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""make literary programming as an immersive technique""" start="00:19:01.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""focused on teaching a broad range of skills""" start="00:19:04.320" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""even more important.""" start="00:19:08.400" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""So even with AI--or especially with AI--""" start="00:19:09.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""this kind of approach, I think, could be critical.""" start="00:19:13.080" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And that's it.""" start="00:19:16.800" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""I'm at the end of my presentation.""" start="00:19:18.440" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Thank you very much for your attention.""" start="00:19:19.840" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""And I'm looking forward to the Q&A.""" start="00:19:21.720" video="mainVideo-teaching" id="subtitle"]] +[[!template text="""Thank you.""" start="00:19:22.840" video="mainVideo-teaching" id="subtitle"]] + + + +Captioner: sachac + Questions or comments? Please e-mail [birkenkrahe@lyon.edu](mailto:birkenkrahe@lyon.edu?subject=Comment%20for%20EmacsConf%202022%20teaching%3A%20Teaching%20computer%20and%20data%20science%20with%20literate%20programming%20tools) diff --git a/2023/info/teaching-before.md b/2023/info/teaching-before.md index 3270cacc..2d5de358 100644 --- a/2023/info/teaching-before.md +++ b/2023/info/teaching-before.md @@ -8,12 +8,31 @@ The following image shows where the talk is in the schedule for Sat 2023-12-02. Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2023/current/bbb-teaching.html> Etherpad: <https://pad.emacsconf.org/2023-teaching> Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen) -Status: Ready to stream +Status: Now playing on the conference livestream <div>Times in different timezones:</div><div class="times" start="2023-12-02T15:05:00Z" end="2023-12-02T15:25:00Z"><div class="conf-time">Saturday, Dec 2 2023, ~10:05 AM - 10:25 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 2 2023, ~9:05 AM - 9:25 AM CST (US/Central)<br />Saturday, Dec 2 2023, ~8:05 AM - 8:25 AM MST (US/Mountain)<br />Saturday, Dec 2 2023, ~7:05 AM - 7:25 AM PST (US/Pacific)<br />Saturday, Dec 2 2023, ~3:05 PM - 3:25 PM UTC <br />Saturday, Dec 2 2023, ~4:05 PM - 4:25 PM CET (Europe/Paris)<br />Saturday, Dec 2 2023, ~5:05 PM - 5:25 PM EET (Europe/Athens)<br />Saturday, Dec 2 2023, ~8:35 PM - 8:55 PM IST (Asia/Kolkata)<br />Saturday, Dec 2 2023, ~11:05 PM - 11:25 PM +08 (Asia/Singapore)<br />Sunday, Dec 3 2023, ~12:05 AM - 12:25 AM JST (Asia/Tokyo)</div></div><div><a href="/2023/watch/gen/">Find out how to watch and participate</a></div> +<div class="vid"><video controls preload="none" id="teaching-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="teaching-mainVideo" data=""" +00:00.000 Introduction +00:54.160 My interest in this topic +02:08.040 What is data science? +03:47.640 Computer science is a craft +04:52.840 The problem +05:36.560 The solution: Emacs + Org-mode +06:24.120 Emacs configuration file +07:30.360 Story + code = source + documentation +08:22.040 What is literate programming? +09:59.880 Emacs as a literate programming tool +11:18.960 Case study: basic setup +12:11.280 Emacs + Org-mode notebooks +12:45.800 Onboarding: simplified Emacs tutorial +13:40.840 Instruction + interaction +14:48.720 Assignments + projects +16:15.280 Overall results positive +18:19.800 Conclusion & outlook +"""]]<div></div>Duration: 19:27 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-teaching">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/current/bbb-teaching.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--final.webm">Download --final.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.txt">Download --main.txt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm">Download --main.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--normalized.opus">Download --normalized.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--original.webm">Download --original.webm (60MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--reencoded.webm">Download --reencoded.webm (41MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.odp">Download .odp (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pdf">Download .pdf (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pptx">Download .pptx (15MB)</a></li><li><a href="https://toobnix.org/w/b4eLjcLo9vcewVTzrv95L8">View on Toobnix</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file |