U mnie na studiach raczej żadne przedmioty uczące języka programowania, nie uczyły go wystarczająco dobrze. Przedmioty takie jak: Wstęp do programowania, Programowanie w języku C, programowanie w języku C++, Programowanie w języku Java.
Ale za to przedmioty, na których trzeba było używać języka programowania, wymagały znacznie więcej wprawy niż było wymagane do zdania tych powyższych :] Np. Mikronapędy w systemach komputerowych, Algorytmy Genetyczne, Metody numeryczne, Matematyka dyskretna, Systemy wbudowane.
Nie żebym ja miał z tym problem, bo ogarnąłem kilka języków programowania jeszcze przed studiami. Ale ludzie, którzy liczyli na to, że studia nauczą ich programować, się przeliczyli i większość ludzi na roku wybrała specjalność sieci komputerowe, żeby ograniczyć ilość programowania.
Wstęp do programowania co prawda mieliśmy w języku Pascal (jakieś Turbo Delphi), ale prowadzący całkiem poważnie traktował przedmiot i zwracał uwagę na styl programowania - wcięcia, przecinki, odstępy, nazewnictwo zmiennych, procedur itd.
Język C był prowadzony równolegle z Algorytmami i Strukturami Danych, więc mogliśmy teorię poćwiczyć w praktyce, pod nadzorem.
Na Programowaniu w języku C++ można było sobie trochę uporządkować wiedzę o programowaniu obiektowym.
Javę kiepsko wspominam... Prowadzący nam np. pokazywał wszystkie sposoby parsowania XML :D
Na Systemach wbudowanych obsesyjnie ćwiczyliśmy implementację maszyny stanów razem z dokumentacją.