Live data from Hacker News

Coping with Copilot

sigarch.org

341–350 of 463 posts

Re: Coping with Copilot

#341
post #248

Earlier quoted context omitted.

I find this a very puzzling reply, and it may be that I misunderstood to what you are referring with the "they're" in "They're, for the most part, things we tried to put in libraries (or more ideally language standard libraries for a lot of things.)" It might refer to "the things Copilot does for you" or alternatively "the things you need to know yourself to be in industry." The thing is, regardless of which way you…

> I find this a very puzzling reply, and it may be that I misunderstood to what you are referring with the "they're" in "They're, for the most part, things we tried to put in libraries (or more ideally language standard libraries for a lot of things.)" It might refer to "the things Copilot does for you" or alternatively "the things you need to know yourself to be in industry." I do see how that could be ambiguous. Th…

To be clear, I take it that you are saying that a) everything Copilot is currently capable of can be found in libraries, and consequently b) learning how to do those things oneself is a waste of time, so c) it does not matter if people entering industry as software developers cannot do that themselves.

My point is that even if this is the case for a majority of such people, we still need the people who make all the library contents that are beyond Coplilot's capabilities, and we both seem to agree that its capabilities are limited.

The thing is, a world in which a lot of people can be productive software developers, without even being capable of writing the sort of algorithms Copilot is capable of, is highly dependent on the people who design and write the libraries that implement not only those algorithms, but also a great deal else that is beyond Copilot's capabilities. The industry may not need everyone to be able to do that, but then it is entirely dependent on those who can.

One can certainly argue that there is no point in an education that stops at the ability to reproduce what Copilot does, but that would be something of a straw man, as education does not typically stop there. I agree that it makes a poor hiring benchmark, regardless of the role being filled.

Re: Coping with Copilot

#342
post #126

I understand the problem here and I sympathize with professors in these circumstances. Learning the fundamentals will remain important. But as others have pointed out: if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run. One thing tho is that things like Copilot put the lie to the hypothesis (propagated mostly by the Google-style job interview) that intensely codi…

> if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run That's a very limited, and dismissive view. If you allow students to use copilot, you're handing out certificates or diplomas to people who can't code. That will very quickly erode the value of your institute's certification, and with it, that of the other students. Otherwise, why not give everyone an MSc in CS…

Tools of abstraction like Copilot raise the threshold for what can be considered "fundamentals." Yes, knowing how to add, subtract, multiply, and divide is important. However, now that calculators exist, we can teach people to do so much more than simple arithmetic. So, too, with Copilot.

Re: Coping with Copilot

#343

I understand the problem here and I sympathize with professors in these circumstances. Learning the fundamentals will remain important. But as others have pointed out: if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run. One thing tho is that things like Copilot put the lie to the hypothesis (propagated mostly by the Google-style job interview) that intensely codi…

This happened in mathematics about a decade ago when Wolfram Alpha came out. Lecturers started complaining that Wolfram Alpha could solve assignment problems with worked steps.

In both cases I think this is a real opportunity; we can let students get more quickly to bigger problems and systems thinking by leveraging these tools. It requires professors to start thinking innovatively about how to teach and assess these subjects.

Re: Coping with Copilot

#344
post #175

Earlier quoted context omitted.

