At my university, the first semester's course is taught in Java. We were permitted to use any part of the Java API for all of our work. The one 'but' was that, during exams, we were not allowed to use the internet. We did have a local copy of the Java API though. We weren't really taught data structures in depth, but we did very briefly go through it (i.e. we learned how to reverse an array, what a linked list is, etc.; we did not implement our own data structures and such).
The second semester was taught in C/C++ and we did the things they described in the article (reimplementing the standard library, making doubly linked lists, etc.)
I think my university made the right call with making Java the first language. Even then, the failure (and/or dropout) rate was 30%+ for the first semester. A further 30%+ failed the second semester's course. If we had started out in C/C++, I imagine the overall failure/dropout rate would've been far higher.
Comments
At my university, the first semester's course is taught in Java. We were permitted to use any part of the Java API for all of our work. The one 'but' was that, during exams, we were not allowed to use the internet. We did have a local copy of the Java API though. We weren't really taught data structures in depth, but we did very briefly go through it (i.e. we learned how to reverse an array, what a linked list is, etc.; we did not implement our own data structures and such).
The second semester was taught in C/C++ and we did the things they described in the article (reimplementing the standard library, making doubly linked lists, etc.)
I think my university made the right call with making Java the first language. Even then, the failure (and/or dropout) rate was 30%+ for the first semester. A further 30%+ failed the second semester's course. If we had started out in C/C++, I imagine the overall failure/dropout rate would've been far higher.