Brown has been doing this from the start of its CS department in the 80s (this probably developed because we don't have very many graduate students), as far as I can tell. The only difference is that the undergraduate Head TAs are typically "higher" in the food chain of responsibility than the Graduate TAs (who are more responsible for course development). This worked incredibly well: in 2011, one of our three intro sequences (the one meant for people who knew they wanted to do CS, but don't have the background in it) went from an enrollment of 70 students to 200. We managed by scaling the undergraduate TA group from 11 to 20 (with two, instead of one, HTA), and assigning a good number of those TAs to work on better automation for things like grading.
I've been a TA for three years now, and I've probably gotten more from it than from my actual classes. And because we see what the class needs to teach, as well as what the class has taught in the past, we're actually a lot better (IMHO) than grad students (and even many professors) at figuring out how to change the course to push students further.
As our professor last year put it:
"I am the Pope of CS17. The head TAs are the Roman Curia, the TAs are the dedicated priests, and the students are the Faithful."
I've been a TA for three years now, and I've probably gotten more from it than from my actual classes. And because we see what the class needs to teach, as well as what the class has taught in the past, we're actually a lot better (IMHO) than grad students (and even many professors) at figuring out how to change the course to push students further.
As our professor last year put it: "I am the Pope of CS17. The head TAs are the Roman Curia, the TAs are the dedicated priests, and the students are the Faithful."
http://teachingintrotocs.blogspot.com/2011/09/teaching-with-...