[said John McCormick]
> I'll add a data point to counter Ron Oliver's claims that the general CS
> grad is a hacker rather than an engineer. In a recent this Fall between my
> University President and a CEO of a major avionics company, the CEO stated
> that the CS grads coming out of our program did better at developing
> software than that those they hired from engineering programs. Of course,
> they don't hire any of our C (GPA not programming language) students.
This squares with most of my experience too.
> I will agree with Ron that the vast majority of CS profs teach hacking. In
> fact we have just revamped our freshman courses and replaced the software
> engineering with Ada emphasis to software hacking with OO and Java.
> Interesting is that the retention rate with the hacking approach has been
> only half of that with the SE approach. So my upper division courses are
> getting a lot smaller.
Well, one hopes that the students who survive those new intro courses
are the better ones, so you can shape them up in the upper-level
We can (and do) debate endlessly what to teach, in what part of the
curriculum. Obviously Ada-first folks emphasize quality from the get-go,
but we have 4 years to educate the students, and if the intro folks
(and the high-school APCS teachers!) insist on teaching mostly code,
we still have a chance to improve the situation in the later courses.
Time for an admission: this year, we changed our intro courses from
Ada to Java. I saw the change was inevitable for a number of reasons.
So rather than resist it, I got out in front of it, proposed it myself,
and kept control of the intro courses. Currently, I'm teaching a
freshman course that focuses on quality - it's the same course I've
taught for years, just using a different coding language.
Yeah, I miss Ada and think the switch was too bad, but it had to
happen. On the other hand, I'm doing my damndest to make sure the
emphasis on quality doesn't suffer.
So far the news is pretty good. The course is just about over.
We started with about 40 students, of whom most are first-semester
freshmen. A few weak students are repeating, and a few are
transferring into CS beyond their first year. Roughly half have
zero prior programming experience.
Overall, this is the best freshman group I've seen in a long time,
maybe the best ever. As was the case with the Ada version of the
course, both the experienced (from high school) and the novice
students are hitting the same grade curve. Two students quit the
course in the 2nd week; they decided early that CS wasn't their
cuppa tea. The weak students are still weak. Other than that,
my grades are going to be quite high, and I know of at least
32 who are continuing into the second course, which I will
teach in the spring.
None of my nearly-20 colleagues have complained about my approach
to the intro courses; they're happy about the switch to Java but
have no problems with my quality-first approach.
Interestingly enough, several students who did C++-based courses
in high school told me that with no prodding or suggestion from
me, they sent the course URL to their high school CS teachers,
as an example of how an intro course ought to be done. Naturally,
that made my day.:-)
If anyone is curious, you can compare the Ada and Java versions
of the course. For info on the Ada one, see
and for the new Java one, see