783
Exam Answer (programming.dev)
you are viewing a single comment's thread
view the rest of the comments
[-] stoly@lemmy.world 19 points 7 months 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?

[-] Akrenion@programming.dev 103 points 7 months ago

It's the length of the string. The number of characters is 6. It's a play on words and a question.

[-] stoly@lemmy.world 15 points 7 months ago

Oh wow. Thanks

[-] r00ty@kbin.life 8 points 7 months 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.

[-] CanadaPlus@lemmy.sdf.org 25 points 7 months ago

It relies on critical thinking (meaning thinking about your own thinking), basically, and most students aren't very good at that.

[-] Couldbealeotard@lemmy.world 7 points 7 months ago

This doesn't rely on critical thinking. It just relies on understanding what ".length" does, which would've been previously covered in the lessons.

[-] CanadaPlus@lemmy.sdf.org 2 points 7 months ago* (last edited 7 months ago)

Well, both. If you rushed through without recalling that length has specific meaning relative to strings, even though you do know that, that's a critical thinking failure. But yeah, not knowing strings could do it too.

[-] Couldbealeotard@lemmy.world 3 points 7 months ago

If you didn't know the answer, it's a critical thinking exercise? Not at all.

Answering this question relies completely on understanding programming. A correct answer cannot be reached without an understanding of programming.

[-] CanadaPlus@lemmy.sdf.org 1 points 6 months ago* (last edited 6 months ago)

A correct answer cannot be reached without an understanding of programming.

Yes. It does not follow, though, that knowledge of programming always leads to a correct answer. Since you seem like someone who might appreciate a formal logical description, you are affirming the consequent here.

Again, without sufficient critical thinking one might just miss the detail that "Monday" is a string and not a custom unit-of-time object, inheriting from Day.

[-] Couldbealeotard@lemmy.world 1 points 6 months ago

But you can only mistake it as a custom object of you understand how coding works. I'm not saying an understanding will prevent you from being wrong, I'm saying having critical thinking will not reach the answer if you don't have an understanding.

[-] RagingRobot@lemmy.world 19 points 7 months 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 2 points 7 months 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 8 points 7 months ago* (last edited 7 months 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 2 points 7 months 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

[-] Car@lemmy.dbzer0.com 29 points 7 months ago

I’m assuming they wanted the literal length of the string

[-] stoly@lemmy.world 11 points 7 months ago

That seems to be the consensus.

[-] zarkanian@sh.itjust.works 1 points 7 months ago

Naw, they wanted the metaphorical length. Computers are great at metaphors.

[-] CrazyEddie041@kbin.social 19 points 7 months ago

Conversations about language aside, the error is that "Monday" is a string with a length of 6.

[-] nathanjent@programming.dev 6 points 7 months ago

What is the type of the variable day though? As it is we have to make multiple assumptions, based on popular programming languages, about the internals of the string type and the print function to assume that it prints "6".

[-] ripcord@lemmy.world 9 points 7 months ago

There is a fairly good chance that there has been more info presented in the class than we have been given here.

[-] morrowind@lemmy.ml 1 points 7 months ago

That's the variable name, not the type

[-] dog@suppo.fi 5 points 7 months ago* (last edited 7 months 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.

[-] deadbeef79000@lemmy.nz 21 points 7 months ago

You're also mistaken about the time too. The first second of the day is 00:00:00 the last second of the day is 23:59:59

That's still a full and exact 24 hours.

[-] dog@suppo.fi 11 points 7 months ago

Yes, it's a full 24 hours, but a library doesn't use 24:00:00 to represent the last hour, it's 23:59:59. Once it hits 24:00, it rolls over to 00:00:00.

Hence my initial error of answering 23.

It's not valid, but I don't edit out erronous answers because I believe all data should be preserved, no matter how dumb it makes one look.

[-] diverging@lemmy.ml 7 points 7 months ago

00:00:00 is the 1st second of the day. 23:59:59 is the 86400th second of the day. That's 24 hours.

[-] deadbeef79000@lemmy.nz 2 points 7 months ago

It’s not valid, but I don’t edit out erronous answers because I believe all data should be preserved, no matter how dumb it makes one look.

Doing the lord's work.

I have but one up vote and you already have it.

this post was submitted on 24 Mar 2024
783 points (100.0% liked)

Programmer Humor

19386 readers
323 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS