FWIW, I agree that good coursework in embedded systems is a worthwhile thing to have. I believe that a first course in embedded systems should probably emphasize the types of things that are/can be done using embedded systems. An initial overview of embedded systems is probably in order. I didn't see it listed. I apologize if it's in the syllabus and I missed it. I have in mind an overview of a microcontroller connected to various electrical components and in some systems mechanical equipment beyond that.
I didn't get a sense of a time frame for the course. Is this supposed to be equivalent to a three semester hour course?
A good embedded systems designer needs to understand basic electrical engineering along with programming, by virtue of the fact that the embedded system is going to be connected to something electrical. The next step would be an understanding of mechanical concepts, because a good number of embedded systems actually drive machinery. I would think some electrical and computer background should be a prerequisite.
You might consider adding a section on connecting a microcontroller to the outside world, emphasizing some of the problem areas - TTL-level outputs, limited drive power available from an output pin, the joys of real-world grounds, thermal issues, ...
Nit pic - you've mentioned both PIC16F876 and PIC16F877.
It seems to me that the circuit board layout using the CadSoft EAGLE is superfluous. Circuit board design and layout is an art in itself. However, that's a completely different discipline than embedded design. I'd recommend dropping the CadSoft Eagle part of the program - there's more than enough material without it.
I'd suggest making the communication over an RS-232 port into a second project. If your students can make the lights flash *then* it's time to move on to data over a serial port. I don't understand the part about the IP/V4 packet driver. Are they going to build a programmer that's driven from an ethernet connection?
It may be wishful thinking that your students will master embedded system design, wiring up a circuit, programming the PIC chip in multiple fashions, debugging, electrical troubleshooting, *and* packetized communications, calibration to standards, data logging, and diagnostics all in one course.
Finally, I'd strongly recommend adding a section on troubleshooting. All embedded system designers have to troubleshoot their designs. A section showing a system designed to be debugged (with appropriate hooks) and an orderly troubleshooting process is worthy of being a course by itself.
Hope this helps. Bruce Raymond