CS1: what should we be teaching?

  • Authors:
  • William Marion

  • Affiliations:
  • Department of Mathematics and Computer Science, Valparaiso University, Valparaiso, Indiana

  • Venue:
  • ITiCSE-WGR '99 Working group reports from ITiCSE on Innovation and technology in computer science education
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

At the 1998 SIGCSE Technical Symposium a paper, entitled "Providing Intellectual Focus to CS1/CS2," was presented in which the authors argued for a more intellectually-focused approach to the first-year sequence in an undergraduate computer science program. The central intellectual role in CS1 and CS2 should be: "The study and application of languages and methods for making precise and understandable descriptions of software for human beings and the approach is built around the concepts of systems thinking and mathematical modeling as these principles are manifested in a component-based software paradigm" [12]. Following up on these ideas, the author of the current paper stakes out a particular position concerning one of the two courses, the CS1 course: no matter which software methodology is developed, no matter under which paradigm ideas are presented, no matter which programming language is used there are certain fundamental concepts that ought to be introduced in a first course in a computer science major. Toward this end the author raises and addresses three questions, articulates some goals that are based on answers to the questions and describes the fundamental concepts. In addition, the author indicates how these concepts can be developed in CS 1 irrespective of the methodology, paradigm and language presented.