173
px06
7y

Me: *uses HashMap* for a problem to count some elements*

Lecturer: why are you using HashMap?

Me: it's the best way of solving the problem

Lecturer: I haven't explicitly taught you what a HashMap is so why are you using it?

Me: Because I learn outside of what university teaches me

Lecturer: there's another way to do this

Me: enlighten me

Lecturer: iterate through the array using a nested for loop and count as you go along

Me: why the hell would I want to do that? That literally decreases the efficiency of my program by alot

GG lecturer telling me it's a better idea of making my O(n) runtime into an O(n^2) instead of complimenting my code.

Seriously what the fuck is up with the fucking education system. Since when was it okay to teach students how to completely fuck your code up and promote ways of making your code so inefficient?

Comments
  • 46
    Honestly, I’d say it depends on the lecturer, but there are way too many lecturers like this. It’s difficult for them to manage proactive students that learn beyond the classroom, yet they claim to love proactive students... those that only does what’s within their expectations that is. Is it an issue of pride, that they hope to be able to answer questions instead of being given one that’s beyond their expectations? Or is it an issue of laziness, that they wish to avoid having to explain to other students why does this one student do things differently? It’s actually difficult to respond to such a student too; should I praise him for learning things that are outside of the scope, or should I just be happy for him? That’s only if the lecturer is a decent human being for thinking about the student.

    I said a lot, and there’s more, but it’ll go on forever. What’s my conclusion? I need a rest...
  • 8
    This is exactly why I lost interest in school and most formal education.
  • 6
    I never blame the professors. When you are in an education system you are only meant to tick the check box. But if you are curious to go extra steps, go for it. The only problem would be if you were hindered to do so.
  • 8
    We first were taught to do everything without all the predefined algorithms and data structures but that was in C++ and it was to understand the basics and what goes on under the hood and after that we were introduced to those algorithms and data structures including smart pointers and told to use these over the other methods we learned because they're a lot more efficient a d safe than a data structure we write ourselves
  • 4
    I had a simmilar experience in my first year of uni. I was told i couldn't use arrays in my solution purely on the basis that he hadn't covered them in any of his lectures. I responded in my very 'go fuck yourself please' manner by refusing to attend any more of his lectures and completing the unit with a 98% aggregate.
  • 6
    One of my grads told me the lecturer said they couldn’t use try...catch in their little python assignment.

    It’s a part of the language, that’s like someone teaching you French but saying you can’t use the word “bien” in your fucking assignment.

    Sameprick said the assignment was to http scrape... but hadn’t tested it himself using a proper http request: he saved the page in the browser and file loaded that.

    The assignment’s key point was “to get the latest info from x site”... the info was delivered via Ajax, Json request with referrer blocking. It was way overboard.
  • 4
    @LogicBomb same, went for the paper, got the paper, used the paper to secure a higher salary... all the while with my “are you fucking kidding me” face on.
  • 9
    Sorry, but you are bragging too much :) just shut the Fuck up, and listen to your professor. Also, your complexity isn't O(n), but O(n log n), because you are inserting elements in a hashmap (depends on the implementation). Finally, the array version *may* be faster due to data locality. Kiss
  • 2
    I thought HashMaps were O(log2 n) lookup?
  • 3
    @Hedgepig I believe HashMaps are constant time so O(1) lookup. Because using a key would not require a search space. However in my case in as adding elements to the HashMap and counting duplicate elements so it was just linear time.
  • 3
    Okay I was thinking binary tree my mistake
  • 5
    I know the situation from both perspektives. I am a student but also a tutor for the freshmen. Sometimes as a student you think: Why does he teaches you this, when there is another better solution?
    But what the lecturer actually is trying to do is help you to get experience. You can't get experience when you don't fail and don't have events in your codinglive which burn into your memory. You will have a better memory of the improvement from the slow solution to the fast solution than the direct fast solution. I hope it is understandable what i am trying to say.

    btw: @Hedgepig
    The lookup in a hashmap is O(1) because the hashvalue will be calculated with which the field can be accessed directly.
    The O(logn) lookup is the treemap where you search with binarysearch
  • 5
    @urzq @urzq lmao no I won't listen to my professor who is still using Java 6 and has no fucking idea about what a stream is and thinks he's qualified enough to teach programming. And no HashMap get and put complexity is O(1), and if I wasn't using an implementation that decreases time then I wouldn't be posting a rant. Maybe teach yourself before being a little cuck.
  • 2
    I always appreciated professors who would focus on those kinds of horrible algorithms first, only because I could really learn how those systems worked. Then, when it came time to implement the really efficient algorithms, I could focus on the algorithm and not the basics. Additionally, I could then see why the algorithms were so much better than the crappy ways we’d been doing it before.
  • 4
    Just say "ok" and go on...you mostly go to college just to get the paper...
  • 9
    Why do everyone talks efficiency from only 1 perspective that's time complexity!!
    Efficiency by the classic definition in terms of asymptotic notation has 2 sides. Time Complexity and Space complexity. So, whenever whoever talks about efficiency, be specific to mention whether it's time or space. That's the right way when you talk about efficiency of a program.
    Many times, even O(n^2) can be better than O(n).
  • 5
    @github that's very true a Hashmap might have a good complexity in terms of access time, but uses a lot more space than a simple list ...
  • 5
    Looking at @softyCat’s reply (sorry, I’ll have to glance over the rest of the replies), he’s right in the sense that the lecturer/prof is usually not wrong. They have a role to play, to teach you stuff and answer to those above them about how things are going, and they’re pressured to make sure that things go smoothly, in many schools that is.

    As for a really shitty experience, I was once penalized in a hs math exam cause my working steps were not the same as the marking scheme, which is utterly hilarious. Told the lecturer, and I was reprimanded for it, saying that I did not follow a (nonexistent) rule that she has never mentioned in class, while you can get the same result regardless of your approach (it was logarithm, iirc).
  • 2
    @github generally speaking. Space is less relevant in cases when you are trying to solve problems because space can always be bought, however time cannot. I know this isn't the case for most real world software and calculations where both are important but trying to tackle an NP problem for instance, space isn't very important.
  • 1
    they can't love proactive students, because the slacker students get confused and butthurt
  • 3
    @px06 I do agree in the current era where space isn't a problem in most cases, people tend to think solely about time complexity and it makes the thought process such that one only things of optimising time complexity. If we look into the concept of multithreading, even time complexity fails, but we still use it since it presents a good estimation.
  • 2
    @ParkCity I don’t get why they would even care about the opinion of those slackers, since they’d be the most problematic, to the extent that they would not like proactive ones, unless if you’re claiming that these lecturers/teachers are slackers themselves.
  • 1
    I don’t know what country you’re in but a lot of it has to do with the Prussian school system that was imposed on the world during the Industrial Revolution. There’s a set way to do things at a set time and an overseer makes sure you do it in that way at that time. For the world to progress again, we have to do away with that and put the initiative and power into the hands of the learner.
  • 0
    @Japorized no, it's not the teacher's choice. they have to respect students even if they slack off and bottleneck the education in a class
  • 0
    @ParkCity They have to respect the students only as a person. Would you respect someone who can’t even manage themselves and cause unnecessary trouble for others? On another note, it’s the failure of a teacher to allow such students to just move on with their lives without learning a thing or two, or change their attitude for the better, although that just imo. Lots of parents today don’t get this, and freak out when a teacher reprimands their kids. There are unreasonable teachers, but a lot of parents freak out regardless. It’s thanks to cases like that that we’ve got shittier personalities to deal with today.
  • 0
    @Japorized yes, but teachers often get in trouble for "appreciating a proactive student" over others where i'm from
  • 0
    @ParkCity What sort of trouble?
  • 0
    What uni is this?
  • 1
    Personally I don’t agree with arguing with a teacher. Sure if you want to learn outside of class so be it, but some kids aren’t that smart or eager. Don’t spoil the lesson for the rest of the class, it undermines the teacher, meaning the other kids might think the teacher doesn’t know what they are doing.

    On top of that, the best solution might not always be the right solution. In my team nit everyone is as experienced as i am with my language and i have to make sure my code is not too complicated for them to work with. Hashmap vs array might be very simplistic here but you should understand what i am getting at. You should learn it anyway.

    And i get if you’re upset. I went through the same when I was in uni. Just learned to bite my tongue.
  • 0
    I use different methods to solve things than what we learn in school and so far no one complained about it. I had to explain why my way is better one or two times but that's it
  • 0
    I don’t like teachers that doesn’t learn from their students. In this case, maybe the teacher didn’t know you could do it that way.
    If I were that teacher, I’d tell you I’d come back to you regarding that, and then go research about what you said.

    It’s a method I learned from my father, he did that when he was teaching at a helicopter school. Whenever a student asked questions my father couldn’t answer, he’d say; “Good question, let me get back to you about that after lunch” and then actually go look it up. Because the student could actually be correct, and a good way of the teacher the learn something new/ better
  • 0
    A hashmap should be a constant look up time assuming there are no hashing collisions.
Add Comment