Answers.Body: <p>Software development is changing rapidly now, in the &quot;age of AI&quot;.</p>
  <p>I wouldn't see &quot;prevent students from using AI&quot; as an ultimate goal. Using an AI as a coding aid is rapidly entering the professional development world, so we should prepare students to make the best use of the new tools.</p>
  <p>IMHO, the challenge is &quot;making them understand the underlying concepts, although an AI can give them easy solutions for coding problems&quot;. Traditional coding exercises will no longer help in that regard, as they can too easily be handed over to an AI.</p>
  <p>I'd advocate to change the focus from fresh-coding to other exercises, e.g.</p>
  <ul>
  <li>Debugging a piece of code that contains an error. Besides the corrected code, ask for an explanation of the original cause.</li>
  <li>Adding a new feature to an existing piece of code. Give the old piece of code together with the old and new specification.</li>
  <li>Reviewing a piece of code. Ask the students to evaluate (and suggest improvements) regarding naming, readability, performance etc.</li>
  </ul>
  <p>These are very relevant tasks that happen very often in real life, where it will be much harder for an AI to reach an A rating.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-09T17:26:18.987Z
Answers.Text: And if it does, we can have shorter workweeks. It seems like as lower level tasks and knowledge are "hollowed out", we'll somehow have to get to the higher level knowledge directly. I'm not sure how we can do that, but maybe. Otherwise we'll have good code and terrible systems.
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T19:42:25.373Z
Answers.Text: @ScottRowe, the computer age has, so far, only enabled a sprawling inefficiency in business administration (including the balkanisation of the activities of large corporations) and duplication of developer effort. We already could have shorter working weeks - in fact, work weeks were already shorter under feudalism.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T20:51:03.023Z
Answers.Text: @Steve if programmers ran things, they would be a lot better, eh? They might well get their chance. "*Until you stretch out your wings, you never know how far you can walk.*"
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T21:53:33.317Z
Answers.Text: @ScottRowe, many things were better when computer programmers *weren't* involved, or more importantly when capitalist managers did not have at their disposal cheap computer machinery, cheap energy for such machinery, and cheap, amateur computer programmers to half control them. The point is that the length of the working week has never been determined by economic necessity, but by the maximum amount of work the ruling class can coerce to be done.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T22:50:54.210Z
Answers.Text: @Steve "*If I'd asked people what they* wanted, *they would have said 'nicer capitalists'.*"
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T09:42:48.500Z
Answers.Text: @ScottRowe, I get the Henry Ford reference, that consumers aren't the experts on how to design products which solve their problems. But how does that apply here?
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-09T10:18:14.727Z
Answers.LastActivityDate: 2024-08-09T10:18:14.727Z
Answers.UserDisplayName: Ralf Kleberhoff
Answers.Body: <p>I have a sense that we may be (<em>may be</em>) at a cusp. We certainly aren't past it yet, but the question arises as to whether future CS students and practitioners will need to program at all.</p>
  <p>Currently, if I read it correctly, they still do, and AI is too error prone to trust. Trusting is dangerous at the moment, as great harm can be done by unthinking, un-moral, things suggested by AI. That may change, but it will take a lot of work to get there and, to me, the incentives seem wrong. There is a lot of hype and monetization, but whether there is a basis for trust is questionable at the moment. Color me skeptical.</p>
  <p>Checking of AI output by humans is needed and skills (mad skilz) needed to do that.</p>
  <p>So much for the preamble.</p>
  <p>I think that students at the moment still need to learn to program and many later courses in a college curriculum depend on having that ability. That may change, but it hasn't yet.</p>
  <p>I think that impressing on students that learning is the objective and not &quot;programs&quot; is important, and some (probably the best students) might get that message. Honor codes can help in some places but it takes a strong tradition (Dartmouth) to get there.</p>
  <p>But one thing that can be done is the <a href="https://en.wikipedia.org/wiki/Flipped_classroom" rel="nofollow noreferrer">&quot;flipped classroom&quot;</a> in which students spend face time with the instructor doing the programming and material normally given as lectures is homework, opposite to the historical method.</p>
  <p>A flipped classroom lets the instructor wander about, looking over the shoulders of students as they program, making suggestions about the coding and the process. Unfortunately this doesn't scale well and it is helpful (necessary?) to have some assistance, such as a TA to wander around.</p>
  <p>One problem with a sole instructor in a flipped classroom is that when questions are asked it takes time to answer them, ending the &quot;wandering&quot; for a bit. If several students have questions (probably the general case) it can get unwieldy without assistance.</p>
  <p>But, to overcome the above issue, one can combine the flipped classroom with <a href="https://en.wikipedia.org/wiki/Pair_programming" rel="nofollow noreferrer">pair programming</a> as a pair of students can often (usually?) answer one another's questions without the instructor. I usually combine this with <a href="https://en.wikipedia.org/wiki/Test-driven_development" rel="nofollow noreferrer">test first development</a> for other reasons, implying programming in smaller &quot;chunks&quot; than the entire project. This also leads to fewer questions, enhancing the power of &quot;wandering around&quot; in the flipped classroom.</p>
  <p>It is a lot of work initially to flip a classroom. The reading/watching materials need to be created and deployed. But over time, it can pay off.</p>
  <p>The future, of course, is unknown.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-09-08T19:12:46.553Z
