{"title":"万能列表:通往抽象的途径","authors":"J. Hamer, Adriana Ferraro","doi":"10.1145/359369.359387","DOIUrl":null,"url":null,"abstract":"The humble “list” is usually presented early in a first course on data structures and algorithms, one topic among many, generally considered less interesting than trees and graphs. We believe the list deserves better, and show how the list can be used to bring together a wide variety of Computer Science topics, including: algebraic reasoning, proof by induction, abstract data types, recursion, and generic programming. The emphasis is on developing abstraction and design skills, applying both theory and engineering considerations, ultimately arriving at an unexpectedly powerful framework.","PeriodicalId":435916,"journal":{"name":"African Conference on Software Engineering","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"The versatile list: a pathway to abstraction\",\"authors\":\"J. Hamer, Adriana Ferraro\",\"doi\":\"10.1145/359369.359387\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The humble “list” is usually presented early in a first course on data structures and algorithms, one topic among many, generally considered less interesting than trees and graphs. We believe the list deserves better, and show how the list can be used to bring together a wide variety of Computer Science topics, including: algebraic reasoning, proof by induction, abstract data types, recursion, and generic programming. The emphasis is on developing abstraction and design skills, applying both theory and engineering considerations, ultimately arriving at an unexpectedly powerful framework.\",\"PeriodicalId\":435916,\"journal\":{\"name\":\"African Conference on Software Engineering\",\"volume\":\"45 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2000-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"African Conference on Software Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/359369.359387\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"African Conference on Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/359369.359387","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The humble “list” is usually presented early in a first course on data structures and algorithms, one topic among many, generally considered less interesting than trees and graphs. We believe the list deserves better, and show how the list can be used to bring together a wide variety of Computer Science topics, including: algebraic reasoning, proof by induction, abstract data types, recursion, and generic programming. The emphasis is on developing abstraction and design skills, applying both theory and engineering considerations, ultimately arriving at an unexpectedly powerful framework.