> If standard practice in the field is to look that up, I fail to see the value in forcing you to remember how to do X so that you can later forget it and end up Googling it anyways.
I agree 100%. I also don't see the value in forcing people to memorize googleable facts. It's frustrating to see schools implement curricula like that. However, I disagree with your implication here. You're implying that because schools make you learn stupid things, everybody should just cheat. What's the point of that, exactly? You think the curricula is not optimized well, so you would rather reduce the entire institution to a diploma mill, instead of simply learning with the unoptimized programme?
> Isn't the purpose of school to train you to where you can do X for a company?
That may be true for a vocational school, but for a computer science programme at a university, it is not true at all. If you look up the stated purpose of computer science programmes, they are about educating people for the sake of knowledge itself, not to achieve an ulterior purpose like producing a useful workforce.
> Learning how to implement on optimized bubble sort? That's kind of dumb; in the real world you just use an existing one.
If you memorize a bubble sort algorithm without understanding, just to be able to repeat it back verbatim in the exam, I agree that's dumb (and it's also dumb on the school's part to create a programme that incentivizes such behavior). However, that's not the only way to learn bubble sort. You can also approach it from an "algorithm design" perspective, and strive to develop the skills needed to design and work with algorithms. That's not dumb at all. In fact, I would argue that's one of the core skills that a computer science education should provide.
> in the real world you just use an existing one.
No, you wouldn't. You would never use a bubble sort in the real world, because it has O(n^2) time complexity and it has no redeeming qualities when compared to other algorithms.
So let me get this straight: if someone at work asks you to "implement sorting for these results", you might just google "bubble sort java", copypaste code, test that it works, and ship it? And you don't think there's any value in learning what properties these algorithms have or how they work? Don't care, don't wanna learn, cheat through school, end up using bubble sort in production. Great. That's exactly the type of attitude that causes 5 minute startup load times in GTA.