Answers.Text: I can say from practical experience, flipped learning in large groups does not work.  We found the students were not watching the pre-recorded material to prepare for the class and as a result didn't ask question or involve themselves in their learning.  I think the walking around checking what *they* are doing is essential.  The students do like watching me program though (which I have done since portable data projectors became available) as some skills can't really be taught by lectures.  We are de-flipping, but I'll be generating video material for them after lectures and see how that goes.
Answers.UserDisplayName: Dikran Marsupial
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-09-08T19:19:48.997Z
Answers.Text: @DikranMarsupial, yes, it doesn't scale well unless you have a bunch of skilled TAs. And you may need a mechanism to assure the outside material is studied. I once had a math class with daily 5 minute quizzes. We hated that guy, but we learned. "Take out a piece of paper". Groans...
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-09-08T19:25:39.987Z
Answers.Text: On the bright side *I* enjoyed the flipped lectures - I felt I was giving the students much better value for their fees, but sadly too few of them were taking advantage of it.  Worth a try.
Answers.UserDisplayName: Dikran Marsupial
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-11-06T08:26:42.603Z
Answers.Text: When flipping I tell students to watch and take notes on the video. The following class period I give them 'prep points'--a fairly simple quiz during which they are allowed to use their notes. It seems to work fairly well. I keep the prep points quite closely connected to the video so that they see the advantage of keeping up with their video watching.
Answers.UserDisplayName: paw88789
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-09T12:02:06.420Z
Answers.LastActivityDate: 2024-08-09T12:02:06.420Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>The first part of my answer is a bit of a frame challenge, but it is vitally important: think carefully to make sure that denying them AI is appropriate to the circumstances.  My current CS courses have different policies, ranging from, &quot;do not use it to create any code under any circumstances&quot; to &quot;you can feel free to use any AI source you wish for the code you produce in this class&quot; and everything in between.</p>
  <p>The differences stem from the learning goals of the courses. It tends to be that more advanced courses, where programming is no longer the focus of the curriculum, tend to have more relaxed GPT policies.</p>
  <p>Now on to the nitty-gritty:</p>
  <p>Within my department, we begin each course with the GPT policy, and a discussion about why, given the learning goals of the course, the policy is the way it is. We then follow with very detailed instructions about how, exactly, to comply with the policy, and <em>how we expect this policy to ultimately benefit the students</em>.</p>
  <p>In my own courses, I also begin each assignment with a short description of the lab's learning goals, how GPTs can (or cannot) be used very specifically within the assignment, what sort of citations I expect and where, and, again, why I believe that this policy will help the students in the long run.  I believe that these discussions give context that helps students make better decisions about their own behavior, and frame the lab experiences in a way that helps the students to also learn what the lab is trying to teach them.</p>
  <p>The second part, helping them to avoid it, is fairly straightforward: first, we explain that, due to the ease of cheating with AI (not to mention other, more traditional sources), we have been forced to make labs worth comparatively less within grades. Second, we explain that the exams and labs are designed, to some degree, together; the labs are intended to help prepare students for the exams, and cheating on labs may well impact preparedness for the tests, during which students are watched.</p>
  <p>Importantly, we are telling the truth about this. The exams really do include components from the labs. If we didn't, the students would shortly figure out that the labs really don't impact their grades much, and they would treat them as such.  What we put on the test can be something as complex as questions about structures or techniques that they practiced on the lab, or as simple as creating a short method that they would have literally coded on it (such as a linked list insertion at the end of a list).</p>
  <p>In my experience, working to get the students on <strong>your side</strong> by showing them how your AI policy is ultimately <strong>on theirs</strong> goes a long way, and setting up your course incentives properly can do much of the rest.</p>
  <p>Does this prevent 100% of such cheating?  No, of course not, but judging from how hard I see students working on the labs I give, I can tell you that it goes a long way.  Students will focus their work where they feel like the work is rewarded, and this is as true in the age of AI as it has ever been.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T00:35:51.033Z
