Papers on CS Education

(and panels and position statements)


Panel Presentations:

Position Statements:

1996 Remarks:

One of my main interests is the challenge of teaching programming. Among the many ongoing debates within the computer science education community, is the one concerning the place of formal methods in the curriculum. As a C-programming experimentalist/hacker who advocates their importance, I occupy a relatively unique position.

My approach has been bottom-up in two senses. First, I have focused most of my attention on the elementary level (courses for non-majors, such as Core 5, and CS 1&2, e.g. CIS 1.10 and CIS 15) and on students with extremely weak backgrounds in math and computing.

Secondly, because of this focus, I have had to develop approaches to formalism that naturally flow out of the operational perspective of these students. I have met with some success in this regard. I helped develope a version of the Brooklyn College Core Math/CS course that used logic as a unifying theme. This version was for a time widely used and has had a great impact on design of the current version of the course. When I was coordinator of this course, students in several of its sections became able to construct simple, yet significant program correctness proofs. These were the non-majors!

From 1993-1996, my focus was on the second semester programming course, which introduces C to students who have been taught Pascal or C in a strictly operational fashion. But here too I found ways of successfully broadening the students' view of programming. Thus, my contribution to this debate, which in some ways is a debate about the nature of the discipline itself, has been to demonstrate that this material is accessible to all students and to develop effective methods for its presentation.

Back to David Arnow's CS Education Page.