Integrating a breadth-first curriculum with relevant programming projects in CS1/CS2

  • Authors:
  • Ronald E. Wilson

  • Affiliations:
  • Department of Computer Science, The University of Montana, Missoula, Montana

  • Venue:
  • SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

The ACM/IEEE Guidelines (1990) for CS1/CS2 recommend that these classes present a variety of concepts from the field of computer science. This is a departure from the traditional method of presenting this course, a course that stressed primarily programming. This paper describes a CS1/CS2 curriculum that integrates the breadth-first approach coupled with programming assignments that reinforce concepts covered in this curriculum. Students still spend a majority of their effort on programming. However, the programs that they write represent concepts that are usually presented later in the curriculum. These programs include an SLR parser, a problem from the realm of scientific computation, a dynamic programming problem from formal language theory, an implementation of the relational algebra operators for querying relational databases, an example from the field of artificial intelligence, and a simple example of concurrent programming. This curriculum is no doubt daunting to some students, but it does succeed in integrating topics covered in a breadth-first curriculum with related programming assignments. Experience has shown that most students prefer this rigorous set of meaningful programming assignments to ones that are more contrived and trivial.