[{"content":"Dear Felienne!\nYou won\u0026rsquo;t believe it. This time, I actually did the homework you assigned instead of going off course. I am a bit scared to comment on this Turing test paper, though! First, because I don\u0026rsquo;t want to repeat Alan Turing\u0026rsquo;s mistakes and say all kinds of things without sufficiently engaging with other domains. And second, because I make my points with a story about Alice and Bob having great sex. I am not sure the Computer Science community (who probably only knows Alice and Bob from cryptography lessons where they send each other rather innocent encrypted text messages!) is ready for that. But ok, here we go\u0026hellip;\nFake love, great sex and big tech My biggest concern with the “Computing Machinery and Intelligence” paper is its assumption that imitating intelligent behaviour is essentially the same as truly behaving intelligently if the two cannot be told apart. But this is crazy\u0026hellip;\nLet\u0026rsquo;s just for a second try out this line of reasoning with emotions rather than intelligence. Assume Alice is rich and Alice loves Bob. Bob does not love Alice, but he would really like to inherit her money. So he imitates loving Alice. He is a master manipulator and does all the right things! So during their entire life together, Alice never has any suspicion that something might be off. She believes Bob loves her and lives a happy life. Then she dies, and Bob inherits all her money. Does it matter that Bob never loved her and was just pretending?\nOf course it matters!!! And to me, it matters not only for emotions but also for intelligence. Let me spell it out: In this metaphor, Bob is Big Tech and all the AI companies. They are just in it for the money. While we cannot know for certain whether their products can think, there is a very high chance they are faking it for the money.\nOf course, there are many smart people who\u0026rsquo;ll now say: ”I know AI is not really thinking, and I always double-check all the answers for hallucinations. I know big tech is bad and all that. They are not fooling me. I am using it responsibly and I still benefit from it.”. That might just as well be true\u0026hellip; In the Alice and Bob story, this would mean Alice is aware that Bob is faking his feelings, but Alice decides to stay in the relationship nonetheless, for the great sex. That\u0026rsquo;s Alice\u0026rsquo;s choice to make, of course. I am not here to tell anyone how to live their life, or that they should not use AI. But I\u0026rsquo;d say: just keep in mind that while machines may not be able to think, they definitely are able to manipulate. There is no doubt about that!\nI guess most readers will agree that Bob’s pretending to love Alice to exploit her is unethical. (I hope so!) And the same point applies to AI: Machines pretending to be human, to be thinking, or to be feeling something they are not really feeling for some company’s benefit is fundamentally wrong! And while I personally can’t believe the sex with Bob is all that great in the first place, I respect Alice’s choice to stay in the relationship. We just should not call this love. Likewise, I get that people are using genAI, but we really should not call AI’s behaviour thinking.\nOne more detail about the word “thinking” I have one more thing about the word “thinking”. A small prediction by Turing about how this word will be used in the future stuck out to me. So he writes:\nNevertheless I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted.\nI think we are at a turning point here. For some people, speaking of machines that way has become normal, while others still are bothered by this. In fact, my partner came home from work recently, completely worked up and in disbelief about something a colleague had asked on Slack about an online search that did not provide the expected results. Specifically, this colleague had asked: \u0026ldquo;Did you enable thinking?”\u0026hellip;\nWhat has happened? As you and our readers probably have guessed, this was around the time when Google Gemini had introduced a new feature to its AI mode, called “thinking”. People have subsequently started using this term as if it were normal to speak of machines thinking. Hence, Turing was right that people are talking about machines thinking, and they are probably not expecting to be contradicted \u0026mdash; but I am glad some of us are still contradicting it! (Of course, it is not just Gemini; other models also introduced so-called Reasoning, Extended Thinking, or ‘think flags’ that one can set).\nAutonomy as a necessary condition for intelligence I have another, more fundamental problem with the paper and its view of thinking! For me personally, thinking can only be intelligent if it is also autonomous. So I see autonomy as a necessary condition for intelligence. This is, for instance, the idea behind how we evaluate our PhD candidates. We want to know if they are autonomous researchers and if their thesis is the result of their thinking.\nOf course, I certainly don\u0026rsquo;t want to pretend that I know what autonomy means. This is an entire key concept in itself, where we need philosophers. What I mean here, simply put, is that for someone or something to be intelligent, the smart thoughts they express also need to be their own; they need to be authentic, autonomous thoughts. And that is where it goes wrong for me when we look at Turning\u0026rsquo;s paper. It is very much focused on the \u0026lsquo;smart part’ and does not sufficiently consider the necessity of autonomy.\nThis is also where it goes wrong when we look at current big tech LLMs. The output might appear intelligent, but it is not the result of an autonomous thought process. I actually asked an LLM whether it agrees, and it confirmed: ”No, Large Language Model (LLM) output is not inherently authentic” and ”LLM output is not the result of autonomous thought”. No surprise here!\nI believe we are allowed to do this little trick that Turing also does in his paper, where he just replaces one question with another question. So I want to replace the question ”Can machiens think?” with the new question ”Is machine output authentic?”. And in this case, I agree with the LLMs above: No, it is not!\nImitating human looks A detail I found fascinating about the paper is that imitating human looks is not interesting to Turing at all. Read for yourself:\nNo engineer or chemist claims to be able to produce a material which is indistinguishable from the human skin. It is possible that at some time this might be done, but even supposing this invention available we should feel there was little point in trying to make a \u0026ldquo;thinking machine\u0026rdquo; more human by dressing it up in such artificial flesh.\nThis is actually something the computer science field also looked into, even though Turing said there is little point in doing so. In this regard, I just want to point out to our listeners/readers Hiroshi Ishiguro’s robots. He is a Japanese roboticist who has been creating robot clones of himself that look like him, and they were, for example, used to explore questions around transmitting human presence to remote locations.\nAnother thought experiment Like Turing, I also have a thought experiment for you. Let’s, just for a brief moment, go along with Turing and accept that there is indeed this weird party game where you have an interrogator talking to a man and a woman, trying to find out who is who while the man pretends to be a woman. And then, like Turing, you want to replace one of these people with a machine. I just wonder why you would replace the man in this scenario? Why not replace the interrogator instead? I would assume that to do well in this game, the interrogator must be somewhat intelligent. At the very least, they must ask sensible questions, draw sound conclusions, understand the strategies that the man might apply, and so on. So even if this is a stupid game, the interrogator needs to be somewhat smart. Hence, I wonder if it occurred to Alan Turing to replace the interrogator in this scenario with the machine. What would have happened then to the rest of the paper and to our field of computer science?\nActually, if we look at how AI is used nowadays, I believe it often does play the role of the interrogator! Decision-support systems are used to decide “Is this cancer?” or “Is this a good hiring candidate?”, or “Is this piece of information true or fake news?”! Metaphorically speaking, the AI decides who is the woman in Turing’s weird party game!\nSomething we can ask ourselves in this age of AI, thus, is: aren’t we increasingly playing this weird party game where both the interrogator and the other player are replaced by machines? And maybe more importantly, why are we still playing the game, and to whose benefit and amusement are we playing it? I fear we are playing at the amusement of the tech bros; we are basically the jokes at their parties.\nCelebrating Alan Turing And to wrap this up, a final question: “Can we still celebrate Alan Turing?”\u0026hellip; I have been thinking about that and the fact that people forgive LLMs for being wrong and saying stupid stuff all the time. There was this BBC study that found 45% of AI results to have errors. When I asked an LLM how often it is wrong, it admitted to being wrong 10% of the time (and, based on this answer, we should take that number with a grain of salt!). But people just accept such error rates from LLMs. So I think we can certainly also be forgiving with humans and with Alan Turing. He did a lot of super weird things in this paper, and some things I absolutely do not endorse. But he was human, and I think he did infinitely better than any machine could have done. So I think we can still celebrate him, just preferably not for this particular paper.\nCheers,\nHanna\n","permalink":"https://homework.unedited.me/posts/csoc-s01e03-homework/","summary":"\u003cp\u003eDear Felienne!\u003c/p\u003e\n\u003cp\u003eYou won\u0026rsquo;t believe it. This time, I actually did the homework you assigned instead of going off course. I am a bit scared to comment on this Turing test paper, though! First, because I don\u0026rsquo;t want to repeat Alan Turing\u0026rsquo;s mistakes and say all kinds of things without sufficiently engaging with other domains. And second, because I make my points with a story about Alice and Bob having great sex. I am not sure the Computer Science community (who probably only knows Alice and Bob from cryptography lessons where they send each other rather innocent encrypted text messages!) is ready for that. But ok, here we go\u0026hellip;\u003c/p\u003e","title":"Sex, Robots and Weird Party Games"},{"content":"Dear Felienne!\nI had promised you a shorter homework for this week, and I think I did it: it\u0026rsquo;s a tiny little bit shorter (based on my own estimate). But also, it isn\u0026rsquo;t really exactly the homework you suggested. I did something else instead. I guess I went off course\u0026hellip; but in some way, I hope that\u0026rsquo;s the point. So what did I do?\nWhat the Stair Climber, Slack, Ellipticals, and Emails Have in Common As a first step, I reflected on how I see the computer. In our episode, we discussed that Brenda Laurel sees it as a theatre. I see it more as a gym. That\u0026rsquo;s because I find working with the computer super exhausting. But there are a few more parallels I want to draw. For instance, think about all these emails that come in and that need to be answered. This is really like the stair climber in the fitness centre, where the stairs just keep coming and coming\u0026hellip; an endless flow of stairs, similar to the endless flow of emails. There is no destination we will reach, but they keep us feeling busy and productive.\nThen there\u0026rsquo;s Microsoft Teams, where we have all these online group meetings during which everyone is dying on the inside (at least I assume everyone else feels this way, too?). To me, that\u0026rsquo;s just like a spinning class. So again, you spend all this energy and effort, but in the end, you really don’t get anywhere. You\u0026rsquo;re still in the same room, even though on the big screen everyone stares at, it seems like you’re moving forward. And this is, of course, what these online group meetings often do. You spend a lot of energy and get nowhere, but on the shared screen, it still seems as if you’re covering some distance or solving real problems.\nThere are also applications like Slack and Metamost that are meant for communication and collaboration. I love using those tools and the nice dopamine kicks that a thumbs up on these platforms provides. Yet, I feel like hanging out on these platforms is a bit like using an elliptical in the gym while you\u0026rsquo;re on the phone with your best friend or reading a magazine. If you were honest with yourself, you’d realise that you\u0026rsquo;re just pretending to work out. That’s procrastination at its best: it leaves you guilt-free, or even feeling proud. Computers are just so great for that!\nAnd finally, computers always have these processes running in the background. And this is really like the music and the gym that\u0026rsquo;s just always there and running in the background. And sometimes you notice it, but there\u0026rsquo;s not really much you can do about it\u0026hellip; But somehow it is still interwoven with what you do and how you move. I am sure there are plenty of computer processes running in the background that affect me without me being aware of this.\nThe Missing Option: Interfaces for Human-Human Interaction I also thought about the multiple-choice question you asked me during our podcast episode. To remind our readers, you asked me, “What is being represented by a human-computer interface?” And you gave me those four options from Brenda Laurel\u0026rsquo;s book:\nA way for a person to communicate with a computer. A way for a computer to communicate with a person. A surface through which humans and computers can communicate. A way for humans and computers to construct actions together. I really hate multiple-choice questions. I always think of something that is not captured by the provided options. And when I think about my own relation to computers, I really miss a fifth option here, too. That\u0026rsquo;s because I use the computer mostly as an interface to communicate with other humans. Answering emails in Thunderbird, writing collaborative scientific papers on Overleaf, playing a game against another person, putting podcasts online, reading the documents my students send me, or posting on LinkedIn: it’s all a way to connect with others, a way to co-create materials, a way to exchange human attention and ideas. In such cases, I believe the computer fades into the background!\nSo, to answer the question: a human-computer interface is also a surface through which humans communicate with other humans. It\u0026rsquo;s a means for humans and other humans, remote humans, to construct actions together. While it is not one of Laurel\u0026rsquo;s answers, it still somewhat fits her theatre theme, where actors interact with each other on stage. I don\u0026rsquo;t think this contradicts her work at all, but it places more emphasis on the various humans involved.\nSlaying Metaphorical Dragons In our episode, we have touched upon Laurel\u0026rsquo;s idea of a shared performance between a user, or as Brenda Laurel would say, an interactor and a computer. This resonated with me because it is something I can relate to, for instance, when using my to-do app. Whenever I add a to-do to my to-do app, I feel like there’s a problem to solve. And then I get to be the hero who solves that problem with the computer. Typically, I need to open all kinds of computer programs, and with those applications, I have to slay many, many metaphorical dragons. But then, when I\u0026rsquo;m done, I can put this little checkmark next to the task, and there’s a sense of relief, and sometimes I\u0026rsquo;m even a bit proud. It comes with a feeling of closure that I also really get from good stories. So, in that sense, I think my to-do app is great. Completing tasks with a computer has this whole drama and performance built in. Just now, for instance, I used my favourite markdown editor to complete this homework assignment, and I am already looking forward to marking the “podcast homework” task with a little checkmark in my to-do app. It will feel great :)\nCheers,\nHanna\n","permalink":"https://homework.unedited.me/posts/csoc-s01e02-homework/","summary":"\u003cp\u003eDear Felienne!\u003c/p\u003e\n\u003cp\u003eI had promised you a shorter homework for this week, and I think I did it: it\u0026rsquo;s a tiny little bit shorter (based on my own estimate). But also, it isn\u0026rsquo;t really exactly the homework you suggested. I did something else instead. I guess I went off course\u0026hellip; but in some way, I hope that\u0026rsquo;s the point. So what did I do?\u003c/p\u003e\n\u003ch2 id=\"what-the-stair-climber-slack-ellipticals-and-emails-have-in-common\"\u003eWhat the Stair Climber, Slack, Ellipticals, and Emails Have in Common\u003c/h2\u003e\n\u003cp\u003eAs a first step, I reflected on how I see the computer. In our episode, we discussed that Brenda Laurel sees it as a theatre. I see it more as a gym. That\u0026rsquo;s because I find working with the computer super exhausting. But there are a few more parallels I want to draw. For instance, think about all these emails that come in and that need to be answered. This is really like the stair climber in the fitness centre, where the stairs just keep coming and coming\u0026hellip; an endless flow of stairs, similar to the endless flow of emails. There is no destination we will reach, but they keep us feeling busy and productive.\u003c/p\u003e","title":"The Computer as a Gym"},{"content":"Dear Felienne!\nIt has been some time since we recorded the Peter Naur episode, but I finally did the homework. Or at least, what I remembered about the homework. Well, actually, I changed the homework a little to better fit my life and (lack of programming) skills. In any case, here are my notes. Please take my notes with a grain of salt. As you know, I am not entirely sure who I am \u0026mdash; but I am definitely not an experienced programmer, I am also not an educational scientist, and I have not studied computer science even though I ended up in the CS department. And, of course, I have not looked into scientific articles to see how well my thoughts hold up against those of experts. Also, I overdid it a bit. Future homeworks will be shorter, I promise!!!\nHomework reading So as a first part of the homework, I read the ``Programming as Theory Building\u0026quot; paper, which you discussed in our last podcast episode. Not surprisingly, I liked it a lot. I was even occasionally clapping enthusiastically while reading it. For instance, I loved Naur’s understanding of a theory as\n‘knowledge a person must have in order not only to do certain things intelligently but also to explain them, to answer queries about them, to argue about them, and so forth’.\nAlso, I couldn’t agree more with his conclusion that\n‘the notion of the programmer as an easily replaceable component in the program production activity has to be abandoned’.\nI believe it is more relevant than ever, with people constantly arguing that programmers can be replaced by AI.\nBut of course, I could not switch off the critical voices in my brain that start complaining whenever I read anything. So, let me share some of the \u0026rsquo;loudest complaints\u0026rsquo; or criticisms I have.\nThe main issue I struggle with is how this theory that programmers develop according to Naur is presented as something that can only exist in programmers’ brains. It can only be obtained by programming, and it then is part of (the team of) programmers \u0026mdash; it is not something that can be shared with or transferred to other programmers/teams. As Naur puts it, ‘the theory, is not, and cannot be, expressed’, it is something that ‘is inextricably bound to human beings’. And while I agree that much knowledge and understanding will only be able to exist in programmers’ brains, I also believe that with some effort, (parts of) the theories that programmers build can be expressed, communicated, shared, transferred, and documented.\nIn fact, I think Naur himself provides an argument for the possibility of transferring theories when he draws an analogy to Newton\u0026rsquo;s theory of mechanics. To understand this theory, in Naur\u0026rsquo;s opinion, it does not suffice to ‘understand the central laws, such as that force equals mass times acceleration’. Rather, one has to also comprehend ‘how it applies to the motions of pendula and the planets, and must be able to recognize similar phenomena in the world, so as to be able to employ the mathematically expressed rules of the theory properly’. But in fact, understanding the theory this way is possible for people who only study its documentation. Newton’s theory of mechanics was not constrained to Newton\u0026rsquo;s brain; he could share it with others. And I do not see (yet?) why the theories programmers come up with when programming should be so fundamentally different that they (or at least parts of them) can\u0026rsquo;t be shared, expressed, documented, and so on.\nAlso, I find the idea that the theory exists only in programmers’ brains a bit problematic, as it might discourage and exclude non-programmers from participating in programming-related activities. And I think we need more non-programmers in programming and software engineering! (But I am pretty sure Naur did not mean it in a gate-keeping way\u0026hellip;)\nOf course, all of this does not mean that I disagree with his main message altogether. For me, one key point Naur is rather implicitly making is that direct communication beats documentation, and that direct communication (which allows back-and-forth) is much more valuable than one-way information transfer (i.e., providing documentation). I would certainly agree with this.\nAnd I also believe a programmer will never be able to document everything. So yes, there will always be considerations, knowledge, and reasons for actions that will not find their way into documentation or code, but that the programmer can elaborate on when being asked. And I agree that this knowledge has immense value and can only be accessed through the programmers themselves. If I look at programming education, the value of this knowledge and of direct communication could probably be emphasized even more.\nAnd when I think about education, I am worried that Naur’s view could discourage students from producing documentation, READMEs, and tutorials. To me, his paper almost sounded as if it were not worthwhile to document anything, as it would not suffice to convey the programmers’ theory anyway. I am sure this is not what he wanted to convey, but claims like ‘reestablishing the theory of a program merely from the documentation, is strictly impossible’, though true, might discourage people from documenting anything?\nHis text also made me think of CS education in other respects. I think that when asking students to solve some of the typical beginner problems (sorting stuff, finding paths, checking for palindromes\u0026hellip;you get the idea), they are, first and foremost, mostly programming to learn programming\u0026quot; rather than programming to solve real-world problems\u0026quot;. So something different might be going on with regard to theory building at that stage. The theories and mental models the students are building are probably theories of how programming works, how the programming language works, and how the IDE works. And maybe, in addition, they gain knowledge about AI’s coding capabilities, the Teaching Assistant’s leniency, and their classmates. But these theories are different from the theories you build when you already have some advanced understanding of programming (something I never obtained), and are solving \u0026lsquo;real problems\u0026rsquo; rather than learning-oriented problems.\nOnce you are solving real problems, you are (hopefully) building more of a theory about the problem at hand. For instance, when tasked with programming the logic for an elevator, you might develop a theory of what it means for an elevator to operate well, identifying factors at play, such as speed, energy efficiency, fairness, and safety. Or, when programming a Spotify alternative, you will develop a theory of what it means to shuffle songs in a pleasant manner (i.e., the player should probably not play the same song several times in a row, which might happen if you just pick songs from a list randomly). I definitely believe that to teach this type of theory building, we should ‘have the student work on concrete problems under guidance, in an active and constructive environment’ (I am citing Naur here, of course).\nSomething else I take away from this article, in terms of education, is that we should encourage certain programming methods. Yes, Naur is critical of pushing certain methods and argues that the choice of which methods to use is for the programmer to decide. But still, I guess the Theory Building view suggests we should probably foster the use of methods that more actively support theory building and sharing. For instance, I would expect pair programming to result in \u0026lsquo;shared theories’. Probably, the software engineering community has extensively studied which methods support theory building, but I didn’t have time to look into it.\nFinally, I also thought about his article from a current AI perspective. In our podcast recording, we have already discussed this idea of programming as an intellectual rather than merely intelligent activity and how this distinction might be useful in times when AI produces a lot of code. So I won’t go into this. But I have also highlighted another thing that I found particularly relevant to the current age of AI. Namely, Naur points out that when solving real-world problems, the programmer knows how their solution relates to the aspects of the world that it aims to address. Here, as he puts it, ‘the decision that a part of the world is relevant can only be made by someone who understands the whole world’. Such a true understanding of the world arguably does not exist for coding AIs. And while Naur talks about ‘the world’ in a way that suggests he means the physical world, I think a similar point applies to the digital aspects of the world. Even if one programs a solution for a social media platform, or another primarily digital service that an AI could theoretically know inside-and-out, decisions about what factors are relevant and not relevant to the challenge at hand can only be made by someone who understands the environment and real-world context in which such a product will be used. I believe that to truly program such digital solutions in Naur’s sense, one needs to exist in, understand, and reason about the real world and real humans who use them. Hence, AI can’t do it; AI can’t program in Naur’s sense.\nHomework programming Ok \u0026mdash; so much about the paper. As a second part of the homework, I did some programming with Naur’s paper in mind. While programming, I was trying to observe my brain and aiming to catch it in the act of constructing theories and knowledge. However, since I rarely program (and have never followed a CS program myself), I decided to make my life easier by following a simple programming tutorial. I expected that following the tutorial would allow me to identify at least some instances of theory building in myself, and maybe even also some theory building by the author of the tutorial as an added bonus.\nAs a concrete project, I decided to build a pomodoro timer to help me focus on reading papers (like Naur’s!) without getting distracted. Of course, plenty of Pomodoro timers exist. So the goal was to follow a tutorial as a basis, and then adapt the tool to better cater to my personal needs.\nThe first thing I noticed, even before starting any particular tutorial, was how many Pomodoro timers are openly shared on GitHub and similar code collaboration platforms. I think the activities on such platforms, where programmers fork, modify, adapt, and extend projects to some degree, might conflict with what Naur is describing about new programmers taking over existing programs. As mentioned above, he suggests that it is usually better to discard existing code and for a new programmer (team) to appraoch the problem anew. He also writes:\n‘[t]he point is that building a theory to fit and support an existing program text is a difficult, frustrating, and time consuming activity. The new programmer is likely to feel torn between loyalty to the existing program text, with whatever obscurities and weaknesses it may contain, and the new theory that he or she has to build up, and which, for better or worse, most likely will differ from the original theory behind the program text’.\nWhile this might be true, it might not be as frustrating or problematic as assumed. At least, many programmers seem to find taking over existing codebases beneficial enough to do it. They prefer it over having to start over (whether it is really benefiting them is another question). If reusing code is truly so frustrating and problematic, why is it done so much? (And on a more general note, how does theory building work in distributed, large collaborative coding communities?)\nFollowing one of the Pomodoro tutorials was partially successful. At first, I was quite excited because I felt that several theories were at play, which I could actually distill from reading the code and the accompanying tutorial. For instance, there were some choices about how to communicate the passage of time that arguably suggested some understanding of how humans perceive time. Also, the timer had three states (i.e., work,\u0026quot; short break,\u0026quot; or ``long break”). This, in my opinion, revealed underlying ideas about how humans work that are inherent to the ‘pomodoro technique’ and probably have their roots in existing psychological or behavioral theories of human focus, attention, and motivation. Hence, I came to believe that a program might actually start with existing theories (e.g., humans need breaks to focus and stay motivated). In such cases, programming can also be about translating existing theories into code, rather than about theory building in a narrow sense. So, yes, programming can be theory building. But programming can also be more than theory building. Let\u0026rsquo;s not restrict it to theory building only.\nAfter following the tutorial a bit further, I noticed that I could no longer understand some of the author’s decisions \u0026mdash; maybe due to the lack of a shared theory! And after some time, I felt so much like building a house in the trees, without knowing about the tree underneath it, that I got uncomfortable. Maybe that missing tree is the missing theory.\nEventually, I threw out the tutorial and started from scratch, and wrote my own little program. Fascinatingly, this is more or less what Naur\u0026rsquo;s article would predict. After all, he writes about the revival of programs:\n‘the Theory Building View suggests, the existing program text should be discarded and the new-formed programmer team should be given the opportunity to solve the given problem afresh.’\nSo what theories or knowledge did I notice floating around in my brain when solving this Pomodoro-timer problem? Well, mostly insights about myself \u0026mdash; probably because I was writing the program for myself. For instance, I realized that personally, I prefer timers that count up over those that count down. (To me, time counting up feels like I am putting in time and reaching a goal, while time counting down feels like I am running out of time and fighting against the clock.) However, to be honest, most insights did not come directly from programming, but from trying out the program and iterating on it. To me, this (trying out the program with users and updating beliefs and theories accordingly) is an integral part of programming that did not get enough attention in Naur’s paper.\nWhile trying my timer, I also realized that my first urge when trying to focus on something difficult, like a paper, book, or a complex student thesis, is to distract myself, and that this distraction typically involves reaching for my laptop and opening my email program or browser. To prevent this, I decided every movement of the mouse and or any keyboard press should immediately reset the timer to zero, to discourage me from doing this. Maybe by implementing this timer-reset function, I have incorporated the (existing) theory that distractions are bad for focus.\nLooking back, I wrote some rather bad code \u0026mdash; but I think the resulting timer still solves my particular focus challenge very well. When I decide to read a book or a paper, I turn it on and am discouraged from using my computer in any way for at least 25 minutes. This keeps me focused on the words in front of me, at least most of the time. Of course, I can still get distracted by internal thoughts. For instance, while focusing on something else, one tiny thing that still bothered me about Naur’s article popped into my head.\nTo me, what Naur describes in his paper is not just true for programming but for any problem-solving, analytical, or learning activity. I believe that whenever we attempt to solve a problem or learn something new, we engage in knowledge building and theory building. For instance, we also engage in theory building when doing physics or when observing and analysing how people behave at a bus stop or when coming up with a design for a bike shed next to our house. In fact, in the paper, Naur himself compares learning to program to learning to write or play an instrument. I do not doubt such similarlities exit. But if we see programming as theory-building, it becomes one of the many activities that can be seen as theory-building activities. The question that he does not address, and that would be interesting from an educational perspective then, is if there is something unique about programming in that regard \u0026mdash; if and how this theory building differs from other types of theory building. How is learning to program different from other types of learning, and how is the programming activity different from, e.g., engineering or architecture? And if there is no difference, can’t we maybe teach problem-solving and theory-building at a more general level of abstraction so the skill can be applied more easily to many other domains (programming, engineering, music)? Then again, probably theory building is a skill that can’t be taught in the abstract.\nOk, this note got way too long. Reading it might even take 25 minutes. So, in case you want to use my weird pomodoro focus tool while you read this, I have put it online here: https://creativecode.cc (I realize it is a bit late to tell you this at the end of the note, but well, there will probably be more notes in the future). I am looking forward to the next recording and to our next read!\nCheers,\nHanna\n","permalink":"https://homework.unedited.me/posts/csoc-s01e01-homework/","summary":"\u003cp\u003eDear Felienne!\u003c/p\u003e\n\u003cp\u003eIt has been some time since we recorded the Peter Naur episode, but I finally did the homework. Or at least, what I remembered about the homework. Well, actually, I changed the homework a little to better fit my life and (lack of programming) skills. In any case, here are my notes. Please take my notes with a grain of salt. As you know, I am not entirely sure who I am \u0026mdash; but I am definitely not an experienced programmer, I am also not an educational scientist, and I have not studied computer science even though I ended up in the CS department. And, of course, I have not looked into scientific articles to see how well my thoughts hold up against those of experts. Also, I overdid it a bit. \u003cstrong\u003eFuture homeworks will be shorter, I promise!!!\u003c/strong\u003e\u003c/p\u003e","title":"Translating Theories and Getting Distracted"}]