Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The data structures and algorithms themselves should be the same regardless of what language you are using.

The bigger difference here would be C versus C++, as the language features present in the latter allow significantly more abstraction than the former. Implementing fundamental data structures in C can be very instructive but you will also spend more time on low-level details.

With Java and Python you can ignore memory management to some extent, as these languages are garbage-collected. That could also be a plus or a minus depending on your point of view. When learning the subject, it might be better to be forced to do manual memory management, to learn about the pertinent issues. And then once in "production", you can appreciate the convenience of a garbage-collected language.

When I studied EECS at Berkeley in the late 20th century, we used the following languages:

1. CS61A "Structure and Interpretation of Computer Programs" - Scheme/Lisp. Very highly abstracted from the machine details.

2. CS61B Algorithms and data structures - C++/Java. Allows "just enough" machine details.

3. CS61C Machine structures - MIPS assembly language and some C. All the machine details.

4. EECS 152 Computer Architecture - Implement a RISC/MIPS CPU and SDRAM controller using VHDL.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: