bousozoku said:
I've yet to see an introductory course in Computer Science that doesn't require some sort of programming. Hard choices apply. They choose a language and they typically choose a platform that is available at the school. It's usually chosen by someone else other than an instructor and instructors are chosen who can fill the requirements. They chose Windows and Java for this one, apparently. The instructor can handle those requirements supposedly. It's not necessary for her to have UNIX or Mac experience, also apparently. It is necessary for her to fulfill the requirements of the course.
It's nice to say that it's not trade school but a large number of programmers graduate from a Computer Science course and stumble through building visual interfaces for software. Software is full of pathetically bad interfaces because smart people didn't know what they were doing and just figured it out. Mac OS X itself has reasonably good design people and programmers to do the rest. Windows and open source software is much less reliable.
It's good that you've found a job that is more directly compatible with your training. Your experience isn't unique but not everyone gets into such a position.
I wasn't implying that there shouldn't be programming in an entry-level course. Quite the opposite, I think you have to program to learn the concepts. Most people who are good developers are also learn-by-doing types of people. I was just saying that locking into a specific platform is bad, and by platform I mean hardware/OS. While Java may or may not be a good language to introduce the fundamentals of computer science, at least it supports the ability for students to work on any of a variety of platforms. (So does C, C++, ML, Python, etc. etc.)
You're quite right that the teacher doesn't always get complete -- or any -- control of the curriculum. But at my school at least, the curriculum was controlled by nobody other than the Department head (who is always a faculty member) and perhaps other members of the faculty. This is a person who is able to shape the entire curriculum, so it makes sense that they impose guidelines on how specific courses should be taught. But this person should also see the bigger picture and focus on continuity through the classes and a progression from fundamentals towards more specialized subjects.
I agree that visual interfaces are often poor, probably for the exact reason you state. But like you say, interfaces should be designed by interface designers -- people who understand the fundamental science of computer interfaces. I think it's a great idea for schools to offer a course like that, as long as it is actually teaching
ideas about interfaces and not just a particular tool for building interfaces. Think about it -- which one is real learning and which one is just training?
You misunderstood what I said about my own situation. I
did not have any training in this framework that I now use daily. I was trained to use the tool by my company in the first couple weeks on the job, in much the same way that somebody is trained how to submit timesheets. I never took a class on this framework in college, just like I never took a class on how to make timesheets. But like I said before, the fundamental concepts that I learned in school are absolutely crucial prerequisites for learning this framework. Without an understanding of the basics of computer architecture, for instance, I would be totally lost.
I guess what I'm saying is that this comes down to a difference betwen learning and training. College is for learning, not training. You can be trained on the job if necessary. In fact, if you're just coming out of college most businesses expect that you will need training. Keep the training in college to a minimum; i.e. this is how you compile a source file, this is how you run an executable, etc. If you do it right, you get the added benefit of being platform-agnostic.
At my school we spent approximately 30 minutes covering this type of stuff on the first day only...anybody who needed further training was extended an invitation to lab groups or office hours to learn how to do this stuff.