Live data from Hacker News

Coping with Copilot

sigarch.org

451–460 of 463 posts

Re: Coping with Copilot

#451
post #354

Earlier quoted context omitted.

Your argument fails to distinguish between "open source" and "free software". Copyleft, free software, GPL style licenses do not have their source open purely for the purpose of studying and modifying. Their licenses also require that derivative works also be free and that such modifications be distributed. Copilot does not comply with this. And so violates the spirit of those licenses, and probably also the letter o…

I literally use “libre” and “gratis” to make that precise distinction. And it’s at best questionable whether copilot is derivative of the code it is trained on.

It's not about the distinction between “libre” and “gratis”, but about the distinction between copyleft and permissive.

Re: Coping with Copilot

#452

Earlier quoted context omitted.

I found carefully reviewing the suggestions it gave me more work than actually writing the code myself. Granted, I only used it for a day, but many of the suggestions were subtly wrong, needless inefficient, or used outdated/deprecated paradigms/standard library stuff. I only used it for a language I'm very familiar with. I'd be a lot more hesitant using it for a language I'm less familiar with because I won't be abl…

I've found it extremely helpful in writing highly repetitive code that's too complicated for a Regex find/replace. For example, I used it when writing a recursive descent parser in Rust for a hobby project. I wrote the grammar in a comment at the top of the file, wrote and imported the AST enum, and wrote the first production. After that, I just prompted Copilot and it worked its way down the grammar, producing the p…

Why not just use a parser generator?

Re: Coping with Copilot

#453

Earlier quoted context omitted.

This just sounds like you’re punishing candidates because you have an inferiority complex. Many master’s holders started out thinking they might have been interested in research and decided industry was a better fit after seeing how the sausage is made. You’re “rule of thumb” punishes undergrads who were inspired to push the boundaries of knowledge in the field.

Cool personal insult - who has the inferiority complex here? Your explanation can be reframed as "many MSc holders did not invest any attention to how the academy works during their BSc years" - why should I prefer them? My rule of thumb punishes such people compared to those with a broader view and better self-knowledge, yes.

> holders did not invest any attention to how the academy works during their BSc years" - why should I prefer them?

More inferiority complex. Some people give a shit about research and want to give it a try to see if they can make it work. There is no way you understand the nuances of how NSF or DoD funding works for your specific areas of research until you spend a lot of time in the weeds of grant proposals and reading reviews.

> My rule of thumb punishes such people compared to those with a broader view

This is a joke. Most BScs have no clue at all how academia works because they don’t care. They are absolutely not more enlightened to the nuances of career prospects in research in their areas of interest.

There are wide gulfs in the funding available depending on sub fields of CS. Research security and you’ll have plenty of money and opportunities at national labs, research arms of corporations, and academia. Go the P/L route and it gets dry pretty quickly.

> Cool personal insult - who has the inferiority complex here?

If you’re gonna try to insult, at least get it right. It would be a superiority complex if you wanted to view my post through the lens of pushing “how smart” grad students are. Yours is an inferiority complex because you’re taking out your lack of institutional credentials on anyone who has them with some convoluted logic about how people are stupid if they spend extra time in academia.

Re: Coping with Copilot

#454

Earlier quoted context omitted.

I think an accelerated bs/ms might be another exception you should consider. (This being when a bs student can do another year immediately following to get their ms.) It makes sense on ROI as many companies have HR departments more likely to get you into the interview process, and then it’s often a slightly higher starting role. Also, from a knowledge standpoint, some graduate classes help practical abilities only. A…

Undergraduates in CS can fill their senior year with 500 level courses easily. Motivated ones also much of their junior year. Why would I take the applicant who did it five over the ones who did it in four? Worrying about the “MSc” label at the end for the same work is just credentialism.

Your confusion in this thread stems from the assumption that there is only actually enough CS to cover 4 years for a good student and 5 for a mediocre bs+ms. This is complete bullshit because the truly motivated undergrad would spend the senior year doing 500s and then the next year doing a bunch more for more breadth.

At any of the large CS universities, there are usually 4+ masters tracks you can go down (security, hpc, p/l, HCI, algorithms, etc).

Someone who quits with just a BS has no interest in going further theoretically. The absolutely did not cover all of the topics available - let alone get into research.

Re: Coping with Copilot

#455
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…

> If you allow students to use copilot, you're handing out certificates or diplomas to people who can't code.

Many would argue that this is already happening. Moreover, we have no plan to stop it, so it's no good saying that we should not lose progress toward that goal.

Re: Coping with Copilot

#456

Earlier quoted context omitted.

As I moved as well, I experienced three different Canadian universities' Computer Science Program. There was only one professor and course that I still remember 20 years later: CS408, Software Engineering, Professor Wortman, UofToronto. Class project was in four phases, cumulative (basic functionality for the application in phase 1, progressively additional functionality in other phases, frequently strongly interacti…

There are a few issues with this kind of assignment. The first issue is that it's really hell on the TAs with all of the administrative work needed to do the swapping between phases. Software engineering is already one of the more annoying classes to TA, and this makes it even less palatable. The bigger issue is that, on the basis of fairness, you grade in later phases is very heavily dependent on factors that are ou…