Copilot doesn't change the fact that trivial questions (such as 'write a Fibonacci function') can already be googled. What I don't know (I can't try the 'free' Copilot without providing a credit card), is how well it understands unusual constraints and separate pieces of C++ classes that make the real programs we write. For instance, a simple test would be: "write a fibonacci function but skip the number 5". Does it…

I (surprisingly) could not get it to generate a Fibonacci function that skips 5.

With the prompt

  // Print the fibonnaci sequence, except the number 5.
  int main() {
I got the result:

    int a = 0;
    int b = 1;
    int c = 0;
    while (c 

Re: Coping with Copilot

#345

I understand the problem here and I sympathize with professors in these circumstances. Learning the fundamentals will remain important. But as others have pointed out: if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run. One thing tho is that things like Copilot put the lie to the hypothesis (propagated mostly by the Google-style job interview) that intensely codi…

Copilot doesn't change the fact that trivial questions (such as 'write a Fibonacci function') can already be googled. What I don't know (I can't try the 'free' Copilot without providing a credit card), is how well it understands unusual constraints and separate pieces of C++ classes that make the real programs we write. For instance, a simple test would be: "write a fibonacci function but skip the number 5". Does it…

> Maybe my data structure has a hash table of items, as well as a direct link to the largest item. When I say: "write the function to insert a new item in the list, and remember to update the largest item if it is larger than the current one", would Copilot do the right thing? Each step is easy in itself (adding an element to a hash, comparing an item to another one).

In general it won't solve all your problems, but it's helpful for automating simple things like this (but you still need to test edge cases). With this prompt in Python (which I'm more familiar with):

  from dataclasses import dataclass
  from typing import TypeVar
  
  T = TypeVar('T')
  
  @dataclass
  class MaxDict:
      items: dict[T, float]
      max_value_item: T

      def add_item(
It completed:

    def add_item(self, item: T, value: float):
        if value > self.items[self.max_value_item]:
            self.max_value_item = item
        self.items[item] = value
This was my second attempt; first I called it `max_item` and the completion did something about comparing the key.

Re: Coping with Copilot

#346

Earlier quoted context omitted.

I'll generally rate an MSc lower than BA/BSc. (The exceptions would be if you needed the MSc to meet some visa requirement, or if you had an BSc in some weakly-related field beforehand.) From downvoters: I would genuinely love to hear a defense of an MSc per se. What university has their shit together enough to actually accelerate/compress 2-4y of work experience into 1-2y years of academic project, which is what's a…

Graduate degrees aren’t meant to simulate work experience or take more classes, they’re intended for research. If your MSc lists no research and is applying for some sort of boilerplate frontend job, then I understand the hesitation, but normally one would take that experience into a cutting-edge field which focuses on innovation rather than making web apps as fast as possible. In jobs with an element of R&D, univers…

For most university CS labs, "research experience" comes down to 1) writing code in an overcomplicated way (because it's theoretically cooler) and 2) with no thought to future maintainability (because once the paper's published, the code gets thrown in the garbage). There are a few CS jobs where those skills come in handy! But in most jobs, even jobs doing "R&D", they're bad habits.

Re: Coping with Copilot

#347
post #64
post #52

Earlier quoted context omitted.

What's a blue-book exam? You can test loop-writing in an oral-exam, too. Thus your proposed solution for GPT-3 writing ethics essays is so good, that it fixes the original problem.

You're right, that a pretty good approach anyway. Teach your whole course in a fake language or on a fake machine like MMIX.

> Teach your whole course in a fake language or on a fake machine like MMIX.

Sorry, what's the point of that? I don't think it would make any difference for cheating?

Re: Coping with Copilot

#348

Earlier quoted context omitted.

Being an actual engineer (software) is different to just being a software engineer, and the former is very commonly highly regulated.

Being an actual engineer myself, I discovered that an official Professional Engineer license has little correlation with competence.

I don't really doubt that, and that's why I'm glad software in general places much less emphasis on licensing than other industries.

Re: Coping with Copilot

#349
post #347
post #64

Earlier quoted context omitted.

You're right, that a pretty good approach anyway. Teach your whole course in a fake language or on a fake machine like MMIX.

> Teach your whole course in a fake language or on a fake machine like MMIX. Sorry, what's the point of that? I don't think it would make any difference for cheating?

There isn't any MMIX machine code in Copilot's training corpus.

Re: Coping with Copilot

#350
post #297

Maybe I'm weird, but I do not get the hype. I was using Copilot for a few weeks as a Go backend dev with occasional work in the React/TypeScript frontend, and I thought it actually reduced my productivity. A lot of times, the suggestions were totally wrong, but looked correct-ish, and I would have to pause and basically debug that code, which generally took longer and snapped me out of my flow. Some of the autocomple…

I agree, I just disabled it today. I'd say 3 out of 10 times it produced a good result. Most of the time the structure looked ok but the variable names were wrong, or the types were wrong, or it had logic issues. Surprisingly, I thought it did great with autocompleting the comments. In Visual Studio, it would block function autocomplete which was really annoying also
Post reply on HN