Structured design for CS1

David L. Parker
{"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
CS1的结构化设计
CS 1中经常出现的三个基本教学问题:1)设计:学生试图在机器上编写和调试代码,而不是设计代码;2)文档:一旦学生有了工作代码,他们就不愿意完整地记录它;3)语言:许多学生将cs1视为一门特定语言的课程,而不是一门编程课程。霜冻问题是由学生在高中计算机课上使用BASIC引起的,而计算机“碗”则助长了霜冻问题。第二个问题对于几乎每个人来说都是一个自然的问题,因为我们通常认为没有必要继续向正常运行的程序添加注释。第三种情况往往是教师强调制作有效程序而不是设计有效程序的不幸后果。当我们向学生教授面向对象编程时,这些问题没有消失的迹象,而且可能会变得更糟。在我看来,为了减少这些教学问题,我们在cs1中强调好的软件工程技术是至关重要的。本文的目的是演示一种程序设计方法,这种方法多年来几乎消除了我(和我的几个同事)的这些问题。问题仍然存在,但我们有一个工具来攻击它们。我在cs1中教授结构化设计(以及结构化编程),因为
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书