Convincing Colleges to Upgrade Their Classes?
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?"
It's not about whether or not you have experience in the latest tools and technologies. It's whether you have the fundamentals in place to allow you to apply that fundamental knowledge to any other system.
In the specific case of serial interfaces, there really isn't all that much different between RS-232, RS-485, and USB or Firewire. They are all serial interfaces that employ the same fundamental concepts. In the real world you'll have to apply that knowledge to any number of serial interfaces.
The same logic can be applied to a discussion yesterday about using MS or open source programming environments in a CS department.
When it comes down to it, the stuff you are learning is the same as all the modern interfaces. The same concepts, not much different. Sure, USB is a bit faster than 56k serial/RS232. But in the end, having the *tools* it takes to learn the stuff you will in the are those that would enable you to learn what is behind USB and Firewire with relative ease. Hell, at least half the class (probably a lot more) will probably forget the information out of lack of it being useful down the line.
Eventually, USB and FireWire may be what is taught in that class, provided they stand the test of time like *MODEM and RS232 have.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
...but I do remember it's fairly different from standard TCP/IP. Which would make it quite a useful platform to teach concepts, as there would almost certainly be a dedicated TCP/IP class in most curriculums anyways. It's good to demonstrate different (if unusual) concepts.
This is why CS curriculums include not widely used in industry languages such as LISP; just because they do things radically different.
You can teach fundamentals with Cobol and Logo too.
.NET, firewire, usb, irda, would hopefully give you a better chance of getting a decent job than one still using older technology.
A school teaching the 'fundamentals' using newer technology, like php,
Put another way, the students can easily think as fast as a CCITT v.21 connection (thats a 300 baud dial up connection) and actually follow the modulation / demodulation routines, convert each ascii character from an 8 bit string of 1's and 0's to an actual character in real time. That's like 30 per second, no problem. Actually follow the train of computer actions from sound on the telephone line to characters on the screen in their head.
... but it becomes no longer technology you understand, can trace in your head through the steps, and more of black box magic.
Crank the speed up slowly, give the student a chance to listen to the differences and the good students will be able to differentiate between connection speeds by listening to the modem connect. Good students should be able to follow the traffic up through at least a 2400bps connection - after that it is a little difficult to follow individual byte traffic and all blurs together.
Crank it up some more and you can move 5000 bytes of information a second through the same channels - but you have lost the ability to relate to what is happening.
Crank it up to USB and 1394 interfaces and sure you are moving 1Meg/second or more
Bingo - the University isn't looking to put out six week wonders that can slap together objects from the MFC and VisStudio.NET, they want to put out engineers, scientists that can look at the binary dump of an executable and see where the code makes an unexpected jump to the end of the code listing (generally slop space of nulls) after the literal table and starts executing code that was not put there by the original compiler (I am discussing the way virus code overlays regular code in regular executables, of course.)
L/Nimon - I'm not disagreeing with you, this just looked like a good place to state my opinion.
Glonoinha the MebiByte Slayer
It's basicly the same here at Vermont Tech. Granted I think that RS232 and XMODEM are still relevant, as they're SIMPLE. Also RS232 is still widely used, and while XMODEM may be garbage it is still the basis of many other protocols and is easy to understand. At least I thought so. I got in an argument with a professor once, as a lab assignment he asked us to connect two computers with a null modem, set the link to 7 bits, and transfer a file using XMODEM, in that order. I told him XMODEM doesn't work over a 7 bit link. He told me it does. It took me about a half hour to convince him that he was wrong.
After putting intense pressure on this same professor, he did spend a couple of days at the end of the class talking about USB, but it was uselessly superficial. It would have been far more beneficial for us to have done some USB programming in lab, or something.
It is hard for schools to keep up with all of the modern hardware and software and protcols, as the industry moves to fast. But why should they keep right on the bleeding edge? While RS232 may be old, learning about RS232 teaches you the PRINCIPLES of communication, thus better equipping you to learn new interfaces. The same goes for XMODEM. USB and FireWire are pretty fucking complex protocols to jump right into when you haven't covered any time of communication standard before. But I think that considering how ubiquitous USB is becoming, it should absolutely be included in the curriculum.
On the other hand, there's no excuse for teaching TokenRing. For the love of god, spend that time teaching ethernet.
-73, de n1ywb
www.n1ywb.com
if it wasn't for the students.
I teach two undergraduate courses. I know what it's like to have students complaining about the content of a course, and I have two comments about this topic.
Firstly, changing what is taught in a course is very very very very hard work, and a course that has been restructured or had its content changed is very very very likely to have problems with said new content. It is simply not practical to keep updating a course to deal with new technology. Once a course is stable, it is far better to leave it that way. Also, the staff teaching that course must spend time doing research and likely supervising postgrad students. They must do this to keep their job and to maintain the reputation of the university.
Secondly, universities are not vocational training institutes. University teaches the basic theory and concepts behind the technology, and teaches students how to learn these concepts. The student should then be able to apply these theories and concepts in an employment situation.
If you want to learn how to use new technology solely to apply those skills to a job, go to polytech or do a training course. Don't sit around whining to the course instructor, because frankly he probably knows a hell of a lot more about how to run a course than you do.
If you want to learn how to fly a 747, I'm betting there are about a zillion more things that you have to do before even getting to taxi to the runway, as compared to a cessna.
On the other hand, if you want to learn how to program by learning C#.NET, all you need is notepad and a compiler. In other words, the existence of advanced stuff won't get in the way of the basics, and in the meantime, you're learning modern syntax and modern thought patterns.
Not only that, but remember that learning the syntax is vital to becoming proficient -- and employable. You are much less likely to be asked to "forget" Java/C++/C# than, for example, lisp or cobol.
- a.c.
I don't know about Token Ring, but RS232 is all over the place in industrial hardware like barcode scanners and other non-PC hardware. I think it is much simpler to program both for the programmers and the hardware designers. Also, remember that Intel came up with USB to sell processors because USB is a total CPU hog as compared to FireWire. So, while your PC does not have a problem with this now, certainly industrial hardware does not have the infrastructure on board to deal with USB. So, I think the appropriate thing is to talk about RS232, USB, IrA, BlueTooth, and WAP. You want BlueTooth because it is going to be in all cellphones, hence proliferate into everything else. You want WAP because for things where BlueTooth is too slow, you will want a higher-speed wireless system. For instance, you could have a WAP enabled Digital Video Camcorder that automatically pops up a recording window when you start recording, all without any wires!
My DVD and Game Collection Tracking L
When you first learn math we don't nursery school / kindergarden with "Let Delta be a derived functor mapping abelian catagories...."; you don't learn 20th century math at all. Rather what you learn is:
counting -- a technology that is certainly tens of thousands of years old
arithmetic -- a technology that is many thosands of years old and was fully developed 5000 years ago
algebra of one variable -- a technology that is a thousand years old
geometry of 2 dimension -- a technology that is over 2000 years old.
And if you are really good at highschool you learn
calculus of one variable -- a technology that is over 300 years old
By college the undergraduates make it up to about the civil war.
____________
There is a difference between education and vocational training. Education teaches you how to evaluate information and how to learn new information. Vocational training teaches you specific information for a specific field. There goal is to teach concepts not technologies.
What you are learning are very simple hardware / software interfaces. Why use complex interfaces of modern hardware that confuse the issues on an academic course? Leave that for vocational schools.
Computer Science is not job training. If you want job training, take a CISCO or Microsoft certification class.
A good computer science program will teach you very little that is "practical"; it is expected that you can pick up C++, Java, or x86 assembly language on your own when you are done. If you can't, or if you don't want to, you are enrolled in the wrong field of study.
I wish more people made this point. Working on free software projects is in many ways better for your skills than any paying job could ever be. You often get to work with people far, far, far more experienced than you; you get to ask questions; you get to toy and experiment with different methodologies. If you screw up, you can go back to the drawing board, learning from your mistakes. And, you get to play with all the new toys and cherry pick from the old toys. You learn about tradeoffs in different tools based on their technical merits alone, not on the whims of some manager who was sold on something because he got a great steak dinner from a vendor rep.
In the commercial world, you're often given a project timeline and framework handed down from your managers, and a product from sales that could only exist in the imagination of somebody living on mars. And forget about learning from your mistakes. Your mistakes become the bedrock of the product!