{"title":"通用数据结构和算法的正式定义","authors":"C. Welborn, George Rudolph","doi":"10.1109/IETC47856.2020.9249213","DOIUrl":null,"url":null,"abstract":"Data Structures and algorithms are core topics taught in all Computer Science degrees. Yet for all the commonality in teaching these topics there is no universally accepted method for presenting the material. Some faculty and students will prefer a more graphical presentation with accompany lecture, others will prefer a more textual approach with pseudo-code, others will use a combination of both. While any of these approaches can be effective they all suffer from the same two problems 1) neither has formally defined what the students specifically needs to do to implement a data structure or algorithm, 2) neither can be used by the student to verify that what they have implemented is correct. By writing Prolog for common data structures and algorithms, we can avoid these problems because Prolog provides us with a formal language for specifying a definition and once written the definition can be executed in the form of a proof to show how the data structure or algorithm should perform under various conditions.","PeriodicalId":186446,"journal":{"name":"2020 Intermountain Engineering, Technology and Computing (IETC)","volume":"277 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-10-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Formal Definitions for Common Data Structures and Algorithms\",\"authors\":\"C. Welborn, George Rudolph\",\"doi\":\"10.1109/IETC47856.2020.9249213\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Data Structures and algorithms are core topics taught in all Computer Science degrees. Yet for all the commonality in teaching these topics there is no universally accepted method for presenting the material. Some faculty and students will prefer a more graphical presentation with accompany lecture, others will prefer a more textual approach with pseudo-code, others will use a combination of both. While any of these approaches can be effective they all suffer from the same two problems 1) neither has formally defined what the students specifically needs to do to implement a data structure or algorithm, 2) neither can be used by the student to verify that what they have implemented is correct. By writing Prolog for common data structures and algorithms, we can avoid these problems because Prolog provides us with a formal language for specifying a definition and once written the definition can be executed in the form of a proof to show how the data structure or algorithm should perform under various conditions.\",\"PeriodicalId\":186446,\"journal\":{\"name\":\"2020 Intermountain Engineering, Technology and Computing (IETC)\",\"volume\":\"277 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-10-02\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 Intermountain Engineering, Technology and Computing (IETC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IETC47856.2020.9249213\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 Intermountain Engineering, Technology and Computing (IETC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IETC47856.2020.9249213","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Formal Definitions for Common Data Structures and Algorithms
Data Structures and algorithms are core topics taught in all Computer Science degrees. Yet for all the commonality in teaching these topics there is no universally accepted method for presenting the material. Some faculty and students will prefer a more graphical presentation with accompany lecture, others will prefer a more textual approach with pseudo-code, others will use a combination of both. While any of these approaches can be effective they all suffer from the same two problems 1) neither has formally defined what the students specifically needs to do to implement a data structure or algorithm, 2) neither can be used by the student to verify that what they have implemented is correct. By writing Prolog for common data structures and algorithms, we can avoid these problems because Prolog provides us with a formal language for specifying a definition and once written the definition can be executed in the form of a proof to show how the data structure or algorithm should perform under various conditions.