{"title":"Structured design for CS1","authors":"David L. Parker","doi":"10.1145/199691.199810","DOIUrl":null,"url":null,"abstract":"INTRODUCTION Three basic pedagogical problems in CS 1 occur with some frequency: 1) DESIGN: students attempt to write and debug code at the machine, rather than designing code; 2) DOCUMENTATION: once students have working code they are reluctant to fully document it; and 3) LANGUAGE: many students view CS 1 as a course in a particular language rather than a course in programming. The frost problem is precipitated by the students’ use of BASIC in high school computer classes and is encouraged by computer “bowls.” The second is a natural problem for nearly everyone, for we generally see little need to continue adding comments to a program that performs properly. The third is often an unfortunate consequence of instructors who emphasize the production of working programs rather than the designing of programs which work. As we teach objectoriented programming to our students, these problems show no sign of disappearing and are probably becoming worse. It is, in my opinion, vital that we emphasize good software engineering techniques in CS 1 in order to reduce these pedagogical problems. The purpose of this paper is to demonstrate an approach to program design which has nearly eliminated these problems for me (and for several of my colleagues) for several yeas. The problems still occur, but we have a tool with which to attack them. I teach structured design (and consequently structured programming) in CS 1 because the principles of","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/199691.199810","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
INTRODUCTION Three basic pedagogical problems in CS 1 occur with some frequency: 1) DESIGN: students attempt to write and debug code at the machine, rather than designing code; 2) DOCUMENTATION: once students have working code they are reluctant to fully document it; and 3) LANGUAGE: many students view CS 1 as a course in a particular language rather than a course in programming. The frost problem is precipitated by the students’ use of BASIC in high school computer classes and is encouraged by computer “bowls.” The second is a natural problem for nearly everyone, for we generally see little need to continue adding comments to a program that performs properly. The third is often an unfortunate consequence of instructors who emphasize the production of working programs rather than the designing of programs which work. As we teach objectoriented programming to our students, these problems show no sign of disappearing and are probably becoming worse. It is, in my opinion, vital that we emphasize good software engineering techniques in CS 1 in order to reduce these pedagogical problems. The purpose of this paper is to demonstrate an approach to program design which has nearly eliminated these problems for me (and for several of my colleagues) for several yeas. The problems still occur, but we have a tool with which to attack them. I teach structured design (and consequently structured programming) in CS 1 because the principles of