3
$\begingroup$

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?

$\endgroup$
0

5 Answers 5

4
$\begingroup$

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.

$\endgroup$
6
  • $\begingroup$ 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. $\endgroup$
    – Scott Rowe
    Commented Aug 9 at 17:26
  • 1
    $\begingroup$ @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. $\endgroup$
    – Steve
    Commented Aug 10 at 19:42
  • $\begingroup$ @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." $\endgroup$
    – Scott Rowe
    Commented Aug 10 at 20:51
  • $\begingroup$ @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. $\endgroup$
    – Steve
    Commented Aug 10 at 21:53
  • $\begingroup$ @Steve "If I'd asked people what they wanted, they would have said 'nicer capitalists'." $\endgroup$
    – Scott Rowe
    Commented Aug 10 at 22:50
4
$\begingroup$

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.

$\endgroup$
3
$\begingroup$

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" 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 as a pair of students can often (usually?) answer one another's questions without the instructor. I usually combine this with test first 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.

$\endgroup$
4
  • $\begingroup$ 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. $\endgroup$ Commented Sep 8 at 19:12
  • 1
    $\begingroup$ @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... $\endgroup$
    – Buffy
    Commented Sep 8 at 19:19
  • $\begingroup$ 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. $\endgroup$ Commented Sep 8 at 19:25
  • $\begingroup$ 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. $\endgroup$
    – paw88789
    Commented Nov 6 at 8:26
2
$\begingroup$

"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?

$\endgroup$
2
  • $\begingroup$ +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? $\endgroup$ Commented Sep 8 at 19:16
  • 1
    $\begingroup$ @DikranMarsupial "'Tis a consummation devoutly to be wished." By some people anyway. $\endgroup$
    – Scott Rowe
    Commented Sep 8 at 20:19
2
$\begingroup$

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.

$\endgroup$
10
  • 1
    $\begingroup$ 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? $\endgroup$
    – Scott Rowe
    Commented Aug 10 at 22:58
  • 1
    $\begingroup$ @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. $\endgroup$
    – Steve
    Commented Aug 10 at 23:24
  • $\begingroup$ 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? $\endgroup$
    – Scott Rowe
    Commented Aug 11 at 0:24
  • 1
    $\begingroup$ @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. $\endgroup$
    – Steve
    Commented Aug 11 at 9:38
  • 1
    $\begingroup$ @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. $\endgroup$
    – Steve
    Commented Aug 11 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.