Thanks for the note and perspective. Some clarifications:

1. As noted, each team got to review and pick the code they would take after each phase as long as it's not your own. I remember drawing a graph of picked code lines and it was fascinating, evolution / survival of fittest at work. But it wasn't something one didn't have control of.

2. I don't know why it would make TA work either better or worse, we may not be fully understanding each other. You have 22 programs to put through a standardized test suite based on formal requirements all teams had to code to. It was far easier to grade than any other assignment I ever had.

3. I guess different people have different real world experience. All of COTS/ERP and a lot of enterprise applications are somebody else's code. Millions of lines of somebody else's code. So that's the norm in my life. YMMV :)

Re: Coping with Copilot

#457
post #140

Earlier quoted context omitted.

I would expect that code you get from Stage N-1 is functional across a range of tests that are agreed upon upfront. For the fairness aspect, I would also let students pick any Stage N-1 that is not their previous N-1. That would also teach em that not all is created equal (and probably identify approaches / ideas that they can incorporate in their work)

I love this idea. Maybe some extra credit if your Stage N-1 is the most popular choice?

That is exactly what happened. You got 1% extra mark if somebody picked your code.

Seemed trivial at the beginning of semester,right?

...did I mention my team had previous real life experience?

We put extrnsive code and documentation and FAQs online (this was like 99 or 2001 don't remember, but we'll before Github etc) , and committed to 7 day support of our code base. We got 18 out of 22 picks after phase 1.

Of course competition was much stiffer further phases, but that too was like 3 valuable real world lessons learned for everybody!

Re: Coping with Copilot

#458
post #352

Earlier quoted context omitted.

> To be clear, I take it that you are saying that... I'm going to answer these individually because the answers are all different. > a) everything Copilot is currently capable of can be found in libraries, The vast majority, perhaps not 100%. > b) learning how to do those things oneself is a waste of time It's a waste of time if the pupil doesn't actually want to do it. If they do want to do it, there's probably quit…

We have reached a point of mutual understanding and considerable agreement, but I feel we have circled around to the original problem. In your last paragraph, you consider the case of calculator vs. slide rule, but one can, I think, make a more apposite case with calculator vs. learning arithmetic (and even if you don't agree that it is more apposite, the point can still be made!) By your logic, we should not be assi…

> I think, make a more apposite case with calculator vs. learning arithmetic (and even if you don't agree that it is more apposite, the point can still be made!) By your logic, we should not be assigning any arithmetic problems that can be solved with a calculator.

I think that's an excellent point, and one whose nuances shouldn't be un-examined.

I guess the difference to me is that arithmetic feels more fundamental. I may be using fundamental in a weird way here, but I don't mean it in the sense of something that you build on. I mean it in the sense that arithmetic itself is the idea that's trying to be taught. Whereas a sorting algorithm has both a explanation as a semi-platonic ideal and as an implementation and they're very different things. You can fairly effectively wield the implementation only using the idea in your head, mostly regardless of your understanding of the implementation. In fact, it's generally considered good practice to hide an implementation from your eventual users.

I'm not so convinced that you could do the same with arithmetic, although I'm open to arguments to the contrary.

Now that I'm thinking about it, I think this is the dividing line between math and computing in my head. The ability to separate out the real world part from the ideal and operate the former using only the latter.

Perhaps I'm mistaken, but I would be very surprised if a mathematician could operate without understanding arithmetic, but I've seen quite competent programmers construct APIs just fine without having been taught sorting algorithms.

Re: Coping with Copilot

#459
post #70

Could you just use another teaching language? Does copilot work as well with e.g. Racket, Raku or Pascal, which all seem like decent CS101 languages to me?

Students don't like learning languages that they are not going to use professionally. They want to learn Python, Javascript, maybe Java or C#. This is another clear indicator that most students today see college as a higher class trade school, not as a place of higher learning.

Difficult to fault students for not wanting to be able to pay off the massive debt they're forced to buy into just to get entry level career jobs.

College may have been a place of higher learning at some time before the last thirty years but I doubt it.

Javascript may be the only one of those four worth teaching as it has different patterns and different ways of solving the same problem.

Re: Coping with Copilot

#460
post #223

Earlier quoted context omitted.

I'll be honest: has anyone here ever looked at a resume with an MSc in CS and said "Yep, I bet this person knows how to write code well"? Surely there are some research level jobs where a PhD in CS is necessary, but for most coding jobs, an MSc is just 2 years of missed experience where you're learning bad habits and antipatterns by never having your code used by other people in any strenuous way. Certainly there are…

Depends on the school and depends on the person. The same way many companies in the US assume any grad from MIT is a good engineer, there are companies who look at resumes w/ an MSc and bump them up. From personal experience, MScs are particularly well-regarded in Brazil, for instance.

My question wasn't "do companies think that an MSc is good" but rather "Have you, personally, ever noticed that a candidate with an MSc was better than a candidate with equivalent experience without an MSc".

I think we can all agree that whether a company thinks something is good is completely unrelated to whether that thing actually improves your programming ability.

Post reply on HN