Convincing Colleges to Upgrade Their Classes? 115
Pray_4_Mojo asks: "I'm an engineering student at the University of Pittsburgh, and I'm currently taking a required class known as 'Computer Interfacing'. While I enjoy the instructor, I find most of the material to be severely dated. We will spend the majority of the class covering RS232/XMODEM/Token Ring means of computer-to-computer communication. Almost no mention of USB, Firewire, or IRDa is made within the class. I am trying to convince my professor that this material is relevant, as these types of interfaces will be dominate in the world we future grads will be working in. As an example, I demonstrated that the keycard access system to gain access to the Interfacing Lab has a USB port for data download/firmware programming. The professor seems interested, but it seems that I need to convince the department to revise the course requirements. Has anyone attempted to modernize their CS/Engineering program and met with success?"
The new technologies are bad to learn from (Score:5, Interesting)
If you really want to learn about Firewire, do something with it for your Senior project.
Real experience modernizing curriculum (Score:5, Interesting)
As it turned out, the real problem was not teaching OOP to the students. OOP is easier to explain to new programmers than structured programming (people use real-world objects all the time - not so much real-world procedures). Half-way through the first semester, the students could implement Tetris.
The real problem was retraining the faculty. Even though they knew OOP was a good thing, it took them a while before they had internalized OOP enough to present, e.g., algorithms and data structures in an object-oriented style. No one believed that you could teach inheritance and polymorphism before you taught loops, conditionals, and arithmetic.
Faculty teaching the intro courses may be in touch with industry and research. That's not enough. The faculty need to rethink an entire course to present the right academic material in a modern, industry-relevant way. If the faculty can do that (and, make no mistake, it isn't easy), they you'll get a course the students love, that will get them a job, and that will prepare them for a strong academic program as well.
For the truly curious, the textbook [amazon.com] for that course is actually still in print, even though it depended on Borland Pascal, which is long-since defunct.
Welcome to reality. (Score:2, Interesting)
But, no matter how progressive the school is, they will still be behind the industry curve, unless they themselves are developing the technology. When you get out of school you will not have been fully educated on the latest and greatest technology. That's why you do internships and graduate work and entry level positions.
Only after you have finished learning the "legacy" stuff and then spent time in a job getting up to speed on the present day technologies, as well as getting some hands on professional experience under your belt, can you hope to be up-to-date. Then you will find that you have to spend the rest of your career "running" as hard as you can, in order to keep up-to-date.
But, here comes the biggest kick in the huevos. Every single generation of students wants/tries to change things. Evry single one. Each one seems to feel that they know better, what should be done. But, the sad fact is that, you don't have the necessary life, business, political, technical experience to be qualified to make that decision.
I'm sure that all the present students will proceed to flame me for this last statement. But, they, and you, will see in the next 10 years or so that, you really aren't qualified. Only after several years will you develop the necessary life/political/business/technical experience to be truely qualified to make decisions on changes for the future. So, for now, sit back and learn. That's what you are there for, not to run the show.
You never said but, I'll bet that at least some of the old RS232 stuff that you are learning is indeed new to you. Also, RS232 is STILL heavily used in a very wide range of technical industries and it will continue to be for some time to come.
College is not about getting a job (Score:4, Interesting)
For the first group, there is no way that you could possibly gain enough experience in 6-9 hours a week for four years. That's only about 4-6 months of professional experience (about two full-time internships if you're so lucky).
For the second group, employers are more interested in finding someone who is a good problem solver and has the ability to pick up newer technologies quickly. In a lot of ways, as an employer I'd rather have someone who learned COBOL at school for fear that they'd carry bad habits if they knew C++ or a newer language that I'd expect them to use on the job.
<Open Source Evangelizing>
Of course, working on Open Source software can give you the desired experience and prove you have the ability to learn quickly on your own
</Open Source Evangelizing>
Fake Assembly (Score:2, Interesting)
I started school at BYU this semester. I'm going into CS. The first required class had a horrifying syllabus. We were to learn about C, basic electronics, and assembly language built for a theoretical computer. I was disgusted that we would learn just about NOTHING which would be practical. I transferred out of there so fast. Now, I just hope I can get exempted from that class or take a C++, Java, or X86 assmebly course instead.
void
You wouldn't benefit anyway this time around (Score:4, Interesting)
(This reflects the situation in the UK, where academic teaching staff in Universities almost always have research commitments (and publications are used as a performance metric).
Some of the material you are working with is not so bad, either. Learning about RS232 might teach you several things that are generically useful in designing system interfaces :-
It's been a while since I've worked heavily in industrial interfacing, but I'd be surprised if USB is even relevant to that at all. Think more along the lines of RS422, 10baseT, and optical fibre (often carrying converted RS232, in fact).
I'm not particularly familiar with XMODEM, but I think it's likely to help you undersand valuable facets from the above (bandwidth/reliability tradeoffs, protocol features for catching errors, latency versus throughput, bandwidth-delay products). Token Ring seems an odd choice to me, though. After all the hardware must be tricky to get these days (or perhaps your course has no hands-on component, which would make hardware availability irrelevant).
One of the most interesting hardware interfacing things I've done was implement both ends of a mostly-symmetrical serial protocol. One end was implemented as a set of four cooperating threads, and the other as a state machine. One way of doing it was (in that case) much much easier than the other (less code and more reliable).
Re:747? A poor example. (Score:1, Interesting)
> becoming proficient -- and employable".
> That's only true if you want to be a
> keyboard monkey, and even then, how
> fast you can type is just as important
> as the syntax.
> What good is your education if it
> teaches you short lived information?
> Pay to learn the concepts. If you want
> to learn syntax, go buy a book.
> If you know the concepts,
> you can pick up the syntax of any modern
> programming language in a few days.
i *did* pay to learn the concepts, and I was almost at the top of my CS classes at the university of illinois -- not exactly a shabby institution of learning.
but guess what? i did indeed buy a book, and i realized that understanding the principles of OO and the basics of data structures and algorithms is a nice thing, but is a very far cry from being expert or even acceptable as a programmer.
there was one book in particular that had twenty-four chapters. only two dealt with syntax, which i had no problem with. it was the rest of the book that was daunting: so the other twenty-two chapters can be learned in a few days?
i'm not talking about typing speed, per se. i'm talking about comfort with the idioms and idiosyncrasies of a particular language. that was what the other twenty-two chapters dealt with. if you're comfortable with regexps in perl, that's a far cry from being comfortable with regexps in VB, or even javascript for that matter. even if you're comfortable with the
it's not a matter of being a "keyboard monkey." it's about not letting syntax get in the way of thiking.
this is the point i'm trying to make: for a reasonably smart english-speaking person, learning the pronounciation and tenses of say, spanish, is not that hard. but being FLUENT means that you have to learn the idioms of the language, and indeed attention to the details of the language become all-important.
- a.c.