Should the introduction to computer science be an introduction to programming?
If so, which programming language, or paradigm, should be used?
If we omit programming from the first course, what should be taught in its place?
No consensus has yet been reached on the most effective way to approach the first year of computer
science education. Perhaps no such consensus should be reached. Regardless, a variety of lessons
have been learned regarding effective and ineffective teaching practices in educating the next
generation of computer scientists.
While most strategies take a programming-first approach, their choice of environment, language, and
paradigm often differ. Some strategies regard object-oriented programming as the appropriate
introductory paradigm, while others focus on functional. Some construct their programming curricula
around graphics and game development, while others use new, less traditional, visual programming
languages and environments specially geared for the first course. Still other strategies try to provide a
curriculum that focuses more on covering the breadth of the field, as others focus on history,
algorithms, and data structures while not using computers at all.
Objectives for the various strategies remain as varied as the curricula themselves, with many striving
for an increase in student enrollment, some for greater gender equity, some focus on computer
programming, while others focus on greater breadth.
The presentation will describe eight categories of approaches used for teaching CS 1 with some
attention paid to improving the gender ratio in our classrooms.
Scott Fletcher is in the final quarter of his MSCS degree at Portland State University. He received his
BSCS degree in 1996 at Mary Washington College in Fredericksburg, VA. In between the two, he
worked professionally as a software developer, parachute packer, bus driver, and most recently spent
seven years teaching programming and computer science at Park View High School in Sterling, VA.
He is particularly interested in seeing people of all backgrounds learn how to program and believes that
acquiring such an ability will help non-computer scientists raise their own fields of study to the next
level.