Hacker News new | ask | show | jobs
by WolfeReader 728 days ago
Why would an algorithms and data structures course be the place to teach Git? It is not an algorithm or a data structure.
3 comments

Data structures is where I learned how to write test code. It was the best way to actually get the algorithms correct.

If we had git back then.. I remember one bug that took 6 hours to find, finally found it at 8am before the 10am class. Was typing as fast as I could for the next two hours... If there any kind of basic VCS back then that would have been as easy to use - it would have been many fewer all nighters.

Which is to say, a data structures class should have students coding. There are a number of skills you want when coding, basic and common skills that just make it a ton easier. Namely, confidence and iteration speed go up a ton when you can rollback. A modern IDE can do a lot of that too..

I guess I'm becoming an old fart, I've no idea why basic and helpful tools would not be emphasized early. Debugging with those tools is one of those things you want to learn. It helps build a data/fact based approach to coding.

Yes, they divided us into teams of 4-5 and told us about valgrind which turned out to invaluable. So if that is done in some black box web interface anti cheat vendor provided CS course module today that abstracts the actual useful irl experience from the student that would be pretty sad.
Because part of the homework could be implementing algorithms and data structures. Even if that's done in pseudocode you'd probably want to expose your students to some form of VCS at that point. At my old faculty for example you worked through 1/3 of CLRS as part of the lecture and then implemented a few algorithms and data structures in both Java and C++ under the guidance of TAs.

So even students who failed the programming part and passed by acing the exam and the theoretic part knew what a shell was, what a compiler and linker did, how to find documentation and how to actually do all that on either their laptop or a provided thin client.

And most classes were set up like this. As a first semster student you'd be submitting your MIPS assembler homework using a VCS etc.

That's the heart of the matter: Schools are teaching algorithms and data structures to students who don't yet know how to code.

It's wankery, no matter what the student's future path is intended to be. You can't work in CS research either if you don't know how to use a computer.