Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Education AI Programming

MIT CS Professor Tests AI's Impact on Educating Programmers (acm.org) 84

Long-time Slashdot reader theodp writes: "The Impact of AI on Computer Science Education" recounts an experiment Eric Klopfer conducted in his undergrad CS class at MIT. He divided the class into three groups and gave them a programming task to solve in the Fortran language, which none of them knew. Reminiscent of how The Three Little Pigs used straw, sticks, and bricks to build their houses with very different results, Klopfer allowed one group to use ChatGPT to solve the problem, while the second group was told to use Meta's Code Llama LLM, and the third group could only use Google. The group that used ChatGPT, predictably, solved the problem quickest, while it took the second group longer to solve it. It took the group using Google even longer, because they had to break the task down into components.

Then, the students were tested on how they solved the problem from memory, and the tables turned. The ChatGPT group "remembered nothing, and they all failed," recalled Klopfer. Meanwhile, half of the Code Llama group passed the test. The group that used Google? Every student passed.

"This is an important educational lesson," said Klopfer. "Working hard and struggling is actually an important way of learning. When you're given an answer, you're not struggling and you're not learning. And when you get more of a complex problem, it's tedious to go back to the beginning of a large language model and troubleshoot it and integrate it." In contrast, breaking the problem into components allows you to use an LLM to work on small aspects, as opposed to trying to use the model for an entire project, he says. "These skills, of how to break down the problem, are critical to learn."

MIT CS Professor Tests AI's Impact on Educating Programmers