Answers.LastActivityDate: 2024-08-10T00:41:48.527Z
Answers.LastEditDate: 2024-08-10T00:41:48.527Z
Answers.UserDisplayName: Ben I.
Answers.Body: <p>&quot;Bad artists copy, great artists steal.&quot; It is already possible to peruse code and examples and answers produced by others, but now we have a free 'assistant' which will seemingly produce something made to order for a simple request. We have always had to understand what we are doing, when producing it ourselves. If we are taking things that are on offer, we still have to understand. So if something can construct something for us, we effectively become the Patron or Manager of a specialized worker or crew.</p>
  <p>So ask your students if they feel ready to manage a Golem that they know basically nothing about? People are already struggling to assess code examples and borrow from libraries of code written by humans. But to take on work that you yourself do not understand and couldn't produce seems... Inadvisable.</p>
  <p>I would definitely teach safe usage of sources and tools by showing how you use them, and comparing the findings of some searches, and the results of some AI output. The more powerful one's tools and sources, the more we need to know, not less. Perhaps this will scare off people unable or unwilling to learn to this level?</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-09-08T19:16:55.217Z
Answers.Text: +1 Would you be happy flying in an airplane where the control software was written by an AI from prompts provided by a programmer that didn't understand the code *either*?
Answers.UserDisplayName: Dikran Marsupial
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-09-08T20:19:08.263Z
Answers.Text: @DikranMarsupial "*'Tis a consummation devoutly to be wished.*" By some people anyway.
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-09T22:12:18.080Z
Answers.LastActivityDate: 2024-08-09T22:12:18.080Z
Answers.UserDisplayName: Scott Rowe
Answers.Body: <blockquote>
  <p>How can we effectively teach in the age of AI?</p>
  </blockquote>
  <p>You were beginning to teach less effectively even before AI.</p>
  <p>In the past couple of decades, the amount of paperwork and testing of learners in education has proliferated. There's not really any evidence that it has caused learning to improve.</p>
  <p>Indeed, I've learned most things in life from self-study or practical activity, without ever sitting a formal test on what I've learned.</p>
  <p>It's not only possible, but quite normal, to learn things (including learning from an educator) without having to account to an educator for exactly what has been learned.</p>
  <p>Most of this additional paperwork and testing has been enabled by the popularisation of computers, printers, and software in education, to force learners into routine forms of activity that would previously have required significant effort on the part of the educator to administer - an effort which would previously have deterred educators from doing it on such a gratuitous scale.</p>
  <p>That is, computers have enabled educators to inflict more of this makework on learners, without the educators bearing a commensurate extra cost themselves.</p>
  <p>AI now basically resets the balance of this arms race, by responding to increases in spurious, mechanically-executed educator activity, with spurious, mechanically-executed learner activity, like AI-written answers.</p>
  <p>It is certainly not a new phenomenon that students have sought the economic benefit of an educational credential, without actually earning the award through an acquisition of knowledge or immersion in that subject.</p>
  <p>For most of human history, this problem was controlled by the integrity of educators, by the quality of relationships with learners which identified their capability (and any fraudulent intentions in relation to a course), and by modest amounts of written and verbal interaction that allowed the educator to verify that the learner was properly engaged and for the learner to feed back any confusion.</p>
  <p>Hopefully, AI will force educators to buckle back down to more traditional and effective methods of teaching. Or at least, release learners from educator-inflicted, computer-enabled makework, and return time and effort for the learner's own disposal.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T22:58:04.303Z
