{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,8]],"date-time":"2025-12-08T22:10:16Z","timestamp":1765231816707,"version":"3.41.0"},"reference-count":15,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2009,6,25]],"date-time":"2009-06-25T00:00:00Z","timestamp":1245888000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGCSE Bull."],"published-print":{"date-parts":[[2009,6,25]]},"abstract":"<jats:p>We report on our experience in teaching introductory courses on programming based on formal specification and program calculation, in two different Computer Science programmes. We favour the use of logic as a tool, the notion of program as a formal entity, as well as some issues associated with efficiency. We also review and use in practical cases some program transformation strategies, such as generalisation, tupling and modularisation. We describe our approach, its advantages and drawbacks. Furthermore, we present some preliminary results from an ongoing qualitative research which intends to characterise, describe and understand the students' experiences when taking these courses.<\/jats:p>","DOI":"10.1145\/1595453.1595459","type":"journal-article","created":{"date-parts":[[2009,8,24]],"date-time":"2009-08-24T14:08:31Z","timestamp":1251122911000},"page":"31-37","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["An introductory course on programming based on formal specification and program calculation"],"prefix":"10.1145","volume":"41","author":[{"given":"Javier","family":"Blanco","sequence":"first","affiliation":[{"name":"Fa.M.A.F. - U.N.C., C\u00f3rdoba, Argentina"}]},{"given":"Leticia","family":"Losano","sequence":"additional","affiliation":[{"name":"Fa.M.A.F. - U.N.C., C\u00f3rdoba, Argentina"}]},{"given":"Nazareno","family":"Aguirre","sequence":"additional","affiliation":[{"name":"F.C.E.F.Q.yN. - U.N.R.C., R\u00edo Cuarto, Argentina"}]},{"given":"Mar\u00eda Marta","family":"Novaira","sequence":"additional","affiliation":[{"name":"F.C.E.F.Q.yN. - U.N.R.C., R\u00edo Cuarto, Argentina"}]},{"given":"Sonia","family":"Permigiani","sequence":"additional","affiliation":[{"name":"F.C.E.F.Q.yN. - U.N.R.C., R\u00edo Cuarto, Argentina"}]},{"given":"Gast\u00f3n","family":"Scilingo","sequence":"additional","affiliation":[{"name":"F.C.E.F.Q.yN. - U.N.R.C., R\u00edo Cuarto, Argentina"}]}],"member":"320","published-online":{"date-parts":[[2009,6,25]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Program Construction: Calculating Implementations from Specifications","author":"Backhouse R.","year":"2003","unstructured":"Backhouse , R. Program Construction: Calculating Implementations from Specifications , John Wiley & amp; Sons, 2003 . Backhouse, R. Program Construction: Calculating Implementations from Specifications, John Wiley &amp; Sons, 2003."},{"key":"e_1_2_1_2_1","volume-title":"Fa.M.A.F","author":"Blanco J.","year":"2008","unstructured":"Blanco , J. , Smith , S. and Barsotti , D . C&amp;#225;lculo de Programas , Fa.M.A.F , U.N.C. , 2008 . Blanco, J., Smith, S. and Barsotti, D. C&amp;#225;lculo de Programas, Fa.M.A.F, U.N.C., 2008."},{"key":"e_1_2_1_3_1","first-page":"289","volume":"1022","author":"Clack C.","year":"1995","unstructured":"Clack , C. and Myers , C. The Dys-Functional Student in LNCS 1022 , 289 -- 309 , Springer, 1995 . Clack, C. and Myers, C. The Dys-Functional Student in LNCS 1022, 289--309, Springer, 1995.","journal-title":"The Dys-Functional Student in LNCS"},{"key":"e_1_2_1_4_1","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4613-9706-9","volume-title":"Programming in the 1990s: An Introduction to the Calculation of Programs","author":"Cohen E.","year":"1990","unstructured":"Cohen , E. Programming in the 1990s: An Introduction to the Calculation of Programs , Springer-Verlag , 1990 . Cohen, E. Programming in the 1990s: An Introduction to the Calculation of Programs, Springer-Verlag, 1990."},{"key":"e_1_2_1_5_1","volume-title":"A Discipline of Programming","author":"Dijkstra E.","year":"1976","unstructured":"Dijkstra , E. A Discipline of Programming , Prentice Hall , 1976 . Dijkstra, E. A Discipline of Programming, Prentice Hall, 1976."},{"key":"e_1_2_1_6_1","volume-title":"A Method of Programming","author":"Dijkstra E.","year":"1988","unstructured":"Dijkstra , E. and Feijen , W . A Method of Programming , Addison-Wesley , 1988 . Dijkstra, E. and Feijen, W. A Method of Programming, Addison-Wesley, 1988."},{"key":"e_1_2_1_7_1","volume-title":"Monographs in Computer Science","author":"Dijkstra E.","year":"1990","unstructured":"Dijkstra , E. and Scholten , C . Predicate Calculus and Program Semantics , Monographs in Computer Science , Springer-Verlag , 1990 . Dijkstra, E. and Scholten, C. Predicate Calculus and Program Semantics, Monographs in Computer Science, Springer-Verlag, 1990."},{"key":"e_1_2_1_8_1","volume-title":"Monographs in Computer Science","author":"Dijkstra E.","year":"1993","unstructured":"Dijkstra , E. and Schneider , F . A Logical Approach to Discrete Math , Monographs in Computer Science , Springer-Verlag , 1993 . Dijkstra, E. and Schneider, F. A Logical Approach to Discrete Math, Monographs in Computer Science, Springer-Verlag, 1993."},{"key":"e_1_2_1_9_1","volume-title":"Werkcollege Functioneel Programmeren","author":"Fokkinga M.","year":"1996","unstructured":"Fokkinga , M. , Werkcollege Functioneel Programmeren , University of Twente , 1996 . Fokkinga, M., Werkcollege Functioneel Programmeren, University of Twente, 1996."},{"key":"e_1_2_1_10_1","volume-title":"Monographs in Computer Science","author":"Gries D.","year":"1981","unstructured":"Gries , D. The Science of Programming , Monographs in Computer Science , Springer-Verlag , 1981 . Gries, D. The Science of Programming, Monographs in Computer Science, Springer-Verlag, 1981."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1124706.1121469"},{"key":"e_1_2_1_13_1","volume-title":"Programming: The Derivation of Algorithms","author":"Kaldewaij A.","year":"1990","unstructured":"Kaldewaij , A. Programming: The Derivation of Algorithms , Prentice Hall , 1990 . Kaldewaij, A. Programming: The Derivation of Algorithms, Prentice Hall, 1990."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1016\/0147-1767(85)90062-8"},{"key":"e_1_2_1_15_1","volume-title":"Pub-AW","author":"Liskov B.","year":"2000","unstructured":"Liskov , B. and Guttag , J . Program Development in Java: Abstraction, Specification and Objetc-oriented Design , Pub-AW , 2000 . Liskov, B. and Guttag, J. Program Development in Java: Abstraction, Specification and Objetc-oriented Design, Pub-AW, 2000."},{"key":"e_1_2_1_16_1","volume-title":"Object-Oriented Software Construction","author":"Meyer B.","year":"2000","unstructured":"Meyer , B. Object-Oriented Software Construction , Prentice Hall , 2000 . Meyer, B. Object-Oriented Software Construction, Prentice Hall, 2000."}],"container-title":["ACM SIGCSE Bulletin"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1595453.1595459","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1595453.1595459","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:30:03Z","timestamp":1750253403000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1595453.1595459"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,6,25]]},"references-count":15,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2009,6,25]]}},"alternative-id":["10.1145\/1595453.1595459"],"URL":"https:\/\/doi.org\/10.1145\/1595453.1595459","relation":{},"ISSN":["0097-8418"],"issn-type":[{"type":"print","value":"0097-8418"}],"subject":[],"published":{"date-parts":[[2009,6,25]]},"assertion":[{"value":"2009-06-25","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}