Comments Filter:
  • Calc Based Physics (Score:5, Interesting)

    by Dayze!Confused ( 717774 ) <slashdot.org@NospAM.ohyonghao.com> on Saturday September 07, 2024 @06:03PM (#64771000) Homepage Journal

    It's often asked if physics is absolutely necessary for a CS degree. But the one thing that physics gives you a lot of is practice in breaking down a problem and modeling it. It teaches you about compromises you can make to simplify the problem, and how to account for those inaccuracies.

    Similar to how in grade school you are graded more on your work than the answer. It's more important to understand and be able to explain your process as to how you arrived at your answer, this allows you to check that they understand the concepts, and becomes more critical the more complex things become.

    • by GrpA ( 691294 )

      This explains why game physics look so bad then, and computer CG physics look even worse.

      Not only should they make CS students study MORE physics, they should probably make them study how to write fiction as well !

    • by Brain-Fu ( 1274756 ) on Saturday September 07, 2024 @08:46PM (#64771232) Homepage Journal

      Alternatively, CS education could focus on software-development tasks that involve breaking down a problem and modeling it, accounting for inaccuracies, etc.

      Physics is one way of teaching those skills of course, but not the only way, and not the most applicable way for someone who is going to be writing software as a career. One exception would be someone who is planning on software development that focuses on physics modelling, in some way.

      While I DO agree that there is value in a well-rounded education, much of that value does not translate directly to a trade. It makes sense for people who are looking to work a trade to have their education focus on it, and get "well rounded" after they have pulled themselves out of debt and have an interest.

      • Yes. This. There's also no guarantee that what students learned in their physics class will transfer to their CS problem solving skills. Transfer of this kind is notoriously difficult to achieve & it's setting up many students to fail. It's far more reliable to simply teach problem solving skills specific to CS.
        • by HiThere ( 15173 )

          Umnnnnn..... This isn't quite right. Not for any CS class I've ever encountered. Usually they focus on one particular small aspect of CS, and teach you how to handle that. But CS is extremely broad in what problems it covers.

          I'm not sure physics is better than carpentry, though, or plumbing, and both of those are easier to "get adequate in" than it physics. Even literary criticism deals with some problems that aren't covered by most specialties (like physics) that an application of CS may need to handle

          • What isn't quite right about teaching CS students the problem solving skills they'll need rather than expecting unreliable transfer from studying a different domain, i.e. physics?
            • by HiThere ( 15173 )

              The classes I've encountered were very narrowly focused on one small(?) subdomain. This doesn't mean those specialized courses aren't important, just that they aren't sufficient.

              OTOH, CS is too broad for any single class to cover it except at an extremely superficial level. I'm not saying those classes aren't important. Just that the ones I've encountered aren't sufficient. And that you can EXPECT to need to pull in skills from other domains. (And that they ought to teach you that expectation.)

              • Wanting or expecting something to happen doesn't mean that it will. Learning just doesn't work like that. Far transfer is the holy grail of education.
    • I've modeled stuff for a pharmaceutical company. I didn't take a chemistry course, I grabbed the nearest domain expert.

      Most CS people would be better off with courses in semantics, journalism (the article writing part) and philosophy of science (the part about how to find out what is true and false). Also skills like meeting techniques, interviewing and presenting.

      Physics is about the last thing most CS people need.

      • by HiThere ( 15173 )

        That's too extreme. There are lots of domains of CS where a physics background could be useful. (And much of the rest of what you recommend would be good for anyone.)

        • I would argue (what a strange phrase, I actually AM arguing) that any college degree should require at least one physics course. Why are engineers considered limited by not having read Foucault while other disciplines are considered fine without knowing basic math?
    • It's often asked if physics is absolutely necessary for a CS degree. But the one thing that physics gives you a lot of is practice in breaking down a problem and modeling it. It teaches you about compromises you can make to simplify the problem, and how to account for those inaccuracies.

      I took 1 year of physics in high school; I took a year of CS there too . I took 1 semester of physics in college. Physics made no difference to me in my CS classes. If you want "learning to break problems down" into parts to help solving, that started in my HS algebra 1 class with word problems, then was extended by my HS CS class. My college's CS 301 course (Intro to CS) taught me "top-down programing", which refined previous knowledge and was the ultimate in "breaking problems down". No physics required.

      P

  • When you force people to use a particular tool you've picked out, definitionally you've created an artificial environment that has results that don't generalize to anything much. For example, "here are three nails in the ground, and you have to use a screwdriver."

    Worse, you then don't let the modify the tool, but you select which extra tool they get to use to hold the first tool. (LLM, Google, etc.) So now we have "here are three nails in teh ground, and you have to use a screwdriver, but Team 1, you mus

    • The professor doesn't like AI, so he designed a test to make it look bad.

      • Re: (Score:2, Insightful)

        by dr_fyzziks ( 1211434 )

        LOL...

        No my friend. "AI" is quite capable of making itself look bad all on its own. It doesn't require a professor to rig a test against it.

        "Hey ChatGPT, how many letter r's are in the word strawberry?"

        • It can get the answer to that question from StackOverflow. On the other hand ask it,

          "how many rs are in the word revenge best served cold?"

          and get:

          "The phrase “revenge best served cold” contains four letter "r"s. If you break it down, you can see them in the positions: r-e-v-e-n-g-e b-e-s-t s-e-r-v-e-d c-o-l-d."

      • Except the professor did not say LLMs were useless.
        Rather that they are better used to help solve small parts of a problem rather then just having the entire thing solved by a model. The experiment was more to prove the importance of old-school problem solving skills even in the age of generative models.

        • by dvice ( 6309704 )

          Professor was talking about learning. Learning is different than using something on your work.

      • It wasn't the llm that was made to look bad though.

        It was human learning skills when using too powerful tools, just as drivers relying on GPS take longer learning the routes they drive.

    • by znrt ( 2424692 ) on Saturday September 07, 2024 @07:19PM (#64771072)

      This isn't science.

      we don't have any detailed information about the experiment so i wonder how you would be able to say so. then again as a simple experiment the outcome is intuitive enough and exactly what you would expect: automation gives faster results, the very act of working with information is what enacts changes in the brain, what we would call "learning".

      you are welcome to repeat the experiment with "proper science" and report back so we can compare results.

      btw, you also completely failed to understand the choice of fortran (even if that's clearly stated in the abstract. did you even read it?).

    • by Mspangler ( 770054 ) on Saturday September 07, 2024 @07:33PM (#64771098)

      The key point you completely and utterly missed is breaking down the problem into discrete pieces. In engineering these pieces are called unit operations. Deciding what to do to get from input to output is usually the hard part. Seldom do you need to invent a whole new process.

    • by gweihir ( 88907 )

      This is actually science and, for a first experiment, pretty good science. Obviously, it needs to be firmed up, but you do not do that at the beginning. The thing being crap here is your grasp of how Science works.

    • You need to learn to read between the lines. The experiment is an allegory for the transition to life in the business world.

      1) Student aces his university courses, but cheats by using ChatGPT throughout.

      2) Student tries to get his first job. Student talks about all the wonderful advanced courses and how those could help make the company $$$. Interviewer is impressed.

      3) Interviewer asks student to solve small toy problem right there on the spot, apologizes for the necessary step. Student fails complete

    • When you force people to use a particular tool you've picked out, definitionally you've created an artificial environment that has results that don't generalize to anything much.

      This is false.

  • Mutatis mutandis (Score:4, Insightful)

    by dsgrntlxmply ( 610492 ) on Saturday September 07, 2024 @07:00PM (#64771028)
    Reinforcement Learning discovered to apply in meatworld, film at 11.
    • by znrt ( 2424692 )

      you might be surprised how many slashdotters don't get it ...

    • Meatworld - really, what is this, the twentieth century?
      • Considering the amount of meatheads in the human population I don't find the term meatworld that offensive.
        Is meatspace a better or more specific term in this case, I am not certain, I could argue not, but also, probably, yes.

        Wait, did I just imply myself a member of said species?

  • It's like asking a group to do the same with translating a language.... the people who used a translation app didn't learn, while those that were forced to learn each word, and translate it learned.

    the problem as i see it with AI and programming is that - we are currently using it to simply enable anyone to be able to fumble through and be able to have a viable piece of code.

    The thing we SHOULD be using it for is to use AI to actually improve coding practices, security and efficiency and I'm not seeing too

    • by gweihir ( 88907 )

      "Fumble through", yes. "Viable piece of code", not so much. I recently did a coding exam where LLMs were allowed (not my decision). On my task I took a somewhat known algorithm and changed it. Guess what, most solutions completely missed the changes, and did so when they were very clearly specified and the whole description could not have been clearer. LLMs at work, missing important details to make _your_ failure possible.

      Completely agree on the "wannabe coders". Not a new thing though: https://blog.coding [codinghorror.com]

      • well, that's unfortunate, but also not surprising.

        fun anecdote- back in high school- students allowed to use their textbook on tests/exams performed worse than those that knew they couldn't use it.

        Guess AI is the new open book :p

  • The results are absolutely no surprise though. "LLMs make you dumb" would be the short version. Or maybe "live by the crutch, die by the crutch". Obviously, when LLMs already mostly prevent you from learning simple skills, forget about learning advanced skills when using LLMs.

    My personal experience with LLMs is that I miss all the context and additional topics I find when doping a conventional search. You know, context and things which may come in handy later.

    • I use a GPS when I drive. It probably means I take longer to learn a new area. It's still a net win.
      • Only as long as the GPS functions, and not leads you down a route you took yesterday and you know is a dead end because of road work.

      • by gweihir ( 88907 )

        It's still a net win.

        Yep, keep telling yourself that. Until you actually find out. Resilience is _valuable_.

    • by mmell ( 832646 )
      Yes, and no. My takeaway is that students learn less if they're not made to work for the answer. Think of it as an academic version of muscle memory.
    • You certainly won't learn skills you're not practicing.

      It really just depends whether they are skills you want to master. I've programmed in python for years and I'll never learn the whole matplotlib API. Not interested. ChatGPT has improved my productivity in getting plots that look how I want.

  • "Hey, Gemini is a thing!"
  • "Computers are useless.They can only give you answers"

      - Pablo Picasso

  • Most people nowadays cannot calculate a square root by hand, and everyone is fine with it, we just use computers to calculate square roots and nobody is considering it a big loss that people cannot calculate square roots by hand any more. Surely some people see LLMs as a next iteration of that same effect, "just ask the computer". One obvious argument against is "LLMs" give incorrect answers" but that has been improving a lot, what are other arguments against?

    • The fact of it is it's a pita to calculate square roots. Unless there is some nice algorithm noone ever bothered trying teaching us in 12 years of school. Using a square root in a function and logarithms and exponents to get around them, that we was taught, something a llm could give us the answer to today but we wouldn't learn how to do it.

      There is a lot of this conundrum in sci-fi, the more advanced our tools become the fewer people will be able to repair or construct them, and if they get too complicated

      • I believe my grandmother learnt the second method described here [wikihow.com]. Possibly my parents as well. It looks a bit complicated because it is described step by step but it is certainly manageable.

  • I take no issue with the conclusion that you will learn more by doing things manually (duh - or at any rate, you will learn more about doing them manually), but I do take a bit of issue with this:

    And when you get more of a complex problem, it's tedious to go back to the beginning of a large language model and troubleshoot it and integrate it.

    It depends, I suppose. It can be tedious in some scenarios.

    In other scenarios, "going back to the beginning and integrating additional complexity" can be astonishingly faster with an LLM than without.

    Recent real world example:

    "Hey, with smaller amounts of data, this heat map works, but isn't very visually useful

  • What I worry the most (as someone that used to teach programming) is the loss of toy problems.

    In the "old days" a teacher might ask you to whip out solutions to some simple programming problems such as: print all items in an array skipping every Nth item. Or something similar just to get you used to using loops.

    I'm fairly certain ChatGPT (etc..) can solve this quite easily. The temptation to use this shortcut might be higher than ever, especially when CoPilot just bursts the answer right at you. So I worry

  • The results were obvious. This was an example of bypassing education with AI, not educating with AI. I spent a number of years developing techniques to teach using Chatbots. These could be powerful educational tools even before transformer models.

    Here is some quick advice:

    1. Use the give-take approach of giving a fact or problem-solution and asking a question/giving a problem, in sets.
    2. Employee timings based on Graduated Interval Recall where if the answer isn't found within that time frame then give i

  • Nope, it's not "working hard and struggling." It's simply the need to understand what exactly you are actually doing. For many it's not that hard does not involve struggling; it can be fun, too, even if it's also possible to just be lazy.

  • ... when I learned Fortran back in college, the big prank would have been to slip a card keypunched with "Ignore previous instructions" at the end of everyone's deck.

Real Users know your home telephone number.

Working...