I'm getting this out of the way tonight because I've been swamped lately with my own schoolwork which is bound to take up my entire weekend.
Teaching PHP lately hasn't been quite as fun as I had hoped. I have too many students in my section who are completely new to programming and I can't seem to get them to really put in the time and effort outside of class to prepare themselves for the things I cover in section. It's really too fast for them anyway… we raced through if-else constructs and loops today and I was ready to pull out my hair with the pressure of covering all the material I had and actually making sure nobody was left behind. I don't think it went very well.
I've been thinking that it might be better if for this course they made the introductory computer science course (CS 100) a requirement. There just isn't enough time to give people a good introduction to XHTML and CSS and Design and PHP and also teach them basic programming skills too. If people can pick up PHP rather easily with a few months of experience in a language like Java, then I say make them learn some Java first. Unfortunately, I don't know how convenient this would be for many of the students who come to INFO/CS 130 looking for an introduction to web design because their major or job recommends it. As far as they are concerned, learning how to make random number generators and GUI based apps in Java just isn't all that useful (and failing the course because they have to compete with cutthroat engineers isn't helpful either). In the end, an ideal solution would be to have two introductory web programming courses, one for advanced engineering/information science students who can handle advanced topics in XHTML, CSS, and PHP, and another for the rest of the crowd who need a lot of in-depth introduction and hand-holding with basic programming concepts. This would effectively results in an INFO/CS 130 with more strict prerequisites and an INFO 099 for total beginners. Or, they could restructure the first 2 levels of web programming, and make INFO/CS 130 even less programming intensive, and make INFO/CS 230 a course that assume students already know the programming they do in CS 100 (which any student should have taken before INFO/CS 230).
These decisions are hard to make though; there are no perfect solutions and Cornell is restructuring the courses every year to try and make things work for students. Besides, Cornell is a theory-based school; a practical program in web design really doesn't fit here. I would love to teach web design courses myself someday, and really develop my own curriculum for XHTML/CSS/PHP (and onward into MySQL and more advanced programming topics), but that's just me going back to my dreams of being a professor. There's a long road for me between here and there… for now I have to worry about making sure that a couple handfuls of students learn PHP very well.