{"id":2659,"date":"2020-04-22T12:20:10","date_gmt":"2020-04-22T12:20:10","guid":{"rendered":"http:\/\/cricca.disi.unitn.it\/montresor\/?page_id=2659"},"modified":"2023-05-19T13:27:33","modified_gmt":"2023-05-19T13:27:33","slug":"problem-solving","status":"publish","type":"page","link":"http:\/\/cricca.disi.unitn.it\/montresor\/teaching\/lcse\/letture\/problem-solving\/","title":{"rendered":"Problem solving"},"content":{"rendered":"<p>The topic of this lec\u00adtu\u00adre is pro\u00adblem-sol\u00adving. You might say, \u201cWhat a vast topic.\u201d True. It\u2019s such a gene\u00adral term that we cer\u00adtain\u00adly can\u2019t asso\u00adcia\u00adte it only with com\u00adpu\u00adter scien\u00adce. Certainly, mathe\u00adma\u00adti\u00adcians and phy\u00adsi\u00adcists have been using this term for deca\u00addes. There is a very famous book, \u201cHow to Solve It\u201d by George P\u00f3lya, which descri\u00adbes a series of methods for sol\u00adving mathe\u00adma\u00adti\u00adcal pro\u00adblems. Take a look at the <a href=\"https:\/\/en.wikipedia.org\/wiki\/How_to_Solve_It\">Wikipedia page<\/a> dedi\u00adca\u00adted to the&nbsp;book.<\/p>\n<p>n the field of com\u00adpu\u00adter scien\u00adce, when we refer to pro\u00adblem-sol\u00adving, we often refer to the con\u00adcept of <a href=\"https:\/\/www.encyclopedia.com\/computing\/dictionaries-thesauruses-pictures-and-press-releases\/stepwise-refinement\">ste\u00adp\u00adwi\u00adse refi\u00adne\u00adment<\/a>, which was pro\u00admo\u00adted by Wirth in a famous article:<\/p>\n<ul>\n<li>Niklaus Wirth. <a href=\"https:\/\/pdfs.semanticscholar.org\/1d2c\/e8f0c129985fcf2dea5cac6823bfcac90938.pdf\">Program Development by Stepwise Refinement<\/a>. Communications of the <span class=\"caps\">ACM<\/span> 14(4):221\u2013227 (1971)<\/li>\n<\/ul>\n<p>It\u2019s such a clas\u00adsic that you can\u2019t help but know it. Unfortunately, this arti\u00adcle is older than me (by three mon\u00adths) and it sho\u00adws, in terms of sty\u00adle. Therefore, I ask you to at lea\u00adst take a look at the intro\u00adduc\u00adtion. If you want, you can tac\u00adkle it more calm\u00adly later on. Alternatively, explo\u00adre the web loo\u00adking for \u201cste\u00adp\u00adwi\u00adse refi\u00adne\u00adment\u201d to try to under\u00adstand how this tech\u00adni\u00adque is described.<\/p>\n<p>Following Wirth\u2019s arti\u00adcle, most text\u00adbooks dea\u00adling with pro\u00adgram\u00adming talk about this tech\u00adni\u00adque, perhaps refer\u00adring to it as a \u201ctop-down approach\u201d, often pro\u00adpo\u00adsing exam\u00adples of its appli\u00adca\u00adtion. Elliot Soloway, howe\u00adver, makes a very accu\u00adra\u00adte cri\u00adti\u00adci\u00adsm of this induc\u00adti\u00adve approach, then pro\u00admo\u00adting his vision based on pro\u00adgram\u00adming plans that we have seen tal\u00adking about the role of varia\u00adbles and pro\u00adgram\u00adming patterns.<\/p>\n<ul>\n<li>Elliot Soloway. <a href=\"https:\/\/drive.google.com\/open?id=1KjWfm9yhHb4upsSfeSImoQVnNexQ8Xu7\">Learning to Program = Learning to Construct Mechanisms and Explanations<\/a>. Commun. <span class=\"caps\">ACM<\/span> 29(9): 850\u2013858 (1986)<\/li>\n<\/ul>\n<p>Leggete la par\u00adte evi\u00adden\u00adzia\u00adta in gial\u00adlo (cri\u00adti\u00adca) e la par\u00adte evi\u00adden\u00adzia\u00adta in rosa (pro\u00adpo\u00adsta). Se poi vole\u00adte, affron\u00adta\u00adte con cal\u00adma l\u2019in\u00adte\u00adro arti\u00adco\u00adlo per rive\u00adde\u00adre i con\u00adcet\u00adti del\u00adla lezio\u00adne su&nbsp;<span class=\"caps\">PRIMM<\/span>.<\/p>\n<p>Read the part highlighted in yel\u00adlow (cri\u00adti\u00adci\u00adsm) and the part highlighted in pink (pro\u00adpo\u00adsal). If you want, calm\u00adly tac\u00adkle the enti\u00adre arti\u00adcle to review the con\u00adcep\u00adts of the les\u00adson on&nbsp;<span class=\"caps\">PRIMM<\/span>.<\/p>\n<p>Some have tried to \u201cjot down\u201d some rules, simi\u00adlar to tho\u00adse of Polya, to tac\u00adkle pro\u00adblem-sol\u00adving in the com\u00adpu\u00adter&nbsp;field:<\/p>\n<ul>\n<li>Jorge Vasconcelos. <a href=\"https:\/\/www.amanyadav.org\/CEP991A\/wp-content\/uploads\/2014\/09\/Week3_Algorithm_Strategies-for-Algorithmic-Problem-Solving.pdf\">Basic Strategy for Algorithmic Problem Solving<\/a>.<\/li>\n<\/ul>\n<p>At this point, I ask you to reflect on your pro\u00adcess of sol\u00adving pro\u00adgram\u00adming pro\u00adblems. I\u2019m not tal\u00adking about com\u00adplex pro\u00adgrams (the size of our cour\u00adse pro\u00adjec\u00adts), but sim\u00adple tasks that can be pro\u00adpo\u00adsed to students.<\/p>\n<p>As an exam\u00adple, I pro\u00adpo\u00adse a series of pro\u00adblems found in text\u00adbooks for Scientific High Schools \u2014 Applied Sciences:<\/p>\n<ul>\n<li>Choose one<br>\u201cSlow down for a moment\u201d and try to sol\u00adve it not all at once, but by try\u00ading to use ste\u00adp\u00adwi\u00adse refi\u00adne\u00adment tech\u00adni\u00adques; com\u00adpa\u00adre with Vasconcelos\u2019 questions.<\/li>\n<li>Try to reflect on how you would pre\u00adsent the pro\u00adblem to students<\/li>\n<\/ul>\n<p>Here\u2019s the list of problems:<\/p>\n<ul>\n<li>Write an algo\u00adri\u00adthm to print n rows of Pascal\u2019s triangle<\/li>\n<li>Write an algo\u00adri\u00adthm to deter\u00admi\u00adne if a num\u00adber n is per\u00adfect (it is equal to the sum of its divisors)<\/li>\n<li>Write an algo\u00adri\u00adthm that con\u00adverts a deci\u00admal num\u00adber n into its equi\u00adva\u00adlent in bina\u00adry, hexa\u00adde\u00adci\u00admal,&nbsp;octal<\/li>\n<li>Write an algo\u00adri\u00adthm that prin\u00adts all the num\u00adbers that appear more than once in an input vector<\/li>\n<\/ul>\n<p>From our mathematics\/physics stu\u00adden\u00adts, I would be inte\u00adre\u00adsted in having a discus\u00adsion on how the topic of pro\u00adblem-sol\u00adving is approa\u00adched in their fields.<\/p>\n<p><span style=\"color: revert; font-size: revert; font-weight: revert; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\">Additional rea\u00adding<\/span><\/p>\n<p>In addi\u00adtion to the mate\u00adrial pre\u00adsen\u00adted, an arti\u00adcle that addres\u00adses pro\u00adblem-sol\u00adving from a more gene\u00adral point of view is the following<\/p>\n<ul>\n<li>D. Jonassen. <a href=\"https:\/\/link.springer.com\/content\/pdf\/10.1007\/BF02300500.pdf\"><em>Toward a Design Theory of Problem Solving<\/em><\/a>. Educational Technology Research and Development, 48(4):63\u201385 (2000).<\/li>\n<\/ul>\n<h4>Materiale lezione<\/h4>\n<ul>\n<li>Slide pre\u00adsen\u00adta\u00adte duran\u00adte la lezio\u00adne [<a href=\"http:\/\/disi.unitn.it\/~montreso\/lcse\/slides\/08-problem-solving.pdf\">Link<\/a>]<\/li>\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>The topic of this lec\u00adtu\u00adre is pro\u00ad\u00adblem-sol\u00ad\u00adving. You might say, \u201cWhat a vast topic.\u201d True. It\u2019s such a gene\u00adral term that we cer\u00adtain\u00adly can\u2019t asso\u00adcia\u00adte it only with com\u00adpu\u00adter scien\u00adce. Certainly, mathe\u00adma\u00adti\u00adcians and phy\u00adsi\u00adcists have been using this term for deca\u00addes. There is a very famous book, \u201cHow to Solve It\u201d by George P\u00f3lya, which&nbsp;[\u2026]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2311,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"class_list":["post-2659","page","type-page","status-publish","hentry","post"],"_links":{"self":[{"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/pages\/2659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/comments?post=2659"}],"version-history":[{"count":10,"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/pages\/2659\/revisions"}],"predecessor-version":[{"id":4853,"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/pages\/2659\/revisions\/4853"}],"up":[{"embeddable":true,"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/pages\/2311"}],"wp:attachment":[{"href":"http:\/\/cricca.disi.unitn.it\/montresor\/wp-json\/wp\/v2\/media?parent=2659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}