Answers.Text: The most successful learning model has been Apprenticeship: choose people with an aptitude and interest in something, start them young, and free them from worry about living expenses and the future of their career. It seems like the most 'human' approach to helping people get good at something, make a contribution and have a secure future. Many people are saying now that the promise of getting a good job after college is an empty one. If you can learn intensively in a natural way while having security, doesn't that make more sense?
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T23:24:48.630Z
Answers.Text: @ScottRowe, agreed. All traditional professions - including education and academia itself - have concurrent workplace and classroom activity to reproduce the skilled worker. Part of the reason everything has become focussed on doing paperwork in classrooms only, is because everything that can be administered with paperwork and computers makes it look like schools and universities are still doing useful teaching, without requiring the same labour and application (and capability and skill) from teachers themselves.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T00:24:15.527Z
Answers.Text: Right. Apprenticeship is nearly one to one, it doesn't scale to MOOC levels :-) No way to make it profitable. Maybe being human isn't inherently profitable in general?
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T09:38:00.670Z
Answers.Text: @ScottRowe, well there's no shortage of profits in law, medicine, and accountancy. I don't think it's so much that it's ever been unprofitable to educate people properly, but that it's more profitable in the short term to drive education into the ground.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T12:50:02.247Z
Answers.Text: I don't know, I mostly learned programming on my own, alongside or despite schooling and college. The only learning model I am very familiar with is to work at tasks individually, with perhaps an expert to ask, although a compiler and cpu are the final 'experts' for programming. Other fields don't have that quick, built-in feedback loop. I did learn ideas in class that I could later use to solve particular kinds of problems. Hard to gain that alone. I have struggled to know what to teach and how. I had a helpful expert though.
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T12:59:18.710Z
Answers.Text: Where I taught, sometimes a student just wasn't getting any traction. Further effort would be a waste of their time. Not everyone is suited for everything. Thus the self-selection aspect of Apprenticeship. If you really want to learn something, that is a good start. Wanting to learn it because of economic motivations is not. It bears a resemblance to arranged marriage in a way. Young people have drive but not always wisdom to choose a compatible partner. The education system doesn't help in either way. Academic Avisors often come too late to help.
Answers.UserDisplayName: Scott Rowe
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-11T14:22:17.353Z
Answers.Text: @ScottRowe, I wasn't formally taught programming at all, and I don't think academia really has a grasp of what programmers actually *do*, or how - a philosophy of software development.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-11-11T03:32:32.517Z
Answers.Text: @Steve what do you mean by "buckle back down to more traditional and effective methods of teaching"? My method has been to show lots of examples, develop code live while students watch, explaining what I'm doing and why. I welcome student comments, questions, corrections, and suggestions. Then students work on programming assignments, to show what they have learned.
Answers.UserDisplayName: Community College Teacher
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-11-11T06:02:37.767Z
Answers.Text: @CommunityCollegeTeacher, I was referring to the traditional practice of teachers engaging directly with students so as to judge their competence and verify their participation, rather than inflicting endless written makework of a kind that is now vulnerable to AI automation by the learner.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-11-11T06:09:04.583Z
Answers.Text: ...I'm not necessarily suggesting you aren't doing this, I'm just emphasising that "cheating" via AI is only possible when the personal relationship with the teacher has become weak or non-existent.
Answers.UserDisplayName: Steve
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-08-10T21:35:40.960Z
Answers.LastActivityDate: 2024-08-10T21:35:40.960Z
Answers.UserDisplayName: Steve
Body: <p>I taught Python for non-CS Majors last semester. For every assignment, I checked what ChatGPT would give me. If I treated the submissions as &quot;black box&quot;, it turns, ChatGPT would get an A.</p>
  <p>Looking at the code, sometimes I could see constructs that have been replaced by better ones in newer versions of Python. For example using <code>.format</code> vs <em>f-strings</em></p>
  <p>How can we effectively teach in the age of AI?</p>
  
