Slashdot Mirror


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?"

33 of 115 comments (clear)

  1. Egads! by jo42 · · Score: 4, Funny

    What next? Sneakernet?? 80K hard sectored 5.25" floppies??? Two tin cans and a string???? And this college degree is supposed to show that you are educated and get you a job in the real world?

  2. The concepts you will learn are the same... by gtwreck · · Score: 5, Insightful

    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.

    1. Re:The concepts you will learn are the same... by itwerx · · Score: 2, Insightful

      I'll second this. It costs an unbelievable amount of money (millions of dollars) to design and test a curriculum.
      You see this in other fields as well (e.g. psychology, business etc.) As long as you're getting the concepts, it doesn't matter what the mechanics of the course are based on.
      You'll learn the real-world applications of those concepts quickly enough in the real world. :)

    2. Re:The concepts you will learn are the same... by override11 · · Score: 2, Troll

      Soooo... Go to school for 4 - ? years... to learn the basics in a field, (and go into major debt doing it) then go into real world job, and are told 'forget what you learned in school, this is different'... Its the curriculum model that is antiquated. Its just not practical in many industries that knowledge advances faster than a curriculum can be made. The last thing I'm going to do is go pay to get an education about 5 year old hardware / software that by the time I graduate is not used any more! :P

      --
      No I didnt spell check this post...
    3. Re:The concepts you will learn are the same... by itwerx · · Score: 5, Insightful

      No, not at all. (Are you trolling? :)
      You are told to forget the technology which was used to convey the concepts, but the concepts are where the value is.
      Here's an example.
      If you want to learn how to fly a 747 you don't start out on one! You spend many years and tens of thousands of dollars learning on the concepts on smaller aircraft. Granted, knowing the gauge layout of a Cessna has zero relevance to a 747 but the concept of watching your fuel levels applies equally well in either case.
      So yes, when you get to 747 school they will say "forget all that other airplane stuff" but they're not really telling you to forget the concepts, just the nitty-gritty details that you don't need any more.
      Compres vous?

    4. Re:The concepts you will learn are the same... by cybermace5 · · Score: 4, Informative

      No.

      USB and Firewire are vastly different from EIA-232 and siblings.

      USB is much closer to Ethernet than it is to EIA-232. I've done some serial development and some USB development, and the USB development is abstracted from hardware by several layers; while serial is barely abstracted by one layer (in microcontrollers, if you're lucky to get a UART).

      It really is different. I would agree that students would benefit from learning more modern interfaces later on, though EIA-232 is perfect for teaching basic communications concepts. I certainly had difficulty the first time I developed a USB peripheral; it had never been taught, if barely mentioned at all.

      It makes sense now. The abstraction almost makes it easier to develop for on the PC side, and there are amazing features built right into the protocol. A simple microcontroller can change from a keyboard, to a mouse, to a joystick, or dozens of other devices with a simple change in firmware.

      --
      ...
    5. Re:The concepts you will learn are the same... by override11 · · Score: 2, Insightful

      Ok, I agree with that totally. I am just griping because I am in IT, and have been working in IT for almost 6 years now. When I look at classes offered at collages, they are all old school... C programming, I mean sheesh, when I took the A+ test, they had old Apple2E questions on it, and IRQ questions!! I tell you, I memorized IRQ usage and their associations to COM ports etc., and the only time I have used this in years is on antique equipment. I guess I am expressing my frusteration , I would like to go and take collage, but I dont see any use ATM! :P

      --
      No I didnt spell check this post...
    6. Re:The concepts you will learn are the same... by FroMan · · Score: 2, Insightful

      There are lots of concepts that come and go. And then they sneak back up on everyone. Take peer-to-peer and client-server concepts for instance. They pop back and forth in fashion. Virtual machines seem to come and go also. VM's were not started with Java you know.

      Now, token passing is a valid idea. For networks it may not be used currently, but for systems that cannot withstand collisions of any sort token passing is a valid algorithm.

      My point is that just because you cannot find a way to apply a concept does not mean that there isn't necessarily a reason to not teach it. Sometimes its much easier to teach from a lot of older hardware and such because it can be simpler, or less integrated.

      Consider if you were to try and write an OS now, it would be overwhelming because of all the details that need to be supported to make it equivalent to what there is now. Many years ago protected memory, virtual memory, gui, and many other things were not even thought up yet.

      --
      Norris/Palin 2012
      Fact: We deserve leaders who can kick your ass and field dress your carcass.
    7. Re:The concepts you will learn are the same... by itwerx · · Score: 2, Insightful

      In your position college will only be useful if the fact of having the degree impresses the right people or you want to change careers. :)

    8. Re:The concepts you will learn are the same... by kooshball · · Score: 3, Insightful
      It costs an unbelievable amount of money (millions of dollars) to design and test a curriculum.

      I'm not sure where you went to school, but I've never studied or taught anywhere that spent ANY money on designing the curriculum. And testing it? Forget it!

      Most professors are left to their own devices to cover what they like in class as long as they hit a few basic points. For instance, compare the syllabi of the same Macroeconomics course as taught by a Keynesian and a Monetarist who studied under Milton Friedman. They will look like completely different courses!

      The first course that I ever taught was a core undergraduate Microeconomics course. When I asked the chairman of the department what I should cover, he told me that I should take a look at the last semester's syllabus for ideas, but could really cover anything I wanted.

  3. Fundamentally the same stuff by RevAaron · · Score: 2, Insightful

    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
  4. I'm not fresh on TR.... by gtwreck · · Score: 2, Insightful

    ...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.

    1. Re:I'm not fresh on TR.... by sasami · · Score: 2, Insightful

      Token ring is stil around, and some newer technologies are based on it.

      Fibre Channel.

      Well, it's not a literal descendent of Token Ring (is it?). But it's certainly a loop topology. And frequently, the primary cost of deploying a Fibre Channel SAN is in training Ethernet-centric people to administer it properly. (Indeed, the nascent iSCSI market is driven less by a distaste for expensive FC switches than by an aversion to sending one's admins to FC boot camp for six weeks.)

      Incidentally... why a loop? Isn't the concept outdated? Not if you're a storage transport that needs to enforce fairness.

      --
      Dum de dum.

      --
      Freedom is not the license to do what we like, it is the power to do what we ought.
  5. You have to walk before you can run by shaka999 · · Score: 2

    These interfaces are much simplier and are a good base for moving forward. While your not likely to use them the concepts are the same AND if you go into a lab you have a reasonable chance to use one of the older interfaces.

    That said a brief discussion of newer interfaces towards the end of the class is probably relevant.

    I know when I was in college we studied the PDP-11 architecture. Well, I've never done anything on a PDP-11 and except for hobbiests I doubt you could find one BUT I do have a solid understanding of concepts that started with that class.

    --
    One should not theorize before one has data. -Sherlock Holmes-
  6. The new technologies are bad to learn from by LordNimon · · Score: 4, Interesting
    The newer technologies are much harder to learn from than the older ones. The speeds are much higher, the protocols are more complicated, and the tools are more expensive. For a beginner learning this stuff, you never want to work with the latest technologies.

    If you really want to learn about Firewire, do something with it for your Senior project.

    --
    And the men who hold high places must be the ones who start
    To mold a new reality... closer to the heart
    1. Re:The new technologies are bad to learn from by Glonoinha · · Score: 2, Insightful

      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.

      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 ... but it becomes no longer technology you understand, can trace in your head through the steps, and more of black box magic.

      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
  7. More than fundamentals by Synistyr · · Score: 2, Insightful

    You can teach fundamentals with Cobol and Logo too.



    A school teaching the 'fundamentals' using newer technology, like php, .NET, firewire, usb, irda, would hopefully give you a better chance of getting a decent job than one still using older technology.

    1. Re:More than fundamentals by m0rph3us0 · · Score: 2

      Teaching implementations is the job of trade schools not universities. I expect MCSE's and such to have to go back to school every time a new OS comes out. I would not expect the same of CS / Engineering grads. The service the uni provides is education, not job training, an increase in knowledge / intelligence just happens to make you more valuable in the workplace. Uni is not a job training centre, otherwise you would have classes like Resume 254.

  8. Real experience modernizing curriculum by nellardo · · Score: 4, Interesting
    Back in the day, in the early 90's, I was largely responsible/to blame for switching Brown University's undergraduate first semester programming course to object-oriented programming. It had been teaching structured programming, but industry at that time was following object-oriented design precepts (even if using languages like C). The faculty all firmly believed in OOP, and taught it in all upper-level courses. But it was seen as "too advanced" for beginning students.

    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 for that course is actually still in print, even though it depended on Borland Pascal, which is long-since defunct.

    --
    -----
    Klactovedestene!
  9. Poor example, but I know what you mean. by Kris_J · · Score: 2
    Updating a course is not a trival thing. Deploying new hardware, writing new course notes, finding new text books are all costly or time consuming things. Students benefit financially from stable courses as there are a greater pool of secondhand text books available. Everyone benefits from a well shaken-down course. If the fundamentals are still present and materials are still available (books and spare parts), you will be unable to convince the appropriate people to change the course.

    Meanwhile, and most students don't realise this, but you are allowed to do research of your own beyond the scope of any given class. I know you may not have the funds to pursue everything you want, but neither does the college.

  10. College is not about getting a job by lkaos · · Score: 3, Interesting

    There are two types of jobs out there: 1) ones that require experience and 2) ones that don't want experience because they want groom you.

    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>

    --
    int func(int a);
    func((b += 3, b));
  11. Boy does this sound familiar by n1ywb · · Score: 2, Insightful

    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
  12. Have never needed to.. by mivok · · Score: 2

    A lot of the courses had already been changed.

    But to higlight an example, the 3d graphics course in 3rd year is revised each year to adapt to new developments in the past year. For example, pixel shaders are taught in the current 3rd year course, and who knows what else next year.
    However, the second year introductory graphics course has stayed mostly the same, introducing the basic concepts which are applicable to more than one situation, and dont change very often.

    I would assume that a lot of the concepts, if not the specifics, would stay the same even between say RS-232 and USB. Sure, there are a lot of differences in protocol specifics, and a lot of extra features of USB (otherwise there wouldnt be much point to using it), but the general idea of transmitting a signal down the wire, and having to deal with flow control, error correction, and whatever else (now I _know_ I didnt revise hard enough - memory's failing me here).

    Of course, updating the specifics can help, but not at the expense of clouding the basic concepts, or just for the sake of something being newer and more in fashion at the moment (think replacing a C course with a java course, losing any concept of memory management with free(), and confusing students no end when they finally do come to c/c++ ). Tomorrow, USB will be obsolete, and all the specifics learnt today will also be obsolete, but the next big thing that replaces it will use the same basic concepts, have the same problems to deal with, just at a higher speed, and with more features.

  13. Fake Assembly by jasonrocks · · 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
    --

    void
    1. Re:Fake Assembly by nbvb · · Score: 4, Informative

      Then you don't understand what a CS degree is good for.

      My suggestion: Go to Chubb.

      If you start thinking in the "That's not practical, who cares" mode, you belong in a trade school.

      Sorry, I know that's not very politically correct, but it's the TRUTH.

      Now, if you want to learn real computer SCIENCE, stick it out.

      Learning assembly language for a theoretical computer is a great exercise -- you have to actually exercise that mush between your ears!

      My favorite class in CS was Theory of Digital Machines.... designing AND, OR, NOT gates, building some theoretical microprocessors .... stuff that isn't "practical", but that theory means the world to you later on ...

      Again, if you want practical, go to Chubb. If you want to learn something, stick it out ...

      --NBVB

    2. Re:Fake Assembly by g4dget · · Score: 2, Insightful
      I'm going into CS. [...] I was disgusted that we would learn just about NOTHING which would be practical.

      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.

  14. Teaching would be a great job by hengist · · Score: 3, Insightful

    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.

    1. Re:Teaching would be a great job by No.+24601 · · Score: 2, Insightful

      I think that's a shameful answer to an important issue. It appears that what you describe as very very very very hard work is simply an unwillingness to do what is necessary to keep your students at the cutting edge of their field. I understand that basic theory must be taught, and using tried-and-tested material is the easiest approach. However, it's also important to expose students to the most modern practices and tools in their field. This can mean the difference between them getting jobs, or being left in the dark. I mean not to offend you but rather to suggest that you ponder whether you are doing what's best for your students, or what's easiest for you.

    2. Re:Teaching would be a great job by i_am_nitrogen · · Score: 3, Insightful

      DUDE, you're not getting the POINT. University is NOT FOR GETTING PEOPLE JOBS!!! It's for academic enrichment, broadening your horizons, learning things because they're interesting, and simply learning how to learn. Stop complaining and either be the change you want to see in the world, or go somewhere else. Why don't you teach your own course about the latest industry standards?

      As nearly everyone else has said... it's the concepts that matter. Whether it's at 128kbits or 1mbit, a serial communication interface with a tx line and an rx line will always have the same basic concepts.

    3. Re:Teaching would be a great job by hengist · · Score: 2, Insightful
      I think that's a shameful answer to an important issue

      Not to be too flip, but this issue is a minor one. The important issue is how to deal with student feedback

      Reading your post, I think you missed my second point, which was:
      universities are not vocational training institutes

      it's also important to expose students to the most modern practices and tools in their field.

      No, it is not. It is important to teach students how to learn these things.

      This can mean the difference between them getting jobs, or being left in the dark

      I can't speak for employers, because I am not one. But, the employers who come to graduate recruitment emphasise that they want thinking individuals who can learn new things, not people who already have all the knowledge. It seems that most employers who pick up graduates straight from university will train them in the areas they need to know.

      I understand that basic theory must be taught, and using tried-and-tested material is the easiest approach

      For a university, teaching the theory is more important than teaching the practice. Using tried and tested material isn't just the easiest approach, it is the best approach. Students don't like it when you use them to debug courses. I know this from experience.

      It is so much work and so time consuming to rework a course, that by the time the course is reworked the technology the instructor is trying to incorporate is no longer cutting edge. Other problems include a lack of familiarity with the material on the part of other people in the teaching team. Also, as I stated before, the instructor will have to give up most or all of their research work to do so, which will impact the reputation of the instructor and school, and thence of the students who graduate.

      Finally, a point that I should have included in my original post - there are only a certain number of weeks in the teaching semester. If you want to cover the basics as well as the bleeding edge stuff, then the depth and quality of the material taught is going to suffer. Students (in my experience, based on the feedback I have gotten from students) prefer depth of material over breadth of material.

      suggest that you ponder whether you are doing what's best for your students, or what's easiest for you.

      What is best for students is to give them the learning skills they need to pick up cutting-edge technology, for them to have an instructor and institution with good reputations, and for them to be taught a course that is stable and problem-free. Frequent upgrading of courses will jepordise all of these things.

      Finally, I do spend a lot of time and effort eliciting feedback from the students, and in considering what they have to say. However, not everyone's suggestions are going to be acted on. One student in one presentation of a course isn't going to affect a change in that course, it's as simple as that.

  15. RS232 Is EVERYWHERE by muscleman706 · · Score: 4, Insightful

    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!

  16. Math by jbolden · · Score: 3, Insightful

    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.

  17. You wouldn't benefit anyway this time around by James+Youngman · · Score: 3, Interesting
    I think you don't stand a chance. To get the course material updated, you will have to do one of two things:-
    1. Get the lecturer replaced with someone else - this means someone else has to be willling to teach the course
    2. Find the lecturer a whole lot of free time to revise the course material (which I assume has been generated over a period of years) all at once. This probably means them taking time away from research, which is what you professor probably feels he's there for anyway.
    Even if you succeed, the material won't be updated while you're on the course. At best, the next course would start with the new material.

    (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 :-

    1. It's Not The Hardware, It's The Protocol Design, Stupid
    2. Race conditions between the two ends
    3. Reliability measures (Checksums, CRCs, ACK/NAK, windows)
    4. Resilience versus Bandwidth (e.g. max reliable baud rate ~ 10000/(RS232 cable run in feet))

    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).