[plt-scheme] Computers considered harmful

From: Henk Boom (henk at henk.ca)
Date: Fri May 8 11:34:04 EDT 2009

2009/5/6 stonemetal <stonemetal at gmail.com>:
> Asking a person to go through a CS program without a computer is like
> asking a Mechanical engineer to design a car without ever having seen
> something as complex as a bicycle.  You need both theory and practice
> to make a well rounded student.  I would agree with the point that
> most CS programs are too heavy on the practice and a little light on
> the theory but completely abonding either one would produce worse
> students.

In my experience (as an undergrad) there are three main types of classes:

1) Entirely practice
These ones are fun because the students get to build stuff. Usually a
lot of learning happens, but you get the feeling that there should be

2) Entirely theory
These ones are fun for the students who "get it", but feel useless to
the students who can't see how the concepts could be applied usefully.

3) Both practice and theory, but there is no link shown between the two.
These ones are confusing for students because they feel that
assignment/lecture/test material doesn't match up. For the same
reasons in 2), people end up studying the theory but then forgetting
after the exam. Is seems to me that one reason this type of class
happens is that the students are not advanced enough to apply the
theory as code.

1) and 2) can be great in the hands of good teachers, but there really
need to be more classes of the rare fourth type:

4) Theory and practice are given hand in hand, and support each other.
These ones tend to be really hard, since the students not only have to
be able to absorb the theory presented, but also put in the effort to
implement that theory fairly independently. Definitely the most
rewarding though.

I've only had one course with this last type. It was a course in
introductory compiler design/implementation, given as a shared
graduate/undergrad elective course.

The bottleneck to me seems to be that though students can easily
"write programs", many can't design them. As a result, if the course
has any practice component at all the students need to be walked
through implementation, which bumps theory out.

If schools spend too much time on practice, it's because it's not
being taught properly.


Posted on the users mailing list.