Computing trust: on writing ‘good’ code in computer science education

IF 1.9 3区 社会学 Q1 CULTURAL STUDIES Journal of Cultural Economy Pub Date : 2023-10-14 DOI:10.1080/17530350.2023.2258887
Samantha Breslin
{"title":"Computing trust: on writing ‘good’ code in computer science education","authors":"Samantha Breslin","doi":"10.1080/17530350.2023.2258887","DOIUrl":null,"url":null,"abstract":"ABSTRACTWhat does it mean to produce trustworthy code for computer scientists? Based primarily on ethnographic fieldwork in an undergraduate computer science program in Singapore, this article explores what it means for computer science students to write ‘good code.’ In doing so, it explores the values that underlie ideas of trust in the computer science discipline. Drawing on the work of Rebecca Bryant, this article shows how, as students learn to become ‘good at’ writing code that is technically functional, aesthetically un-individuated, and decontextually efficient, they also learn to become ‘good’ computer scientists. These standards of good code are distributed across human and nonhuman actors and provide a framework for ‘trustless trust’ in code. That is, while computer science often assumes an omnipresence of mistrust, this article argues that the production of ‘good’ code and ‘good’ computer scientists works to build a system of distrust for computer scientists. At the same time, becoming a good computer scientist is intimately intertwined with students’ selfhoods, undermining the foundation of trustless trust even as the ideal of objectively ‘good’ and trustworthy code cuts this contradiction from view.KEYWORDS: Computer scienceeducationtrustpersonhoodcode AcknowledgementsThank you to students, professors, and administrators who contributed to this research. Thank you also to James Maguire, Kristoffer Albris, the two anonymous reviewers, Benjamin Staple, and the Code Ethnography Collective (CECO) for their valuable comments and suggestions for improving this article, and to Robin Whitaker for her support and guidance throughout my MA and PhD.Disclosure statementNo potential conflict of interest was reported by the author(s).Notes1 Research for this article was approved by Memorial University of Newfoundland's Interdisciplinary Committee on Ethics in Human Research (#20140328-AR). Consent for participant observation in classes was obtained from the professor(s) and all students in the class were provided information in writing about my research and provided the opportunity to withdraw. Consent was otherwise negotiated and obtained on an individual basis. Some examples above are also discussed in my dissertation (Breslin Citation2018).2 Pseudonyms are used throughout both for the name of the university where I conducted research and for research participants.3 I have also drawn methodological insight from this research, alongside literature from feminist technology studies, in considering the multiple facets of education and subject-formation that need to be explored (see also Forsythe Citation2001; Fife Citation2005; Mackenzie Citation2006; Suchman Citation2007; Kho Citation2013).4 The Thompson Hack is explained in detail by Allen (Citation2021), but briefly it introduces a backdoor and self-replicating piece of code (combined, making the ‘hack’) into the compiler via the machine-level code. The combination makes it next to impossible to detect and ensures its persistence in all versions of the code and any systems that use it.5 An if statement is a basic programming structure that tells a computer to do ‘statements’ ‘if’ a certain ‘cond’ (condition) is met and ‘else’ (otherwise) do the other ‘statements.’6 I am using algorithm in the common sense used in computer science: ‘an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output’ as defined in Introduction to Algorithms text book (Cormen et al. Citation2009, 5). The focus on algorithms versus ‘code’ in considering efficiency is that it is the algorithmic facets of code that often take the longest time, but often these algorithms are also considered in the abstract (e.g. written in pseudocode) as opposed to their specific implementation in a specific programming language or for a specific machine.7 CPU refers to Central Processing Unit. See, e.g. https://www.cpubenchmark.net.8 Computer science knowledge is also generally taught as ahistorical. Often the authors or inventors of particular theorems or technical objects are discussed. However, the social, material, and historical circumstances that shaped certain knowledges and practices are excluded from view (Breslin Citation2018; Mayhew and Patitsas Citation2021).9 See also (Nespor Citation1994) who discusses how students selves become part of distributed networks as part of education, in the discipline of physics in this case.10 Indeed, blockchain may be seen as a crystallized representation (or ‘figuration,’ Haraway Citation1997, 11) of these values.Additional informationFundingThis research was supported by the Social Sciences and Humanities Research Council of Canada and Memorial University of Newfoundland.","PeriodicalId":46876,"journal":{"name":"Journal of Cultural Economy","volume":"39 1","pages":"0"},"PeriodicalIF":1.9000,"publicationDate":"2023-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Cultural Economy","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1080/17530350.2023.2258887","RegionNum":3,"RegionCategory":"社会学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"CULTURAL STUDIES","Score":null,"Total":0}
引用次数: 0

Abstract

ABSTRACTWhat does it mean to produce trustworthy code for computer scientists? Based primarily on ethnographic fieldwork in an undergraduate computer science program in Singapore, this article explores what it means for computer science students to write ‘good code.’ In doing so, it explores the values that underlie ideas of trust in the computer science discipline. Drawing on the work of Rebecca Bryant, this article shows how, as students learn to become ‘good at’ writing code that is technically functional, aesthetically un-individuated, and decontextually efficient, they also learn to become ‘good’ computer scientists. These standards of good code are distributed across human and nonhuman actors and provide a framework for ‘trustless trust’ in code. That is, while computer science often assumes an omnipresence of mistrust, this article argues that the production of ‘good’ code and ‘good’ computer scientists works to build a system of distrust for computer scientists. At the same time, becoming a good computer scientist is intimately intertwined with students’ selfhoods, undermining the foundation of trustless trust even as the ideal of objectively ‘good’ and trustworthy code cuts this contradiction from view.KEYWORDS: Computer scienceeducationtrustpersonhoodcode AcknowledgementsThank you to students, professors, and administrators who contributed to this research. Thank you also to James Maguire, Kristoffer Albris, the two anonymous reviewers, Benjamin Staple, and the Code Ethnography Collective (CECO) for their valuable comments and suggestions for improving this article, and to Robin Whitaker for her support and guidance throughout my MA and PhD.Disclosure statementNo potential conflict of interest was reported by the author(s).Notes1 Research for this article was approved by Memorial University of Newfoundland's Interdisciplinary Committee on Ethics in Human Research (#20140328-AR). Consent for participant observation in classes was obtained from the professor(s) and all students in the class were provided information in writing about my research and provided the opportunity to withdraw. Consent was otherwise negotiated and obtained on an individual basis. Some examples above are also discussed in my dissertation (Breslin Citation2018).2 Pseudonyms are used throughout both for the name of the university where I conducted research and for research participants.3 I have also drawn methodological insight from this research, alongside literature from feminist technology studies, in considering the multiple facets of education and subject-formation that need to be explored (see also Forsythe Citation2001; Fife Citation2005; Mackenzie Citation2006; Suchman Citation2007; Kho Citation2013).4 The Thompson Hack is explained in detail by Allen (Citation2021), but briefly it introduces a backdoor and self-replicating piece of code (combined, making the ‘hack’) into the compiler via the machine-level code. The combination makes it next to impossible to detect and ensures its persistence in all versions of the code and any systems that use it.5 An if statement is a basic programming structure that tells a computer to do ‘statements’ ‘if’ a certain ‘cond’ (condition) is met and ‘else’ (otherwise) do the other ‘statements.’6 I am using algorithm in the common sense used in computer science: ‘an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output’ as defined in Introduction to Algorithms text book (Cormen et al. Citation2009, 5). The focus on algorithms versus ‘code’ in considering efficiency is that it is the algorithmic facets of code that often take the longest time, but often these algorithms are also considered in the abstract (e.g. written in pseudocode) as opposed to their specific implementation in a specific programming language or for a specific machine.7 CPU refers to Central Processing Unit. See, e.g. https://www.cpubenchmark.net.8 Computer science knowledge is also generally taught as ahistorical. Often the authors or inventors of particular theorems or technical objects are discussed. However, the social, material, and historical circumstances that shaped certain knowledges and practices are excluded from view (Breslin Citation2018; Mayhew and Patitsas Citation2021).9 See also (Nespor Citation1994) who discusses how students selves become part of distributed networks as part of education, in the discipline of physics in this case.10 Indeed, blockchain may be seen as a crystallized representation (or ‘figuration,’ Haraway Citation1997, 11) of these values.Additional informationFundingThis research was supported by the Social Sciences and Humanities Research Council of Canada and Memorial University of Newfoundland.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
计算机信任:在计算机科学教育中编写“好的”代码
为计算机科学家编写值得信赖的代码意味着什么?本文主要基于新加坡一个计算机科学本科项目的人种学田野调查,探讨了计算机科学专业学生编写“好代码”的意义。在这样做的过程中,它探索了计算机科学学科中信任观念的基础价值观。这篇文章借鉴了Rebecca Bryant的作品,展示了学生们如何在学会“擅长”编写技术上功能性强、美学上不个性化、上下文高效的代码的同时,也学会了成为“优秀的”计算机科学家。这些优秀代码的标准分布在人类和非人类参与者之间,并为代码中的“不可信信任”提供了一个框架。也就是说,虽然计算机科学通常假定不信任无处不在,但本文认为,生产“好”代码和“好”计算机科学家的工作是为计算机科学家建立一个不信任系统。与此同时,成为一名优秀的计算机科学家与学生的自我意识密切相关,破坏了不可信信任的基础,即使客观上“好”和值得信赖的代码的理想消除了这种矛盾。感谢对本研究做出贡献的学生、教授和管理人员。还要感谢James Maguire、Kristoffer Albris、两位匿名审稿人Benjamin Staple和Code Ethnography Collective (CECO)对本文的改进提出的宝贵意见和建议,还要感谢Robin Whitaker在我的硕士和博士阶段给予的支持和指导。披露声明作者未报告潜在的利益冲突。注1本文的研究已获得纽芬兰纪念大学人类研究伦理跨学科委员会(#20140328-AR)的批准。在课堂上进行参与性观察获得了教授的同意,所有学生都获得了关于我的研究的书面信息,并提供了退出的机会。同意是在个别的基础上协商和获得的。上面的一些例子也在我的论文(Breslin Citation2018)中讨论过我进行研究的大学的名字和研究参与者的名字都使用了假名在考虑需要探索的教育和主题形成的多个方面时,我也从这项研究中获得了方法论上的见解,以及来自女权主义技术研究的文献(参见Forsythe Citation2001;横笛Citation2005;Mackenzie Citation2006;Suchman Citation2007;许思义Citation2013) 4。Allen (Citation2021)详细解释了汤普森黑客,但简要地介绍了一个后门和自我复制的代码片段(组合,使“黑客”)通过机器级代码进入编译器。这种组合使得它几乎不可能被检测到,并确保它在所有版本的代码和使用它的任何系统中都具有持久性if语句是一种基本的编程结构,它告诉计算机执行“语句”,“如果”满足某个条件,“else”(否则)执行其他“语句”。6我使用的是计算机科学中常用的算法:“算法是任何定义良好的计算过程,它以某个值或一组值作为输入,并产生某个值或一组值作为输出”,正如《算法导论》(Cormen et al.)一书中所定义的那样。Citation2009, 5).在考虑效率时,算法与“代码”的重点是代码的算法方面通常花费最长的时间,但通常这些算法也被抽象地考虑(例如用伪代码编写),而不是在特定编程语言或特定机器上的具体实现CPU是指中央处理器。看,例如https://www.cpubenchmark.net.8计算机科学知识通常也被当作非历史知识来教授。通常讨论特定定理或技术对象的作者或发明者。然而,形成某些知识和实践的社会、物质和历史环境被排除在视野之外(Breslin Citation2018;9 . Mayhew and Patitsas Citation2021)另见(Nespor Citation1994),他讨论了学生如何成为分布式网络的一部分,作为教育的一部分,在这种情况下,在物理学科中实际上,区块链可以被看作是这些值的结晶表示(或“形像”,Haraway引文1997,11)。本研究得到了加拿大社会科学与人文研究理事会和纽芬兰纪念大学的支持。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
CiteScore
3.90
自引率
15.80%
发文量
63
期刊最新文献
Digital (mis)trust: ethnographic encounters with computational forms. The politics of climate risk: How the climate issue is turned into a risk issue through the little tools and operations of finance Algorithms and the Assault on Critical Thought: Digitalized Dilemmas of Automated Governance and Communitarian Practice Interventions and dissonance in industrial research: dressing the emperor in new clothes? ‘I’m not going to feed the bailiffs’: personal bankruptcy and debtor agency in narrative accounts of struggling debtors
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1