<story><title>Coping with Copilot</title><url>https://www.sigarch.org/coping-with-copilot/</url></story><parent_chain><item><author>jcranmer</author><text>There are a few issues with this kind of assignment.&lt;p&gt;The first issue is that it&amp;#x27;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.&lt;p&gt;The bigger issue is that, on the basis of fairness, you grade in later phases is very heavily dependent on factors that are outside of your control. If you get someone&amp;#x27;s code who just didn&amp;#x27;t complete the assignment--that is probably going to happen once a semester--you are going to be at a disadvantage. Even if there is an option to appeal to the TAs and get the unacceptable code base replaced with an acceptable one, that&amp;#x27;s still likely to be a few days&amp;#x27; worth of work lost learning the codebase, discovering its incompleteness, and now you have to start over &lt;i&gt;again&lt;/i&gt;.&lt;p&gt;I&amp;#x27;ll also point out that it&amp;#x27;s not exactly real-world experience. It is extremely rare that someone will be dumped on a codebase without a prior author remaining on to help them ramp up on the code.</text></item><item><author>NikolaNovak</author><text>As I moved as well, I experienced three different Canadian universities&amp;#x27; Computer Science Program.&lt;p&gt;There was only one professor and course that I still remember 20 years later: CS408, Software Engineering, Professor Wortman, UofToronto.&lt;p&gt;Class project was in four phases, cumulative (basic functionality for the application in phase 1, progressively additional functionality in other phases, frequently strongly interacting with previous phase code).&lt;p&gt;Here&amp;#x27;s the kicker: After each phase, you had to &lt;i&gt;swap your code&lt;/i&gt; with another team. So you had to pick up somebody else&amp;#x27;s code, figure it out, and then build up on it.&lt;p&gt;Few of us that had real-world working experience loved the course and flourished in it. This is what we are training for! This is what programming is like! You are taking real code and building a real thing with it!&lt;p&gt;About 250 other students signed a petition to the Dean on how this is unfair and awful and they will &lt;i&gt;not&lt;/i&gt; put up with it. They were just too used to &amp;#x2F; spoiled by 16 years of 5 assignments per semester with abstract, entirely separate questions of 1.a), 1.b), 1.c), etc.&lt;p&gt;All I could think of - if you did not like this course, you are about to not enjoy next 4-5 decades of your life :D&lt;p&gt;Other than this one course, I can say that I&amp;#x27;m a prolific, enthusiastic, life-long learner, and my university experience was the absolute dumps - it was far less about learning, and far more about bureaucratic hoops and artificial constraints and restrictions. I was top of the class in some hard courses (generative compilers etc), mid-pack in the some of meh courses, but in retrospective, my life opened up when I was done with academia and could work and learn in the &amp;#x27;real world&amp;#x27;.</text></item><item><author>BiteCode_dev</author><text>While it is true code pilot is quite amazing and can produce some very decent snippets, if the exercice you give is specific enought (using a special database schema, file format, or API), with objectives that are not common (ask the user specific questions, and draw conclusions out of it or react to events), then it cannot produce a fully working program. I use code pilot regularly now, and it does speed up my work, but I can&amp;#x27;t do anything with it without understanding the problem at hand.&lt;p&gt;There is nothing wrong with the student assemblings and fixing parts of code that exist. Doing that requires understanding those parts, how they interacts and what you can do with them. It&amp;#x27;s not killing tests. Plus as professionals, we all do that anyway. Heck, I learned doing that. I&amp;#x27;m paid doing that.&lt;p&gt;However, there is something wrong with academic exercices that I see in the wild. Things that are very abstracts, requiring way more than programming knowledge, or stuff that are asked out of context completely. Students are both understimulated, and given too hard bites to chew. It&amp;#x27;s a terrible way to learn, and to be tested IMO.&lt;p&gt;Tests nowaday don&amp;#x27;t tests for knowledge, they test either for compliance, or act as a filter instead of a feedback loop. This is not education.&lt;p&gt;In fact, I&amp;#x27;ve yet to see school IT course that I didn&amp;#x27;t find deeply flawed, and I completely understand the students for cheating at them to that they can suffer as little as possible. They are not given a chance to prove themself or progress, they are not respected. They are forced fed junk and asked to spit it back all shiny.&lt;p&gt;I remember when I was a student, and I went to 11 different schools because of my twisted life. They all sucked. And I say that as I spent half my student life at the top of my class grade ladder.&lt;p&gt;I regret having cheated so rarely now.</text></item></parent_chain><comment><author>x86x87</author><text>I would expect that code you get from Stage N-1 is functional across a range of tests that are agreed upon upfront.&lt;p&gt;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 &amp;#x2F; ideas that they can incorporate in their work)</text></comment>
<story><title>Coping with Copilot</title><url>https://www.sigarch.org/coping-with-copilot/</url></story><parent_chain><item><author>jcranmer</author><text>There are a few issues with this kind of assignment.&lt;p&gt;The first issue is that it&amp;#x27;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.&lt;p&gt;The bigger issue is that, on the basis of fairness, you grade in later phases is very heavily dependent on factors that are outside of your control. If you get someone&amp;#x27;s code who just didn&amp;#x27;t complete the assignment--that is probably going to happen once a semester--you are going to be at a disadvantage. Even if there is an option to appeal to the TAs and get the unacceptable code base replaced with an acceptable one, that&amp;#x27;s still likely to be a few days&amp;#x27; worth of work lost learning the codebase, discovering its incompleteness, and now you have to start over &lt;i&gt;again&lt;/i&gt;.&lt;p&gt;I&amp;#x27;ll also point out that it&amp;#x27;s not exactly real-world experience. It is extremely rare that someone will be dumped on a codebase without a prior author remaining on to help them ramp up on the code.</text></item><item><author>NikolaNovak</author><text>As I moved as well, I experienced three different Canadian universities&amp;#x27; Computer Science Program.&lt;p&gt;There was only one professor and course that I still remember 20 years later: CS408, Software Engineering, Professor Wortman, UofToronto.&lt;p&gt;Class project was in four phases, cumulative (basic functionality for the application in phase 1, progressively additional functionality in other phases, frequently strongly interacting with previous phase code).&lt;p&gt;Here&amp;#x27;s the kicker: After each phase, you had to &lt;i&gt;swap your code&lt;/i&gt; with another team. So you had to pick up somebody else&amp;#x27;s code, figure it out, and then build up on it.&lt;p&gt;Few of us that had real-world working experience loved the course and flourished in it. This is what we are training for! This is what programming is like! You are taking real code and building a real thing with it!&lt;p&gt;About 250 other students signed a petition to the Dean on how this is unfair and awful and they will &lt;i&gt;not&lt;/i&gt; put up with it. They were just too used to &amp;#x2F; spoiled by 16 years of 5 assignments per semester with abstract, entirely separate questions of 1.a), 1.b), 1.c), etc.&lt;p&gt;All I could think of - if you did not like this course, you are about to not enjoy next 4-5 decades of your life :D&lt;p&gt;Other than this one course, I can say that I&amp;#x27;m a prolific, enthusiastic, life-long learner, and my university experience was the absolute dumps - it was far less about learning, and far more about bureaucratic hoops and artificial constraints and restrictions. I was top of the class in some hard courses (generative compilers etc), mid-pack in the some of meh courses, but in retrospective, my life opened up when I was done with academia and could work and learn in the &amp;#x27;real world&amp;#x27;.</text></item><item><author>BiteCode_dev</author><text>While it is true code pilot is quite amazing and can produce some very decent snippets, if the exercice you give is specific enought (using a special database schema, file format, or API), with objectives that are not common (ask the user specific questions, and draw conclusions out of it or react to events), then it cannot produce a fully working program. I use code pilot regularly now, and it does speed up my work, but I can&amp;#x27;t do anything with it without understanding the problem at hand.&lt;p&gt;There is nothing wrong with the student assemblings and fixing parts of code that exist. Doing that requires understanding those parts, how they interacts and what you can do with them. It&amp;#x27;s not killing tests. Plus as professionals, we all do that anyway. Heck, I learned doing that. I&amp;#x27;m paid doing that.&lt;p&gt;However, there is something wrong with academic exercices that I see in the wild. Things that are very abstracts, requiring way more than programming knowledge, or stuff that are asked out of context completely. Students are both understimulated, and given too hard bites to chew. It&amp;#x27;s a terrible way to learn, and to be tested IMO.&lt;p&gt;Tests nowaday don&amp;#x27;t tests for knowledge, they test either for compliance, or act as a filter instead of a feedback loop. This is not education.&lt;p&gt;In fact, I&amp;#x27;ve yet to see school IT course that I didn&amp;#x27;t find deeply flawed, and I completely understand the students for cheating at them to that they can suffer as little as possible. They are not given a chance to prove themself or progress, they are not respected. They are forced fed junk and asked to spit it back all shiny.&lt;p&gt;I remember when I was a student, and I went to 11 different schools because of my twisted life. They all sucked. And I say that as I spent half my student life at the top of my class grade ladder.&lt;p&gt;I regret having cheated so rarely now.</text></item></parent_chain><comment><author>haskellandchill</author><text>&amp;gt;  It is extremely rare that someone will be dumped on a codebase without a prior author remaining on to help them ramp up on the code.&lt;p&gt;what? I must be living a rare life.</text></comment>