{"id":"https://openalex.org/W2278327507","doi":"https://doi.org/10.5555/2037151.2037174","title":"Introducing programming in a functions-first manner, using the Program by Design approach","display_name":"Introducing programming in a functions-first manner, using the Program by Design approach","publication_year":2011,"publication_date":"2011-10-01","ids":{"openalex":"https://openalex.org/W2278327507","doi":"https://doi.org/10.5555/2037151.2037174","mag":"2278327507"},"language":"en","primary_location":{"id":"mag:2278327507","is_oa":false,"landing_page_url":"https://dl.acm.org/doi/10.5555/2037151.2037174","pdf_url":null,"source":{"id":"https://openalex.org/S56112914","display_name":"Journal of computing sciences in colleges","issn_l":"1937-4763","issn":["1937-4763","1937-4771"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4361727485","host_organization_name":"Consortium for Computing Sciences in Colleges","host_organization_lineage":["https://openalex.org/P4361727485"],"host_organization_lineage_names":["Consortium for Computing Sciences in Colleges"],"type":"journal"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":"Journal of computing sciences in colleges","raw_type":null},"type":"article","indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5081131643","display_name":"Sharon M. Tuttle","orcid":null},"institutions":[{"id":"https://openalex.org/I192389796","display_name":"Humboldt State University","ror":"https://ror.org/02qt0xs84","country_code":"US","type":"education","lineage":["https://openalex.org/I192389796"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Sharon M. Tuttle","raw_affiliation_strings":["Humboldt State University, Arcata, CA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Humboldt State University, Arcata, CA#TAB#","institution_ids":["https://openalex.org/I192389796"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5081131643"],"corresponding_institution_ids":["https://openalex.org/I192389796"],"apc_list":null,"apc_paid":null,"fwci":0.5567,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.81784065,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":"27","issue":"1","first_page":"101","last_page":"101"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10533","display_name":"Teaching and Learning Programming","score":0.987500011920929,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"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/T10533","display_name":"Teaching and Learning Programming","score":0.987500011920929,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9605000019073486,"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"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9560999870300293,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8577232956886292},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6837254166603088},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5640543699264526},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.5220285058021545},{"id":"https://openalex.org/keywords/pace","display_name":"Pace","score":0.5112216472625732},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.50177001953125},{"id":"https://openalex.org/keywords/animation","display_name":"Animation","score":0.4681575298309326},{"id":"https://openalex.org/keywords/syntax-error","display_name":"Syntax error","score":0.42463287711143494},{"id":"https://openalex.org/keywords/fourth-generation-programming-language","display_name":"Fourth-generation programming language","score":0.410351037979126},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.3152071237564087},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.2068491280078888},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.16321396827697754},{"id":"https://openalex.org/keywords/computer-graphics","display_name":"Computer graphics (images)","score":0.11136439442634583},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.10831427574157715},{"id":"https://openalex.org/keywords/functional-logic-programming","display_name":"Functional logic programming","score":0.0929606556892395}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8577232956886292},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6837254166603088},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5640543699264526},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.5220285058021545},{"id":"https://openalex.org/C2777526511","wikidata":"https://www.wikidata.org/wiki/Q691543","display_name":"Pace","level":2,"score":0.5112216472625732},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.50177001953125},{"id":"https://openalex.org/C502989409","wikidata":"https://www.wikidata.org/wiki/Q11425","display_name":"Animation","level":2,"score":0.4681575298309326},{"id":"https://openalex.org/C11742125","wikidata":"https://www.wikidata.org/wiki/Q1195374","display_name":"Syntax error","level":4,"score":0.42463287711143494},{"id":"https://openalex.org/C145628200","wikidata":"https://www.wikidata.org/wiki/Q238137","display_name":"Fourth-generation programming language","level":5,"score":0.410351037979126},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3152071237564087},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.2068491280078888},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.16321396827697754},{"id":"https://openalex.org/C121684516","wikidata":"https://www.wikidata.org/wiki/Q7600677","display_name":"Computer graphics (images)","level":1,"score":0.11136439442634583},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.10831427574157715},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.0929606556892395},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:2278327507","is_oa":false,"landing_page_url":"https://dl.acm.org/doi/10.5555/2037151.2037174","pdf_url":null,"source":{"id":"https://openalex.org/S56112914","display_name":"Journal of computing sciences in colleges","issn_l":"1937-4763","issn":["1937-4763","1937-4771"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4361727485","host_organization_name":"Consortium for Computing Sciences in Colleges","host_organization_lineage":["https://openalex.org/P4361727485"],"host_organization_lineage_names":["Consortium for Computing Sciences in Colleges"],"type":"journal"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":"Journal of computing sciences in colleges","raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.44999998807907104,"display_name":"Industry, innovation and infrastructure","id":"https://metadata.un.org/sdg/9"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W591917463","https://openalex.org/W177054409","https://openalex.org/W1589830898","https://openalex.org/W2246022542","https://openalex.org/W1502431394","https://openalex.org/W2253831717","https://openalex.org/W1551738082","https://openalex.org/W1573757377","https://openalex.org/W1516150409","https://openalex.org/W2289031072","https://openalex.org/W2486654565","https://openalex.org/W2092762876","https://openalex.org/W3133213162","https://openalex.org/W1558288195","https://openalex.org/W2560981864","https://openalex.org/W2525050632","https://openalex.org/W2905151547","https://openalex.org/W3011332068","https://openalex.org/W195226782","https://openalex.org/W1979966850"],"abstract_inverted_index":{"Matthias":[0],"Felleisen":[1],"was":[2,27],"awarded":[3],"the":[4,23,54,68,88],"2011":[5],"SIGCSE":[6],"Award":[7],"for":[8,15,81,102,108,119],"Outstanding":[9],"Contribution":[10],"to":[11,41,121,149,157,167],"Computer":[12],"Science":[13],"Education":[14],"his":[16,18],"and":[17,31,45,57,100,104,154],"research":[19],"team's":[20],"work":[21],"on":[22],"TeachScheme!":[24],"project,":[25],"which":[26],"begun":[28],"in":[29,124,135],"1995,":[30],"is":[32],"now":[33],"called":[34,53],"Program":[112],"by":[36,113],"Design.":[37],"This":[38],"functions-first":[39],"approach":[40,153],"teaching":[42],"introductory":[43],"programming":[44,123,137,159],"problem-solving":[46],"features":[47],"a":[48,164],"robust":[49],"software":[50,60],"design":[51,55],"methodology":[52],"recipe,":[56],"emphasizes":[58],"good":[59],"engineering":[61],"practices,":[62],"such":[63],"as":[64,140],"early":[65],"testing,":[66],"from":[67],"beginning.":[69],"These":[70],"are":[71],"combined":[72],"with":[73,96,151],"an":[74],"integrated":[75],"development":[76],"environment":[77],"(IDE),":[78],"DrRacket,":[79],"designed":[80],"beginners,":[82],"featuring":[83],"different":[84,136,158],"language":[85],"levels":[86],"of":[87,128],"Scheme-like":[89],"language,":[90],"Racket,":[91],"that":[92],"combines":[93],"simple":[94],"syntax":[95],"customized":[97],"error":[98],"messages":[99],"support":[101,118],"graphics":[103],"animation":[105],"accessible":[106],"even":[107],"beginning":[109],"programmers.":[110],"The":[111],"Design":[114],"project":[115],"then":[116,155],"includes":[117],"transitioning":[120],"object-oriented":[122],"Java.":[125],"However,":[126],"many":[127],"this":[129,152],"approach's":[130],"concepts":[131],"can":[132,147],"be":[133],"applied":[134],"languages":[138,162],"(such":[139],"Java,":[141],"Python,":[142],"or":[143,145],"C++),":[144],"one":[146],"choose":[148],"start":[150],"transition":[156],"paradigms":[160],"and/or":[161],"at":[163],"pace":[165],"appropriate":[166],"your":[168],"situation.":[169]},"counts_by_year":[{"year":2012,"cited_by_count":1}],"updated_date":"2026-04-28T14:05:53.105641","created_date":"2025-10-10T00:00:00"}
