The Impact of Presenting Concurrency in the Introductory Computer Science Course

Chester Benford Lund, Jr.

A dissertation submitted to the faculty of the Department of Computer Science of The George Washington University in partial satisfaction of the requirements for the degree of Doctor of Science

August 31, 1999

Dissertation directed by Michael Bliss Feldman, Professor of Computer Science


ABSTRACT

The teaching of introductory computer science today is focused on sequential algorithms and processing. Students are taught from day one to think and design in a sequential manner. By the time students are introduced to concurrent and parallel processing, the students are imprinted with sequential algorithmic thought processes.

It is well documented that students who are taught introductory computer science using the imperative programming paradigm have a difficult time transitioning to the object-oriented programming paradigm. Students have to unlearn one programming paradigm in order to learn and use another programming paradigm. The teaching of introductory computer science using multi-paradigm programming methods has been documented as successful.

A controlled experiment was devised to teach introductory computer science students both sequential and concurrent programming to students in their first programming language course. The experiment was created to potentially answer the following questions about introducing concurrency and parallelism into a first programming language course:

The experiment was conducted by actually teaching a course that introduced both sequential and concurrent concepts together to novice programming students. The first question should be answered with a simple yes or no. The second question may have many possible answers; a target of this experiment was to provide an answer (given that the answer to the first question is yes).

Click HERE for the website associated with this course.