{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:36:13Z","timestamp":1750221373238,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":26,"publisher":"ACM","license":[{"start":{"date-parts":[[2018,1,30]],"date-time":"2018-01-30T00:00:00Z","timestamp":1517270400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation (NSF)","doi-asserted-by":"publisher","award":["IIS-1250886"],"award-info":[{"award-number":["IIS-1250886"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2018,1,30]]},"DOI":"10.1145\/3160489.3160503","type":"proceedings-article","created":{"date-parts":[[2018,1,9]],"date-time":"2018-01-09T13:30:47Z","timestamp":1515504647000},"page":"97-104","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["How to teach \"modern C++\" to someone who already knows programming?"],"prefix":"10.1145","author":[{"given":"Adalbert Gerald Soosai","family":"Raj","sequence":"first","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Varun","family":"Naik","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jignesh M.","family":"Patel","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Richard","family":"Halverson","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,1,30]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2010. Keith Schwarz's C++ Course Reader. http:\/\/web.stanford.edu\/class\/cs106l\/handouts\/full_course_reader.pdf. (2010).  2010. Keith Schwarz's C++ Course Reader. http:\/\/web.stanford.edu\/class\/cs106l\/handouts\/full_course_reader.pdf. (2010)."},{"key":"e_1_3_2_1_2_1","unstructured":"2015. David Kieras's Using C++ Lambdas. http:\/\/umich.edu\/~eecs381\/handouts\/Lambda.pdf. (2015).  2015. David Kieras's Using C++ Lambdas. http:\/\/umich.edu\/~eecs381\/handouts\/Lambda.pdf. (2015)."},{"key":"e_1_3_2_1_3_1","unstructured":"2015. David Kieras's Using C++ Smart Pointers. http:\/\/umich.edu\/~eecs381\/handouts\/C++ 11_smart_ptrs.pdf. (2015).  2015. David Kieras's Using C++ Smart Pointers. http:\/\/umich.edu\/~eecs381\/handouts\/C++ 11_smart_ptrs.pdf. (2015)."},{"key":"e_1_3_2_1_4_1","unstructured":"2017. Erase-remove idiom in C++. https:\/\/en.wikipedia.org\/wiki\/Erase-remove_idiom. (2017).  2017. Erase-remove idiom in C++. https:\/\/en.wikipedia.org\/wiki\/Erase-remove_idiom. (2017)."},{"key":"e_1_3_2_1_5_1","unstructured":"2017. ISOCPP's C++ Videos. https:\/\/isocpp.org\/blog\/category\/video-on-demand. (2017).  2017. ISOCPP's C++ Videos. https:\/\/isocpp.org\/blog\/category\/video-on-demand. (2017)."},{"volume-title":"Meeting C++ Videos. http:\/\/meetingcpp.com\/.","year":"2017","key":"e_1_3_2_1_6_1","unstructured":"2017. Meeting C++ Videos. http:\/\/meetingcpp.com\/. ( 2017 ). 2017. Meeting C++ Videos. http:\/\/meetingcpp.com\/. (2017)."},{"key":"e_1_3_2_1_7_1","volume-title":"Experience in teaching C++ 11 within the undergraduate informatics curriculum. Informatics in Education-An International Journal Vol12_1","author":"Donchev Ivaylo","year":"2013","unstructured":"Ivaylo Donchev . 2013. Experience in teaching C++ 11 within the undergraduate informatics curriculum. Informatics in Education-An International Journal Vol12_1 ( 2013 ), 59--79. Ivaylo Donchev. 2013. Experience in teaching C++ 11 within the undergraduate informatics curriculum. Informatics in Education-An International Journal Vol12_1 (2013), 59--79."},{"key":"e_1_3_2_1_8_1","unstructured":"Kate Gregory. 2015. Stop teaching C. https:\/\/www.youtube.com\/watch?v=YnWhqhNdYyk&t=2002s. (2015).  Kate Gregory. 2015. Stop teaching C. https:\/\/www.youtube.com\/watch?v=YnWhqhNdYyk&t=2002s. (2015)."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028174.971404"},{"key":"e_1_3_2_1_10_1","unstructured":"Andrew Koenig and Barbara Moo. 2000. Accelerated C++: practical programming by example. Pearson Education India.  Andrew Koenig and Barbara Moo. 2000. Accelerated C++: practical programming by example. Pearson Education India."},{"key":"e_1_3_2_1_11_1","first-page":"44","article-title":"Rethinking how to teach C++ Part 1: Goals and principles","volume":"13","author":"Koenig A","year":"2000","unstructured":"A Koenig and BE Moo . 2000 . Rethinking how to teach C++ Part 1: Goals and principles . JOOP-Journal of Object-Oriented Programming 13 , 7 (2000), 44 -- 47 . A Koenig and BE Moo. 2000. Rethinking how to teach C++ Part 1: Goals and principles. JOOP-Journal of Object-Oriented Programming 13, 7 (2000), 44--47.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_12_1","first-page":"36","article-title":"Rethinking how to teach C++ Part 2: Two interesting decisions","volume":"13","author":"Koenig A","year":"2000","unstructured":"A Koenig and BE Moo . 2000 . Rethinking how to teach C++ Part 2: Two interesting decisions . JOOP-Journal of Object-Oriented Programming 13 , 8 (2000), 36 -- 40 . A Koenig and BE Moo. 2000. Rethinking how to teach C++ Part 2: Two interesting decisions. JOOP-Journal of Object-Oriented Programming 13, 8 (2000), 36--40.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_13_1","first-page":"35","article-title":"Rethinking how to teach C++ Part 3: The first data structures","volume":"13","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 3: The first data structures . JOOP-Journal of Object-Oriented Programming 13 , 9 (2001), 35 -- 38 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 3: The first data structures. JOOP-Journal of Object-Oriented Programming 13, 9 (2001), 35--38.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_14_1","first-page":"25","article-title":"Rethinking how to teach C++ Part 4: Emphasizing the library","volume":"13","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 4: Emphasizing the library . JOOP-Journal of Object-Oriented Programming 13 , 10 (2001), 25 -- 27 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 4: Emphasizing the library. JOOP-Journal of Object-Oriented Programming 13, 10 (2001), 25--27.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_15_1","first-page":"29","article-title":"Rethinking how to teach C++ Part 5: Working with strings","volume":"13","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 5: Working with strings . JOOP-Journal of Object-Oriented Programming 13 , 11 (2001), 29 -- 32 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 5: Working with strings. JOOP-Journal of Object-Oriented Programming 13, 11 (2001), 29--32.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_16_1","first-page":"29","article-title":"Rethinking how to teach C++ Part 6","volume":"13","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 6 : Analyzing Strings. JOOP-Journal of Object-Oriented Programming 13 , 12 (2001), 29 -- 32 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 6: Analyzing Strings. JOOP-Journal of Object-Oriented Programming 13, 12 (2001), 29--32.","journal-title":"Analyzing Strings. JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_17_1","first-page":"36","article-title":"Rethinking how to teach C++ Part 7: Payback time","volume":"14","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 7: Payback time . JOOP-Journal of Object-Oriented Programming 14 , 1 (2001), 36 -- 40 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 7: Payback time. JOOP-Journal of Object-Oriented Programming 14, 1 (2001), 36--40.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_18_1","first-page":"43","article-title":"Rethinking how to teach C++ Part 8: An interesting revision","volume":"14","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 8: An interesting revision . JOOP-Journal of Object-Oriented Programming 14 , 2 (2001), 43 -- 47 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 8: An interesting revision. JOOP-Journal of Object-Oriented Programming 14, 2 (2001), 43--47.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_19_1","first-page":"44","article-title":"Rethinking how to teach C++ Part 9: What we learned from our students","volume":"14","author":"Koenig A","year":"2001","unstructured":"A Koenig and BE Moo . 2001 . Rethinking how to teach C++ Part 9: What we learned from our students . JOOP-Journal of Object-Oriented Programming 14 , 3 (2001), 44 -- 47 . A Koenig and BE Moo. 2001. Rethinking how to teach C++ Part 9: What we learned from our students. JOOP-Journal of Object-Oriented Programming 14, 3 (2001), 44--47.","journal-title":"JOOP-Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_20_1","volume-title":"Providing intellectual focus to CS1\/CS2. 30, 1","author":"Long Timothy","year":"1998","unstructured":"Timothy Long , Bruce Weide , Paolo Bucci , David Gibson , Joe Hollingsworth , Murali Sitaraman , and Steve Edwards . 1998. Providing intellectual focus to CS1\/CS2. 30, 1 ( 1998 ), 252--256. Timothy Long, Bruce Weide, Paolo Bucci, David Gibson, Joe Hollingsworth, Murali Sitaraman, and Steve Edwards. 1998. Providing intellectual focus to CS1\/CS2. 30, 1 (1998), 252--256."},{"key":"e_1_3_2_1_21_1","volume-title":"Client view first: an exodus from implementation-biased teaching. 31, 1","author":"Long Timothy","year":"1999","unstructured":"Timothy Long , Bruce Weide , Paolo Bucci , and Murali Sitaraman . 1999. Client view first: an exodus from implementation-biased teaching. 31, 1 ( 1999 ), 136--140. Timothy Long, Bruce Weide, Paolo Bucci, and Murali Sitaraman. 1999. Client view first: an exodus from implementation-biased teaching. 31, 1 (1999), 136--140."},{"key":"e_1_3_2_1_22_1","first-page":"43","article-title":"Learning standard C++ as a new language","volume":"17","author":"Stroustrup Bjarne","year":"1999","unstructured":"Bjarne Stroustrup . 1999 . Learning standard C++ as a new language . CC Plus Plus Users Journal 17 (1999), 43 -- 54 . Bjarne Stroustrup. 1999. Learning standard C++ as a new language. CC Plus Plus Users Journal 17 (1999), 43--54.","journal-title":"CC Plus Plus Users Journal"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1536274.1536301"},{"key":"e_1_3_2_1_24_1","unstructured":"Bjarne Stroustrup. 2014. Programming: principles and practice using C++. Pearson Education.  Bjarne Stroustrup. 2014. Programming: principles and practice using C++. Pearson Education."},{"key":"e_1_3_2_1_25_1","unstructured":"Bjarne Stroustrup. 2016. C++11 - the new ISO C++ standard. http:\/\/www.stroustrup.com\/C++ 11FAQ.html. (2016).  Bjarne Stroustrup. 2016. C++11 - the new ISO C++ standard. http:\/\/www.stroustrup.com\/C++ 11FAQ.html. (2016)."},{"key":"e_1_3_2_1_26_1","unstructured":"TIOBE. 2017. TIOBE index for C++. htps:\/\/www.tiobe.com\/tiobe-index\/. (2017).  TIOBE. 2017. TIOBE index for C++. htps:\/\/www.tiobe.com\/tiobe-index\/. (2017)."}],"event":{"name":"ACE 2018: 20th Australasian Computing Education Conference","sponsor":["The University of Newcastle, Australia","CORE - Computing Research and Education","Southern Cross UNIVERSITY Southern Cross UNIVERSITY","SIGCSE ACM Special Interest Group on Computer Science Education"],"location":"Brisbane Queensland Australia","acronym":"ACE 2018"},"container-title":["Proceedings of the 20th Australasian Computing Education Conference"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3160489.3160503","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3160489.3160503","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3160489.3160503","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:26:37Z","timestamp":1750213597000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3160489.3160503"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,1,30]]},"references-count":26,"alternative-id":["10.1145\/3160489.3160503","10.1145\/3160489"],"URL":"https:\/\/doi.org\/10.1145\/3160489.3160503","relation":{},"subject":[],"published":{"date-parts":[[2018,1,30]]},"assertion":[{"value":"2018-01-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}