{"title":"Kara, finite state machines, and the case for programming as part of general education","authors":"Werner Hartmann, J. Nievergelt, Raimond Reichert","doi":"10.1109/HCC.2001.995251","DOIUrl":null,"url":null,"abstract":"As a major evolutionary step in computer technology, users have come to rely on ready-made application software, rather than writing their own programs. If computer users no longer program, does it follow that the art of programming should only be taught to computing professionals? We argue the case for programming as a component of general education - not because of any direct utilitarian benefit, but in order to gain a personal experience as to what it means, and what it takes, to specify processes that evolve over time. An analogy to mathematics education shows that schools teach the concept of \"proof\", although in daily life people use mathematical formulas without knowledge of their proof. Programming practiced as an educational exercise, free from utilitarian constraints, is best learned in a toy environment, designed to illustrate selected concepts in the simplest possible setting. As an example, we present the programming system Kara based on the concept of finite state machines.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"37","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HCC.2001.995251","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 37
Abstract
As a major evolutionary step in computer technology, users have come to rely on ready-made application software, rather than writing their own programs. If computer users no longer program, does it follow that the art of programming should only be taught to computing professionals? We argue the case for programming as a component of general education - not because of any direct utilitarian benefit, but in order to gain a personal experience as to what it means, and what it takes, to specify processes that evolve over time. An analogy to mathematics education shows that schools teach the concept of "proof", although in daily life people use mathematical formulas without knowledge of their proof. Programming practiced as an educational exercise, free from utilitarian constraints, is best learned in a toy environment, designed to illustrate selected concepts in the simplest possible setting. As an example, we present the programming system Kara based on the concept of finite state machines.