3 ms·
I have been a TA for first-year intro CS on multiple occasions. I have written the test suites that auto-grade student submissions. The problem with first year
by chongli 3y ago
I have been a TA for first-year intro CS on multiple occasions. I have written the test suites that auto-grade student submissions.
The problem with first year CS students is that, unlike math, they’re allowed to have a huge range of possible prior experience in the subject. Some have zero programming experience whatsoever, while others started programming in diapers and competed in numerous programming contests (and even won) before enrolling.
Yes, we do offer an advanced version of the intro course that is far more challenging and would be appropriate for many of those advanced students. But the advanced course is optional so no student can be forced to take it. Many of the advanced students opt to take the standard intro course in the hope that it would boost their grades.
So the course is dealing with (essentially) a strongly bimodal distribution of student ability and the professors don’t want to give the advanced students a free ride. That means the course is actually somewhat challenging for all but the most elite programmers and therefore extremely challenging for total beginners.
What this meant was that Monday office hours (assignments were due Tuesday mornings) typically had several hundred students (out of a total of about 1800) scrambling for help from a dozen TAs. Of course, my school only has a tiny fraction of the funding of Harvard, but there you go.
I doubt that Harvard would want to spend proportionally more on TAs for their course (which would mean more TAs than students), so even though their course may be way more “well-funded” than ours, it’s not at all so relative to endowment.
- fn-mote 3y ago> So the course is dealing with (essentially) a strongly bimodal distribution of student ability and the professors don’t want to give the advanced students a free ride. That means the course is actually somewhat challenging for all but the most elite programmers and therefore extremely challenging for total beginners. HN readers: universities that teach a so-called "How to Design Programs" curriculum [1] have discovered a partial solution to this problem. Emphasizing a design process in a functional language removes the advantage that students with experience but not a deep understanding gain from knowing how to cobble things together the way they learned in high school AP CS A. I'm not saying it's the only route, but it works well and develops important skills that are (ime) not learned by tinkering. [1]: https://htdp.org https://htdp.org [2]: https://course.ccs.neu.edu/cs2500/labs.html https://course.ccs.neu.edu/cs2500/labs.html
- chongli 3y agoMy university uses that exact approach! I have first hand knowledge with students who refuse to follow the design recipe approach and insist on muddling through the code until they figure it out. We even hand-mark their design recipes in the course! The students just do them after the fact.
- joker_minmax 3y agoCouldn't they just distribute the class ability level correctly using a placement test?
- voakbasda 3y agoThe advanced students looking to boost their grade could easily lower their score intentionally, so they get sorted into the beginner group.
- anticensor 3y agoThere is a solution to that too: Have the placement exam counted as a proficiency course in the student grades, like foreign language requirements or scientific prep courses in graduate-level schools for those majored in a different field.
- chongli 3y agoMy school is a public university. They’re not allowed to introduce mandatory placement exams like that. They have to work within the government-set high school curriculum. They also don’t want to allow the advanced students to “test out” of the intro course, as some schools do, because the advanced students may be highly skilled at programming but totally lacking in introductory CS knowledge.
- sharma-arjun 3y agoYeah, it's extremely common for people to be extremely prolific programmers in high school, without having much knowledge of foundational computer science or algorithm concepts. Source: Am a high school programmer
- joker_minmax 3y agoI went to a public university and they determined which mathematics class you started in by your ACT/SAT or AP test scores. I guess I'm just struggling to see why a programming course would be any different, or why a placement test would be prohibited when they're already using the standardized test scores as a placement test of sorts. Unless things have changed in the last five years.