1. 19
  1. 8

    I have been trying to get my students into the habit of explaining their code for my intro class. I dont see this as that much different than them cobbling together stack overflow posts to get to a working answer they dont understand. Its just built into the editor now

    1. 7

      One of my professors did this. We submitted both the code as well as a paper explaining how it worked. That worked okayish on a large scale with low amount of cheating.

      Another professor had the perfect small scale solution. You went to his office with your program, opened it in an editor and he deleted ~5 lines somewhere in the middle. If you could not recreate them, and make the program run, you failed.

      1. 6

        That’s horrible. I can’t do that and I’ve been programming for over 20 years :P

        1. 4

          Hey, remember, we’re talking about undergrad level programming and not rocket surgery. Think merge sorts and binary trees.

      2. 5

        Well, apparently Copilot is really good at writing comments, so it can “explain” the code too. :-)

        1. 3

          Thought experiment: If a student uses Copilot to generate both the code and the explanation, then memorizes both and can reproduce them on command, have they learned the material?

        2. 1

          In a way I’m not sure copilot makes anything much different than when I was in school. The people that didn’t want to learn how to write an algorithm would just “borrow” the solution from someone else, or the internet. (And hopefully change a few variable names and indentation). If people want to learn they will, and if they don’t then they won’t. It’s not really a teacher’s job to force anyone to learn.

        3. 4

          You are teaching data structures and algorithms, right? Not any specific programing language. Just get any scheme implementation and syntax-case a bunch of keywords and make your own little DSL, and ask your students to write in that. Next year, change the syntax a little and you are good to go again.

          1. 4

            It’s a really interesting question how teachers can adapt to this. Obviously, math teachers had to adapt to calculators 40 years ago, so it can be done, but for calculators, you’re dealing with little kids, who are more pliable when you tell them not to do something. :-) When I was in college, I used Google Translate to make a rough draft of my Spanish homework, but it was so bad back then it didn’t actually save me any time. I wonder how it’s affecting teachers today.

            1. 4

              If you’re a grade school teacher, your students’ growth is your responsibility. But if you’re a university professor, students are your paying customers. If some of them don’t want to really learn, but they still want to pay your salary, that’s easy money. Concentrate on the students who came to play ball. (I admit this is a shortsighted hot take and would surely not get me hired as a professor.)

              Perhaps one or another method of gaming the system is not the problem, so much as that the system can be gamed. Grades are for compliance. This isn’t a factory anymore.

              1. 14

                That’s a very American view, I guess? Students should and often are not paying customers for universities. I, the tax payer, am paying for the university to provide education and I’m very ok with that.

                1. 12

                  A slightly more European view which, I suspect, holds just as much in the US: an evaluation system that can’t tell genuine student understanding from copy-pasted AI-generated code is not just useless, it’s detrimental to higher education. Well-practiced rote learning will always outperform genuine understanding in such a system. Copilot is probably good proof of that: it could pass my intro to CS exam with flying colours, at a rate of milions of exams per second :-).

                  Higher education really shouldn’t be about that. It’s detrimental to progress, and it’s self-devaluating. It’s part of how we got in this absurd situation where 3rd year students grit their teeth in Category Theory and Statistical Learning courses, but 95% of them will end up with a job writing CRUD apps, which they could do with a high school-level understanding of mathematics and a two-month Python and SQL course.

                  I’m not a fan of what Microsoft is doing with Copilot in general but frankly, if this forces higher education institutions to confront some of their daemons, that’s a good outcome. (Of course, that’s not a given. I have a feeling that many CS departments will shift focus from “rote learning of algorithms and Python programs” to “rote learning of formal proofs regarding endomorphized monoid categories”, not because it’s helpful to students but because Copilot currently sucks at that).

                  Regardless of who pays for it, the burden of evaluation (and teaching) falls on universities. If something as dumb as a statistical algorithm can outplay a grading system, that’s pretty much on the grading system.

                  The author humorously noted this, but I suspect they’re only half joking:

                  On the plus side, maybe Copilot will also kill code interviews, so it’s not all bad news!

                  1. 1

                    Yes it is, and I wish American schooling was bought by taxes too, because the current arrangement doesn’t make me optimistic. But I simultaneously wish we motivated students with the long term benefits of their education, not the short term requirements of passing and failing. Cheating students should feel they are cheating themselves, not pulling one over on the man. And this is still just a hot take. I don’t know what works, I just believe this doesn’t.

                  2. 3

                    Counterpoint: I, as a paying customer / student, have a vested interest in the university not awarding degrees to incompetents who will dilute the value of my own degree. If a company, just by looking at my university and diploma, can’t tell the difference between me and someone who couldn’t hack together FizzBuzz, then the university has failed on two levels: Firstly, they failed to teach the students who ended up unable to develop software, and secondly, they’ve failed the students they did teach by not punting the incapable students off to the business school.

                  3. 3

                    There’s no easy answer here for first year students. Writing code on paper truly sucks, but it’s a reasonable choice for in class exams. If students lean too much on Copilot for assignments and exercises they’ll be screwed for exams.

                    1. 2

                      While it might be annoying, couldn’t exams just be done in a controlled environment? Set up an exam computer lab where exams must be taken and lock down the OS to prevent AI cheating. Beats pen and paper coding.

                      1. 3

                        I did an exam in that format once. It works fairly well for upper years with small class sizes. With huge freshman classes you run out of lab space and have to run exams in sequence which gives the later group(s) an advantage.

                        Computer science pedagogy is a mess overall. In universities where theory is the focus practical job skills are best formed in a co-op placement, which doesn’t always happen. A heavy focus on theory isn’t required to be a successful programmer, but a solid foundation goes a long way. Smaller colleges (at least where I live) are glorified boot camps that don’t teach enough theory and history, if any, and quickly become out of date.

                        I’m glad I’m out of school, to say the least.