I don’t think there’s anything childish about assigning large-scale programming assignments. I had to do everything from implement a compiler to building a ray tracer as an undergrad, and it set me up very well for an independent career as a software developer at a research lab.
As a professor today, assignments are the place where I’m happy to throw my students into the “deep end” (go learn a new language and a set of library toolkits while also learning this skill.) Exams just don’t provide that experience. Worse, students tend to cram for exams which is the worst way to retain information. I can’t even imagine thinking that the two are comparable in terms of retention and skill-building.
As a professor today, assignments are the place where I’m happy to throw my students into the “deep end” (go learn a new language and a set of library toolkits while also learning this skill.) Exams just don’t provide that experience. Worse, students tend to cram for exams which is the worst way to retain information. I can’t even imagine thinking that the two are comparable in terms of retention and skill-building.