• @lthlnkso@programming.dev
    link
    fedilink
    51 year ago

    I think this is a good question and answer in the sense that it reveals a fundamental misunderstanding on the part of the student - exactly what you hope an exam would do! (Except for how this seems to combine javascript’s .length and python’s print statement - maybe there is a language like this though - or ‘print’ was a javascript function defined elsewhere).

    This reminds me once of when I was a TA in a computer science course in the computer lab. Students were working on a “connect 4” game - drop a token in a column, try to connect 4. A student asked me, while writing the drop function, if he would have to write code to ensure that the token “fell” to bottom of the board, or if the computer would understand what it was trying to do. Excellent question! Because the question connects to a huge misunderstanding that the answer has a chance to correct.

    • @MrRazamataz@lemmy.razbot.xyz
      link
      fedilink
      English
      21 year ago

      For reference the “language” used in the exam would probably be Exam Reference Language (OCR exam board specifically, which I believe this question is from) which is just fancier pseudocode.

    • AggressivelyPassive
      link
      fedilink
      21 year ago

      Teaching complete “clean slates” is a great way to re-evaluate your understanding.

      I’ve had to teach a few apprentices and while they were perfectly reasonable and bright people, they had absolutely no idea, how computers worked internally. It’s really hard to put yourself in the shoes of such persons if it’s been too long since you were at this point of ignorance.

      • Captain Aggravated
        link
        fedilink
        English
        11 year ago

        I forget which one, but one of my flight instructor textbooks said “to teach is to learn twice.” And BOY HOWDY is that accurate.

        You will find no better teacher of expert aeronautics than a brand new student. They will show you a new perspective, every single time.

        • @abbadon420@lemm.ee
          link
          fedilink
          11 year ago

          Second this. I’m a teacher aid and I get to fix student’s code for students who are not technically inclined. It’s so much fun and I’ve learned so much McGuivering all that shitty mess together.

  • @treechicken@lemmy.world
    link
    fedilink
    51 year ago

    It’s obviously:

    Traceback (most recent call last): File “./main.py”, line 2, in AttributeError: ‘str’ object has no attribute ‘length’

  • @silasmariner@programming.dev
    link
    fedilink
    2
    edit-2
    1 year ago

    They missed out the context code:

    trait DoW { def length: FiniteDuration }
    object Monday extends DoW { override def length = 24.hours }
    ...
    implicit def toDoW(s: String): DoW = s match {
     case "Monday" => Monday
    ...
    }
    var day: DoW = _
    

    (Duration formatting and language identification are left as an exercise for the reader)

  • @dragontamer@lemmy.world
    link
    fedilink
    English
    0
    edit-2
    1 year ago

    Is it wrong that I’m stuck trying to figure out what language this is?

    Trying to figure out what string.length and print(var) exist in a single language… Not Java, not C# (I’m pretty sure its .Length, not length), certainly not C, C++ or Python, Pascal, Schme or Haskell or Javascript or PHP.

    • mox
      link
      fedilink
      1
      edit-2
      1 year ago

      That recurring puzzle is among the most interesting aspects of this community, IMHO.

    • @Minotaur@lemm.ee
      link
      fedilink
      -11 year ago

      I’m very much guessing that this is just supposed to be a type of pseudocode given the context and vagueness of it.

      It’s a big reason why I really dont like pseudocode as instruction to people learning the basics of what programming is. It made more sense 20 years ago when programming languages were on a whole a lot more esoteric and less plain text, but now with simple languages like Python there’s simply little reason to not just write Python code or whatever.

      I took an intro to programming class in College and the single thing I got dinged on the most is “incorrect pseudocode”, which was either too formal and close to real code or too casual and close to plain English.

      It’s not a great system. We really need to get rid of it as a practice

        • @1rre@discuss.tchncs.de
          link
          fedilink
          01 year ago

          I mean once you get beyond bash-like scripts python is esoteric as fuck, adding oop to what is essentially a shell is a terrible idea

          That said, there’s plenty of languages with good syntax that is still good when you get into more complex stuff (modern C#, scala, kotlin and more)

          • @Minotaur@lemm.ee
            link
            fedilink
            -1
            edit-2
            1 year ago

            I think you’re missing the forest for the trees here pretty heavily.

            Yes, Python has some goofy aspects about managing it while performing high level, in depth tasks.

            This is a post and a comment chain about pseudocode being taught to people who likely just learned what a “programming language” was several weeks ago. Essentially no one taking the GCSE knows what “bash-like scripts” even means.

  • @stoly@lemmy.world
    link
    fedilink
    01 year ago

    I wonder if day length is given separately in a table prior to the question? I’m not sure what they wanted except maybe seconds?

      • r00ty
        link
        fedilink
        01 year ago

        I’m not really a fan of this kind of question. Especially if there’s enough questions that time will be an issue for most. Because at first glance it’s easy to think the answer might be the length of a day.

        There shouldn’t be a need to try to trick people into the wrong answer on an open question. Maybe with multiple choice but not an open answer question.

        • @RagingRobot@lemmy.world
          link
          fedilink
          01 year ago

          I get your point about it being a trick question but I think in this case it’s pretty reasonable that you would see code like this in real life. Where the programming metaphor and your understanding of the real world clash. It’s a very important skill to be able to spot the difference.

          • @onlinepersona@programming.dev
            link
            fedilink
            English
            -11 year ago

            The compiler or interpreter does that for you. There’s no point in these “gotcha’s”. They are cute brain teasers that belong on those useless “are you a programmer” quizzes you find on random meme websites, not an exam.

            CC BY-NC-SA 4.0

            • @RagingRobot@lemmy.world
              link
              fedilink
              0
              edit-2
              1 year ago

              In the error shown a compiler would be just fine and run as usual but the person programming it would be expecting a different result so a compiler wouldn’t do this for you since it’s a logical error and not a syntax error.

              • @onlinepersona@programming.dev
                link
                fedilink
                English
                -11 year ago

                If it’s a statically typed language and x is of type Date, it’s for sure throw a type error when trying to assign a string to it. If it had autoboxing / auto type conversion from String to Date, length could return a number or a string.

                If this were Javascript on NodeJS, it would fail at print(x) because that doesn’t exist in JS. If it were Python it would fail at x.length because that has to be len(x). And so on.

                If this were all to pass, at the latest at runtime, when the programmer sees the output “6”, they would know something’s up.

                As I said, cute, but worthless test.

                CC BY-NC-SA 4.0

    • dog
      link
      fedilink
      -1
      edit-2
      1 year ago

      Most date libraries count to 23h 59m 59s then roll over to 00h 00m 00s. So the answer is 23 hours, not 24.

      Edit: I’m big dum dum. It’s asking string length of “Monday”, thus 6.

  • jlow (he/him)
    link
    fedilink
    01 year ago

    Are they using a red pen to write the checkmarks for correct answers to make it confusing but logical at least?

    • @blindsight@beehaw.org
      link
      fedilink
      11 year ago

      Grading in red is generally avoided, nowadays. Red is closely associated with failure/danger/bad, and feedback should generally be constructive to help students learn and grow.

      I usually like to grade in a bright colour that students are unlikely to pick: purple, green, pink, orange, or maybe light blue (if most students are working in pencil). Brown is poo. Black and dark blue are too common. Yellow is illegible. Red is aggressive.

      Anyway, I’m guessing they just graded everything in green. The only time I’ve ever graded in more than one colour was when I needed to subgrade different categories of grades, like thinking/communication/knowledge/application. In that case, choosing a consistent colour for each category makes it easier to score.

  • @Miaou@jlai.lu
    link
    fedilink
    -11 year ago

    The amount of people nitpicking about the brand of pseudocode or arguing the question is tricky reminds me of some coworkers, and not the good kind.

    If you belong to the above category, try to learn some new programming language / read about some algorithm descriptions (not implementation) and go out take some sun. The question is super intuitive if you’re not stuck to a single paradigm or language.