{"id":"https://openalex.org/W4392564437","doi":"https://doi.org/10.1145/3626252.3630856","title":"Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When Teaching Code Refactoring","display_name":"Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When Teaching Code Refactoring","publication_year":2024,"publication_date":"2024-03-07","ids":{"openalex":"https://openalex.org/W4392564437","doi":"https://doi.org/10.1145/3626252.3630856"},"language":"en","primary_location":{"id":"doi:10.1145/3626252.3630856","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3626252.3630856","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3626252.3630856","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3626252.3630856","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5094092555","display_name":"Ivan Tan","orcid":"https://orcid.org/0009-0001-6300-5445"},"institutions":[{"id":"https://openalex.org/I79891267","display_name":"Singapore Management University","ror":"https://ror.org/050qmg959","country_code":"SG","type":"education","lineage":["https://openalex.org/I79891267"]}],"countries":["SG"],"is_corresponding":false,"raw_author_name":"Ivan Tan","raw_affiliation_strings":["Singapore Management University, Singapore, Singapore"],"raw_orcid":"https://orcid.org/0009-0001-6300-5445","affiliations":[{"raw_affiliation_string":"Singapore Management University, Singapore, Singapore","institution_ids":["https://openalex.org/I79891267"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5053470148","display_name":"Christopher M. Poskitt","orcid":"https://orcid.org/0000-0002-9376-2471"},"institutions":[{"id":"https://openalex.org/I79891267","display_name":"Singapore Management University","ror":"https://ror.org/050qmg959","country_code":"SG","type":"education","lineage":["https://openalex.org/I79891267"]}],"countries":["SG"],"is_corresponding":false,"raw_author_name":"Christopher M. Poskitt","raw_affiliation_strings":["Singapore Management University, Singapore, Singapore"],"raw_orcid":"https://orcid.org/0000-0002-9376-2471","affiliations":[{"raw_affiliation_string":"Singapore Management University, Singapore, Singapore","institution_ids":["https://openalex.org/I79891267"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":4.8267,"has_fulltext":true,"cited_by_count":7,"citation_normalized_percentile":{"value":0.94995576,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":95,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"1307","last_page":"1313"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10430","display_name":"Software Engineering Techniques and Practices","score":0.9955999851226807,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12423","display_name":"Software Reliability and Analysis Research","score":0.9944999814033508,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.9907227754592896},{"id":"https://openalex.org/keywords/mistake","display_name":"Mistake","score":0.8873229622840881},{"id":"https://openalex.org/keywords/code-smell","display_name":"Code smell","score":0.8051248788833618},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7277854084968567},{"id":"https://openalex.org/keywords/maintainability","display_name":"Maintainability","score":0.6999178528785706},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.6214933395385742},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.569819450378418},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5023558139801025},{"id":"https://openalex.org/keywords/quality","display_name":"Quality (philosophy)","score":0.4622909724712372},{"id":"https://openalex.org/keywords/adaptation","display_name":"Adaptation (eye)","score":0.43170374631881714},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.398535817861557},{"id":"https://openalex.org/keywords/software-quality","display_name":"Software quality","score":0.3633269667625427},{"id":"https://openalex.org/keywords/software-development","display_name":"Software development","score":0.3582090139389038},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.0949849784374237},{"id":"https://openalex.org/keywords/psychology","display_name":"Psychology","score":0.07716497778892517}],"concepts":[{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.9907227754592896},{"id":"https://openalex.org/C2777179996","wikidata":"https://www.wikidata.org/wiki/Q911222","display_name":"Mistake","level":2,"score":0.8873229622840881},{"id":"https://openalex.org/C133237599","wikidata":"https://www.wikidata.org/wiki/Q2295111","display_name":"Code smell","level":5,"score":0.8051248788833618},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7277854084968567},{"id":"https://openalex.org/C160713754","wikidata":"https://www.wikidata.org/wiki/Q1389965","display_name":"Maintainability","level":2,"score":0.6999178528785706},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.6214933395385742},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.569819450378418},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5023558139801025},{"id":"https://openalex.org/C2779530757","wikidata":"https://www.wikidata.org/wiki/Q1207505","display_name":"Quality (philosophy)","level":2,"score":0.4622909724712372},{"id":"https://openalex.org/C139807058","wikidata":"https://www.wikidata.org/wiki/Q352374","display_name":"Adaptation (eye)","level":2,"score":0.43170374631881714},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.398535817861557},{"id":"https://openalex.org/C117447612","wikidata":"https://www.wikidata.org/wiki/Q1412670","display_name":"Software quality","level":4,"score":0.3633269667625427},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.3582090139389038},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0949849784374237},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.07716497778892517},{"id":"https://openalex.org/C169760540","wikidata":"https://www.wikidata.org/wiki/Q207011","display_name":"Neuroscience","level":1,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C199539241","wikidata":"https://www.wikidata.org/wiki/Q7748","display_name":"Law","level":1,"score":0.0},{"id":"https://openalex.org/C17744445","wikidata":"https://www.wikidata.org/wiki/Q36442","display_name":"Political science","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3626252.3630856","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3626252.3630856","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3626252.3630856","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3626252.3630856","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3626252.3630856","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3626252.3630856","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4392564437.pdf","grobid_xml":"https://content.openalex.org/works/W4392564437.grobid-xml"},"referenced_works_count":19,"referenced_works":["https://openalex.org/W221670187","https://openalex.org/W1869539251","https://openalex.org/W2051525497","https://openalex.org/W2069608638","https://openalex.org/W2153887189","https://openalex.org/W2402199355","https://openalex.org/W2908873094","https://openalex.org/W2935052825","https://openalex.org/W2971006999","https://openalex.org/W3027808190","https://openalex.org/W3107765030","https://openalex.org/W3134953867","https://openalex.org/W3213561889","https://openalex.org/W4213340858","https://openalex.org/W4254008989","https://openalex.org/W4284892294","https://openalex.org/W4293227215","https://openalex.org/W4312423270","https://openalex.org/W4382652752"],"related_works":["https://openalex.org/W2088986462","https://openalex.org/W2780981476","https://openalex.org/W2146134503","https://openalex.org/W3166181464","https://openalex.org/W2955607951","https://openalex.org/W2187939805","https://openalex.org/W125071098","https://openalex.org/W2026866620","https://openalex.org/W2512989791","https://openalex.org/W2517910349"],"abstract_inverted_index":{"Programming":[0],"problems":[1],"can":[2,21,46],"be":[3,47],"solved":[4],"in":[5,31,105,178],"a":[6,99,111,120,160,166,172,188],"multitude":[7],"of":[8,15,34,89],"functionally":[9],"correct":[10],"ways,":[11],"but":[12],"the":[13,32,129,141,207],"quality":[14,26],"these":[16],"solutions":[17],"(e.g.":[18,42],"readability,":[19],"maintainability)":[20],"vary":[22],"immensely.":[23],"When":[24],"code":[25,121,142],"is":[27,76,126,134],"poor,":[28],"symptoms":[29],"emerge":[30],"form":[33],"'code":[35],"smells',":[36],"which":[37,106,179],"are":[38,138],"specific":[39],"negative":[40],"characteristics":[41],"duplicate":[43],"code)":[44],"that":[45,77,131,146,157,195],"resolved":[48],"by":[49],"applying":[50],"refactoring":[51,86,133,149,183],"patterns.":[52],"Many":[53],"undergraduate":[54],"computing":[55],"curricula":[56],"train":[57],"students":[58,107,137,196],"on":[59,69,128],"this":[60,78,95],"software":[61],"engineering":[62],"practice,":[63,155],"often":[64],"doing":[65],"so":[66],"via":[67],"exercises":[68,184,205],"unfamiliar":[70],"instructor-provided":[71],"code.":[72],"Our":[73],"observation,":[74],"however,":[75],"makes":[79],"it":[80,147,158],"harder":[81],"for":[82],"novices":[83],"to":[84,102,115,151,163],"internalise":[85],"as":[87],"part":[88],"their":[90,152],"own":[91],"development":[92,154],"practices.":[93],"In":[94],"paper,":[96],"we":[97],"propose":[98],"new":[100],"approach":[101],"teaching":[103],"refactoring,":[104],"must":[108],"first":[109],"complete":[110],"programming":[112],"exercise":[113],"constrained":[114],"ensure":[116],"they":[117,180],"will":[118],"produce":[119],"smell.":[122],"This":[123],"simple":[124],"intervention":[125],"based":[127],"idea":[130],"learning":[132],"easier":[135],"if":[136],"familiar":[139],"with":[140,174],"(having":[143],"built":[144],"it),":[145],"brings":[148],"closer":[150],"regular":[153],"and":[156,170,190,201],"presents":[159],"powerful":[161],"opportunity":[162],"learn":[164],"from":[165],"'mistake'.":[167],"We":[168],"designed":[169],"conducted":[171],"study":[173],"35":[175],"novice":[176],"undergraduates":[177],"completed":[181],"various":[182],"alternately":[185],"taught":[186],"using":[187,206],"traditional":[189],"our":[191],"'mistake-based'":[192],"approach,":[193],"finding":[194],"were":[197],"significantly":[198],"more":[199],"effective":[200],"confident":[202],"at":[203],"completing":[204],"latter.":[208]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":6}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2024-03-08T00:00:00"}
