Half a year ago I had a look at available programming educations. I chose this one because unlike most of the choices: The majority of the courses seemed to be about something concrete and useful; the languages used are C++ and Java which are platform-independent; later courses include developing for mobile devices and a course on Android development, which seemed modern and relevant.
Now after two introductory courses we're just starting with C++, and my programming professor seems a bit weird. He's tested us on things like "why should you use constants" and "why are globals bad" in a kind of mechanical way, without much context, before teaching actual programming. His handouts use system("pause"), system("cls"), and getch() from some conio.h and iodos that are apparently ancient according to what I've read elsewhere.
I just did a task that was about printing the "ASCII letters from 32 to 255" (huh?), with an example picture showing a table with Windows' Extended ASCII - of course I got other results for 128-255 on my Arch Linux that uses Unicode, and this isn't mentioned at all. I feel that a university should be more careful about such things.
I was looking forward to learning from experts, in an academic, rigorous way (like SICP or something). I studied math for a while and every teacher and assistant there were really precise about every detail in the courses, but this is my second programming teacher that is sort of disappointing.
(EDIT: I'm not comparing programming to math, nor am I saying that programming belongs or thrives in the academic world.
I'm saying that professors I have had in my major and other subjects have been passionate, inspiring, up to date, and really picky about details in their fields; but my programming teachers have seemed sloppy and felt depressing, which didn't fit into my image of a professor at all. I totally wouldn't mind a professor using classic, timeless tools, but it seems to me as if conio, iodos et c are not simply old but actually bad practice, and that anyone who actually enjoyed programming would use something more modern.
I was apparently very wrong with these expectations and ideas, but that's what I meant to say anyway.)
Now, question: Is this what to expect from universities or Not OK, and how do I deal with it?
(EDIT: No, I'm not worried about not becoming a bearded arch ninja programmer instantly from a few courses, that's not the problem. It's both more efficient and more fun to teach yourself these things; I am doing this for the diploma. However I was still contemplating whether it could sometimes improve the learning experience for me and other students if I bring questionable things up, or if it's better to just accept whatever's being served. If there are things that the community would consider too wrong to be taught to beginners, and if there is a constructive way to raise these things without annoying the teacher. I think I know what to do now, thank you for all answers!)
More EDIT: It seems like I should have pointed out that this is not a computer science program, it's a relatively short 3 year software engineering program where you can optionally graduate after 2 years. I have another degree and have worked and done other stuff and want this diploma so that I can work with programming as soon as possible; I am not doing a 5-6 year master, I don't have these expectations of achieving some kind of überhood through this, and I am not somehow doing this instead of working. :P
