{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,13]],"date-time":"2025-10-13T09:04:48Z","timestamp":1760346288902,"version":"3.41.0"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2013,1,1]],"date-time":"2013-01-01T00:00:00Z","timestamp":1356998400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Madrid regional government","award":["S2009TIC-1465 PROMETIDOS-CM"],"award-info":[{"award-number":["S2009TIC-1465 PROMETIDOS-CM"]}]},{"DOI":"10.13039\/501100003329","name":"Ministerio de Econom\u00eda y Competitividad","doi-asserted-by":"publisher","award":["TIN2009-14599-C03-03 DESAFIOS10","TIN-2008-05624 DOVES"],"award-info":[{"award-number":["TIN2009-14599-C03-03 DESAFIOS10","TIN-2008-05624 DOVES"]}],"id":[{"id":"10.13039\/501100003329","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Educ."],"published-print":{"date-parts":[[2013,1]]},"abstract":"<jats:p>\n            We present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called\n            <jats:italic>shared resources<\/jats:italic>\n            ), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a\n            <jats:italic>lingua franca<\/jats:italic>\n            that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments. This method has been in use, with slight variations, for some 15 years, surviving changes in the programming language and course length. In this article, we describe the components and structure of the current incarnation of the course\u2014which uses Java as target language\u2014and some tools used to support our method. We provide a detailed description of the different outcomes that the model-driven approach delivers (validation of the initial design, automatic generation of tests, and mechanical generation of code) from a teaching perspective. A critical discussion on the perceived advantages and risks of our approach follows, including some proposals on how these risks can be minimized. We include a statistical analysis to show that our method has a positive impact in the student ability to understand concurrency and to generate correct code.\n          <\/jats:p>","DOI":"10.1145\/2414446.2414451","type":"journal-article","created":{"date-parts":[[2013,2,5]],"date-time":"2013-02-05T13:19:41Z","timestamp":1360070381000},"page":"1-19","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["A model-driven approach to teaching concurrency"],"prefix":"10.1145","volume":"13","author":[{"given":"Manuel","family":"Carro","sequence":"first","affiliation":[{"name":"Universidad Polit\u00e9cnica de Madrid and IMDEA Software Institute"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"\u00c1ngel","family":"Herranz","sequence":"additional","affiliation":[{"name":"Universidad Polit\u00e9cnica de Madrid"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Julio","family":"Mari\u00f1o","sequence":"additional","affiliation":[{"name":"Universidad Polit\u00e9cnica de Madrid"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2013,2,7]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-30080-9_7"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1026487.1008083"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02652-2_5"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89287-8_1"},{"key":"e_1_2_1_5_1","unstructured":"Carro M. Herranz A. and Mari\u00f1o J. 2009. Concurrent programming. http:\/\/ocw.upm.es\/lenguajes-y-sistemas-informaticos\/programacion-concurrente. In Spanish.  Carro M. Herranz A. and Mari\u00f1o J. 2009. Concurrent programming. http:\/\/ocw.upm.es\/lenguajes-y-sistemas-informaticos\/programacion-concurrente. In Spanish."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/10720076"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/268819.268844"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(96)00032-9"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.238301"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2157136.2157285"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2187671.2187678"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-04570-7_9"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31762-0_11"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/177492.177726"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/579617"},{"volume-title":"JML: A Notation for Detailed Design. Behavioral Specifications of Businesses and Systems, 175--188.","year":"1999","author":"Leavens G. T.","key":"e_1_2_1_17_1"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.264"},{"key":"e_1_2_1_19_1","unstructured":"Piontek M. E. 2008. Best Practices for Designing and Grading Exams. Tech. rep. 24 Center for Research on Learning and Teaching University of Michigan. http:\/\/www.crlt.umich.edu\/publinks\/CRLT_no24.pdf.  Piontek M. E. 2008. Best Practices for Designing and Grading Exams. Tech. rep. 24 Center for Research on Learning and Teaching University of Michigan. http:\/\/www.crlt.umich.edu\/publinks\/CRLT_no24.pdf."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1953163.1953222"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869542.1869613"},{"key":"e_1_2_1_22_1","unstructured":"Spivey J. M. 1992. The Z Notation: A Reference Manual. Prentice Hall Hertfordshire UK.   Spivey J. M. 1992. The Z Notation: A Reference Manual. Prentice Hall Hertfordshire UK."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639950.1639973"},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Taft T. Duff R. Brukardt R. and E.Ploedereder Eds. 2001. Consolidated Ada Reference Manual. Language and Standard Libraries International Standard ISO\/IEC 8652\/1995(E) with Technical Corrigendum 1. Springer-Verlag.   Taft T. Duff R. Brukardt R. and E.Ploedereder Eds. 2001. Consolidated Ada Reference Manual. Language and Standard Libraries International Standard ISO\/IEC 8652\/1995(E) with Technical Corrigendum 1. Springer-Verlag.","DOI":"10.1007\/3-540-45340-7"},{"volume":"65","volume-title":"Proceedings of the Communicating Process Architectures Conference (CPA '07)","author":"Welch P. H.","key":"e_1_2_1_25_1"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/107004.107033"}],"container-title":["ACM Transactions on Computing Education"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2414446.2414451","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2414446.2414451","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:35:15Z","timestamp":1750235715000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2414446.2414451"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,1]]},"references-count":26,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2013,1]]}},"alternative-id":["10.1145\/2414446.2414451"],"URL":"https:\/\/doi.org\/10.1145\/2414446.2414451","relation":{},"ISSN":["1946-6226"],"issn-type":[{"type":"electronic","value":"1946-6226"}],"subject":[],"published":{"date-parts":[[2013,1]]},"assertion":[{"value":"2011-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-02-07","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}