Tags: <python><cheating><ai>
Title: How to prevent students from using AI?
ThreadText: # How to prevent students from using AI?
  
  (Asked by: username_0 on 2024-08-09)
  
  I taught Python for non-CS Majors last semester. For every assignment, I checked what ChatGPT would give me. If I treated the submissions as "black box", it turns, ChatGPT would get an A.
  
  Looking at the code, sometimes I could see constructs that have been replaced by better ones in newer versions of Python. For example using `.format` vs *f-strings*
  
  How can we effectively teach in the age of AI?
  
  **Tags:** python, cheating, ai
  
  
  ---
  
  ## 5 answers
  
  ### Answer by username_1 on 2024-08-09. Score: 4
  
  Software development is changing rapidly now, in the "age of AI".
  
  I wouldn't see "prevent students from using AI" as an ultimate goal. Using an AI as a coding aid is rapidly entering the professional development world, so we should prepare students to make the best use of the new tools.
  
  IMHO, the challenge is "making them understand the underlying concepts, although an AI can give them easy solutions for coding problems". Traditional coding exercises will no longer help in that regard, as they can too easily be handed over to an AI.
  
  I'd advocate to change the focus from fresh-coding to other exercises, e.g.
  
  * Debugging a piece of code that contains an error. Besides the corrected code, ask for an explanation of the original cause.
  * Adding a new feature to an existing piece of code. Give the old piece of code together with the old and new specification.
  * Reviewing a piece of code. Ask the students to evaluate (and suggest improvements) regarding naming, readability, performance etc.
  
  These are very relevant tasks that happen very often in real life, where it will be much harder for an AI to reach an A rating.
  
  > **Comments:**
  > **username_2**: And if it does, we can have shorter workweeks. It seems like as lower level tasks and knowledge are "hollowed out", we'll somehow have to get to the higher level knowledge directly. I'm not sure how we can do that, but maybe. Otherwise we'll have good code and terrible systems.  
  > **username_3**: @username_2, the computer age has, so far, only enabled a sprawling inefficiency in business administration (including the balkanisation of the activities of large corporations) and duplication of developer effort. We already could have shorter working weeks - in fact, work weeks were already shorter under feudalism.  
  > **username_2**: @username_3 if programmers ran things, they would be a lot better, eh? They might well get their chance. "*Until you stretch out your wings, you never know how far you can walk.*"  
  > **username_3**: @username_2, many things were better when computer programmers *weren't* involved, or more importantly when capitalist managers did not have at their disposal cheap computer machinery, cheap energy for such machinery, and cheap, amateur computer programmers to half control them. The point is that the length of the working week has never been determined by economic necessity, but by the maximum amount of work the ruling class can coerce to be done.  
  > **username_2**: @username_3 "*If I'd asked people what they* wanted, *they would have said 'nicer capitalists'.*"  
  > **username_3**: @username_2, I get the Henry Ford reference, that consumers aren't the experts on how to design products which solve their problems. But how does that apply here?  
  
  ---
  
  ### Answer by username_7 on 2024-08-10. Score: 4
  
  The first part of my answer is a bit of a frame challenge, but it is vitally important: think carefully to make sure that denying them AI is appropriate to the circumstances. My current CS courses have different policies, ranging from, "do not use it to create any code under any circumstances" to "you can feel free to use any AI source you wish for the code you produce in this class" and everything in between.
  
  The differences stem from the learning goals of the courses. It tends to be that more advanced courses, where programming is no longer the focus of the curriculum, tend to have more relaxed GPT policies.
  
  Now on to the nitty-gritty:
  
  Within my department, we begin each course with the GPT policy, and a discussion about why, given the learning goals of the course, the policy is the way it is. We then follow with very detailed instructions about how, exactly, to comply with the policy, and *how we expect this policy to ultimately benefit the students*.
  
  In my own courses, I also begin each assignment with a short description of the lab's learning goals, how GPTs can (or cannot) be used very specifically within the assignment, what sort of citations I expect and where, and, again, why I believe that this policy will help the students in the long run. I believe that these discussions give context that helps students make better decisions about their own behavior, and frame the lab experiences in a way that helps the students to also learn what the lab is trying to teach them.
  
  The second part, helping them to avoid it, is fairly straightforward: first, we explain that, due to the ease of cheating with AI (not to mention other, more traditional sources), we have been forced to make labs worth comparatively less within grades. Second, we explain that the exams and labs are designed, to some degree, together; the labs are intended to help prepare students for the exams, and cheating on labs may well impact preparedness for the tests, during which students are watched.
  
  Importantly, we are telling the truth about this. The exams really do include components from the labs. If we didn't, the students would shortly figure out that the labs really don't impact their grades much, and they would treat them as such. What we put on the test can be something as complex as questions about structures or techniques that they practiced on the lab, or as simple as creating a short method that they would have literally coded on it (such as a linked list insertion at the end of a list).
  
  In my experience, working to get the students on **your side** by showing them how your AI policy is ultimately **on theirs** goes a long way, and setting up your course incentives properly can do much of the rest.
  
  Does this prevent 100% of such cheating? No, of course not, but judging from how hard I see students working on the labs I give, I can tell you that it goes a long way. Students will focus their work where they feel like the work is rewarded, and this is as true in the age of AI as it has ever been.
  
  
  ---
  
  ### Answer by username_4 on 2024-08-09. Score: 3
  
  I have a sense that we may be (*may be*) at a cusp. We certainly aren't past it yet, but the question arises as to whether future CS students and practitioners will need to program at all.
  
  Currently, if I read it correctly, they still do, and AI is too error prone to trust. Trusting is dangerous at the moment, as great harm can be done by unthinking, un-moral, things suggested by AI. That may change, but it will take a lot of work to get there and, to me, the incentives seem wrong. There is a lot of hype and monetization, but whether there is a basis for trust is questionable at the moment. Color me skeptical.
  
  Checking of AI output by humans is needed and skills (mad skilz) needed to do that.
  
  So much for the preamble.
  
  I think that students at the moment still need to learn to program and many later courses in a college curriculum depend on having that ability. That may change, but it hasn't yet.
  
  I think that impressing on students that learning is the objective and not "programs" is important, and some (probably the best students) might get that message. Honor codes can help in some places but it takes a strong tradition (Dartmouth) to get there.
  
  But one thing that can be done is the ["flipped classroom"](https://en.wikipedia.org/wiki/Flipped_classroom) in which students spend face time with the instructor doing the programming and material normally given as lectures is homework, opposite to the historical method.
  
  A flipped classroom lets the instructor wander about, looking over the shoulders of students as they program, making suggestions about the coding and the process. Unfortunately this doesn't scale well and it is helpful (necessary?) to have some assistance, such as a TA to wander around.
  
  One problem with a sole instructor in a flipped classroom is that when questions are asked it takes time to answer them, ending the "wandering" for a bit. If several students have questions (probably the general case) it can get unwieldy without assistance.
  
  But, to overcome the above issue, one can combine the flipped classroom with [pair programming](https://en.wikipedia.org/wiki/Pair_programming) as a pair of students can often (usually?) answer one another's questions without the instructor. I usually combine this with [test first development](https://en.wikipedia.org/wiki/Test-driven_development) for other reasons, implying programming in smaller "chunks" than the entire project. This also leads to fewer questions, enhancing the power of "wandering around" in the flipped classroom.
  
  It is a lot of work initially to flip a classroom. The reading/watching materials need to be created and deployed. But over time, it can pay off.
  
  The future, of course, is unknown.
  
  > **Comments:**
  > **username_5**: I can say from practical experience, flipped learning in large groups does not work.  We found the students were not watching the pre-recorded material to prepare for the class and as a result didn't ask question or involve themselves in their learning.  I think the walking around checking what *they* are doing is essential.  The students do like watching me program though (which I have done since portable data projectors became available) as some skills can't really be taught by lectures.  We are de-flipping, but I'll be generating video material for them after lectures and see how that goes.  
  > **username_4**: @username_5, yes, it doesn't scale well unless you have a bunch of skilled TAs. And you may need a mechanism to assure the outside material is studied. I once had a math class with daily 5 minute quizzes. We hated that guy, but we learned. "Take out a piece of paper". Groans...  
  > **username_5**: On the bright side *I* enjoyed the flipped lectures - I felt I was giving the students much better value for their fees, but sadly too few of them were taking advantage of it.  Worth a try.  
  > **username_6**: When flipping I tell students to watch and take notes on the video. The following class period I give them 'prep points'--a fairly simple quiz during which they are allowed to use their notes. It seems to work fairly well. I keep the prep points quite closely connected to the video so that they see the advantage of keeping up with their video watching.  
  
  ---
  
  ### Answer by username_2 on 2024-08-09. Score: 2
  
  "Bad artists copy, great artists steal." It is already possible to peruse code and examples and answers produced by others, but now we have a free 'assistant' which will seemingly produce something made to order for a simple request. We have always had to understand what we are doing, when producing it ourselves. If we are taking things that are on offer, we still have to understand. So if something can construct something for us, we effectively become the Patron or Manager of a specialized worker or crew.
  
  So ask your students if they feel ready to manage a Golem that they know basically nothing about? People are already struggling to assess code examples and borrow from libraries of code written by humans. But to take on work that you yourself do not understand and couldn't produce seems... Inadvisable.
  
  I would definitely teach safe usage of sources and tools by showing how you use them, and comparing the findings of some searches, and the results of some AI output. The more powerful one's tools and sources, the more we need to know, not less. Perhaps this will scare off people unable or unwilling to learn to this level?
  
  > **Comments:**
  > **username_5**: +1 Would you be happy flying in an airplane where the control software was written by an AI from prompts provided by a programmer that didn't understand the code *either*?  
  > **username_2**: @username_5 "*'Tis a consummation devoutly to be wished.*" By some people anyway.  
  
  ---
  
  ### Answer by username_3 on 2024-08-10. Score: 2
  
  > How can we effectively teach in the age of AI?
  
  You were beginning to teach less effectively even before AI.
  
  In the past couple of decades, the amount of paperwork and testing of learners in education has proliferated. There's not really any evidence that it has caused learning to improve.
  
  Indeed, I've learned most things in life from self-study or practical activity, without ever sitting a formal test on what I've learned.
  
  It's not only possible, but quite normal, to learn things (including learning from an educator) without having to account to an educator for exactly what has been learned.
  
  Most of this additional paperwork and testing has been enabled by the popularisation of computers, printers, and software in education, to force learners into routine forms of activity that would previously have required significant effort on the part of the educator to administer - an effort which would previously have deterred educators from doing it on such a gratuitous scale.
  
  That is, computers have enabled educators to inflict more of this makework on learners, without the educators bearing a commensurate extra cost themselves.
  
  AI now basically resets the balance of this arms race, by responding to increases in spurious, mechanically-executed educator activity, with spurious, mechanically-executed learner activity, like AI-written answers.
  
  It is certainly not a new phenomenon that students have sought the economic benefit of an educational credential, without actually earning the award through an acquisition of knowledge or immersion in that subject.
  
  For most of human history, this problem was controlled by the integrity of educators, by the quality of relationships with learners which identified their capability (and any fraudulent intentions in relation to a course), and by modest amounts of written and verbal interaction that allowed the educator to verify that the learner was properly engaged and for the learner to feed back any confusion.
  
  Hopefully, AI will force educators to buckle back down to more traditional and effective methods of teaching. Or at least, release learners from educator-inflicted, computer-enabled makework, and return time and effort for the learner's own disposal.
  
  > **Comments:**
  > **username_2**: The most successful learning model has been Apprenticeship: choose people with an aptitude and interest in something, start them young, and free them from worry about living expenses and the future of their career. It seems like the most 'human' approach to helping people get good at something, make a contribution and have a secure future. Many people are saying now that the promise of getting a good job after college is an empty one. If you can learn intensively in a natural way while having security, doesn't that make more sense?  
  > **username_3**: @username_2, agreed. All traditional professions - including education and academia itself - have concurrent workplace and classroom activity to reproduce the skilled worker. Part of the reason everything has become focussed on doing paperwork in classrooms only, is because everything that can be administered with paperwork and computers makes it look like schools and universities are still doing useful teaching, without requiring the same labour and application (and capability and skill) from teachers themselves.  
  > **username_2**: Right. Apprenticeship is nearly one to one, it doesn't scale to MOOC levels :-) No way to make it profitable. Maybe being human isn't inherently profitable in general?  
  > **username_3**: @username_2, well there's no shortage of profits in law, medicine, and accountancy. I don't think it's so much that it's ever been unprofitable to educate people properly, but that it's more profitable in the short term to drive education into the ground.  
  > **username_2**: I don't know, I mostly learned programming on my own, alongside or despite schooling and college. The only learning model I am very familiar with is to work at tasks individually, with perhaps an expert to ask, although a compiler and cpu are the final 'experts' for programming. Other fields don't have that quick, built-in feedback loop. I did learn ideas in class that I could later use to solve particular kinds of problems. Hard to gain that alone. I have struggled to know what to teach and how. I had a helpful expert though.  
  > **username_2**: Where I taught, sometimes a student just wasn't getting any traction. Further effort would be a waste of their time. Not everyone is suited for everything. Thus the self-selection aspect of Apprenticeship. If you really want to learn something, that is a good start. Wanting to learn it because of economic motivations is not. It bears a resemblance to arranged marriage in a way. Young people have drive but not always wisdom to choose a compatible partner. The education system doesn't help in either way. Academic Avisors often come too late to help.  
  > **username_3**: @username_2, I wasn't formally taught programming at all, and I don't think academia really has a grasp of what programmers actually *do*, or how - a philosophy of software development.  
  > **username_0**: @username_3 what do you mean by "buckle back down to more traditional and effective methods of teaching"? My method has been to show lots of examples, develop code live while students watch, explaining what I'm doing and why. I welcome student comments, questions, corrections, and suggestions. Then students work on programming assignments, to show what they have learned.  
  > **username_3**: @username_0, I was referring to the traditional practice of teachers engaging directly with students so as to judge their competence and verify their participation, rather than inflicting endless written makework of a kind that is now vulnerable to AI automation by the learner.  
  > **username_3**: ...I'm not necessarily suggesting you aren't doing this, I'm just emphasising that "cheating" via AI is only possible when the personal relationship with the username_0 has become weak or non-existent.  
  
  ---
  
  