Objects-First CS1 Not Considered Harmful: An Empirical Investigation of CS1

Phil Ventura
pventura@cse.buffalo.edu
Department of Computer Science and Engineering
SUNY Buffalo

Introduction

Over the past 2 years we have developed and taught an objects-first CS1 & 2 sequence at SUNY Buffalo [3,4].  The course includes a strong object-oriented design and programming approach.  This works seeks to investigate the pedagogical issues empirically.

These issues include the effect of CS1 on abstract thinking, predictors of success and utilities of other factors including pair programming and the use of undergraduate teaching assistants.

Previous Research in Area

The ACM/IEEE Computing Curriculum 2001 defines the notion of an objects-first CS1 & 2 sequence [3].  In it, the authors write of the disadvantages of a programming-first approach.  We have argued in [1] that a strong design approach can mitigate such problems.

Nguyen and Wong have argued in [2] that the use of an objects-first approach along with design patterns and fun assignments “results in students who possess strong abstraction skill.”

Little empirical data have been published to illustrate the power of the objects-first approach.  In terms of general predictors, Wilson and Shrock [6] have examined factors for success in an imperative-first course.  They identified factors such as comfort in computer science, mathematical ability and attribution all played important roles.  Additionally their findings supported the notion in CC2001 that a programming-first approach puts students without prior programming experience at a disadvantage.  The applicability of this claim for an objects-first approach will be examined in this thesis.

Pair programming has been identified to be a useful tool in CS1 [5].  Pair programming is a technique from Extreme Programming in which two individuals program together.  The individuals take turns being “driver” and “navigator.”  The driver sits at the keyboard typing code, while the navigator sits with him or her and directs the process through asking questions. It is still unclear as to whether early pair programming hinders independent programming in later course work.

Goals of the Research

We seek to examine the effect of an objects-first CS1 has on students’ abstract thinking ability.  Additionally we wish to identify the factors that contribute to success in CS1.  The factors to be examined include comfort-level, programming experience, mathematical ability, gender, attribution of success (to ability, task ease/difficulty, luck or effort), work style, reason for studying computer science [6], class attendance and use of office hours.  The utility of pair programming will be discussed including its effects on subsequent independent programming work.  Finally, we will investigate the use of undergraduate teaching assistants in CS 1.

Our main hypotheses are:

Current Status

This work is still in its infancy at the time of writing, November 30, 2001.  Currently we are attempting to identify appropriate measures of abstract thinking ability, working with a psychologist with extensive testing experience.  Additional surveys will need to be found/created.  After which, the approval of the human subjects review board will be sought.  Data collection will occur in the spring 2002 semester.

Interim Conclusions

A recent informal survey of CS2 students at SUNY Buffalo revealed the following:

These results are encouraging, as they offer anecdotal evidence to support the belief that an objects-first approach “levels the playing field” for non-programmers.

Current Stage in Program

I am still in the pre-proposal defense stage.  I hope to defend the proposal by mid-January.

Doctoral Consortium Goals

I would like to attend the Doctoral Consortium to present my ideas and receive feedback from others, as well as to meet others who are involved in computer science education research.

Bibliography

[1]   Alphonce, C. & Ventura, P. Object Orientation in CS1-CS2 by Design. submitted to ITICSE02.

[2]   Nguyen, D. & Wong, S. OOP in Introductory CS: Better Students Through Abstraction. Fifth Workshop on Pedagogies and Tools for Assimilating Object Oriented Concepts, OOPSLA01.

[3]   The Joint Task Force on Computing Curricula (IEEE Computer Society and Association for Computing Machinery). Computing Curricula 2001 (Steelman draft), August 2001

[4]   Ventura, P. & Alphonce, C. Teaching OOD and OOP through Java and UML in CS 1 and 2. Fifth Workshop on Pedagogies and Tools for Assimilating Object Oriented Concepts, OOPSLA01.

[5]   Williams, L. & Upchurch, R. In Support of Student Pair-Programming, SIGCSE01.

[6]   Wilson, B. & Shrock, S. Contributing to Success in an Introductory Computer Science Course: A Study of Twelve Factors. SIGCSE01.