{"id":7783,"date":"2016-08-26T09:00:39","date_gmt":"2016-08-26T13:00:39","guid":{"rendered":"https:\/\/blogs.mathworks.com\/pick\/?p=7783"},"modified":"2020-03-26T12:56:17","modified_gmt":"2020-03-26T16:56:17","slug":"teaching-calculus-with-matlab","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/pick\/2016\/08\/26\/teaching-calculus-with-matlab\/","title":{"rendered":"Teaching Calculus with MATLAB"},"content":{"rendered":"<div class=\"content\"><p><a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/15007\">Jiro<\/a>'s pick this week is <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/58-routh-m\">Teaching Calculus with MATLAB<\/a> by the <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/8467123\">TCM Team<\/a>.<\/p><p>I really like these apps that the folks from TU Darmstadt and University of Stuttgart created for teaching various calculus concepts. Many concepts taught in calculus can can be better understood if the students can visualize them. Back when I was in college, I remember learning the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Newton%27s_method\">Newton's Method<\/a> on paper, drawing tangent lines iteratively to find a root of a function. Just the fact I could draw (visualize) the process made it easier to understand.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/jiro\/potw_teaching_calculus\/newtons_method.png\" alt=\"\"> <\/p><p>It would be even better if I could repeat this learning experience for an arbitrary function. Using interactive apps like the ones the TCM Team made improves the experience greatly.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/jiro\/potw_teaching_calculus\/newtons_method_app.gif\" alt=\"\"> <\/p><p>Here are a couple of other examples, polynomial interpolation and steepest descent.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/jiro\/potw_teaching_calculus\/interpolation_steepest_app.gif\" alt=\"\"> <\/p><p>In addition to the pure usefulness of these apps in teaching situations, here are my other reasons I like this submission.<\/p><div><ul><li>Well-written MATLAB code. All of the apps are written in a consistent manner, making use of nested functions to share two common structures across the app, one for maintaining the data specific to the concept and another for the user interface. Well-written code means maintainable code.<\/li><li>Similar UI for all apps. Because all apps look similar with similar set of buttons and parameters, it's easy for you to use any of the other apps once you learn to use one.<\/li><li>Because of points 1 and 2, the team can easily create other apps for other concepts, which they intend to do in the future.<\/li><\/ul><\/div><p><b>Comments<\/b><\/p><p>Give this a try and let us know what you think <a href=\"https:\/\/blogs.mathworks.com\/pick\/?p=7783#respond\">here<\/a> or leave a <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/58-routh-m#comments\">comment<\/a> for the TCM Team.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_fea151b15d4d4a5aad45e2bdb2d67364() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='fea151b15d4d4a5aad45e2bdb2d67364 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' fea151b15d4d4a5aad45e2bdb2d67364';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2016 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_fea151b15d4d4a5aad45e2bdb2d67364()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2016a<br><\/p><p class=\"footer\"><br>\r\n      Published with MATLAB&reg; R2016a<br><\/p><\/div><!--\r\nfea151b15d4d4a5aad45e2bdb2d67364 ##### SOURCE BEGIN #####\r\n%%\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/15007\r\n% Jiro>'s pick this week is\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/58-routh-m Teaching\r\n% Calculus with MATLAB> by the\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/8467123 TCM\r\n% Team>.\r\n%\r\n% I really like these apps that the folks from TU Darmstadt and University\r\n% of Stuttgart created for teaching various calculus concepts. Many\r\n% concepts taught in calculus can can be better understood if the students\r\n% can visualize them. Back when I was in college, I remember learning the\r\n% <https:\/\/en.wikipedia.org\/wiki\/Newton%27s_method Newton's Method> on\r\n% paper, drawing tangent lines iteratively to find a root of a function.\r\n% Just the fact I could draw (visualize) the process made it easier to\r\n% understand. \r\n%\r\n% <<newtons_method.png>>\r\n%\r\n% It would be even better if I could repeat this learning experience for an\r\n% arbitrary function. Using interactive apps like the ones the TCM Team\r\n% made improves the experience greatly.\r\n%\r\n% <<newtons_method_app.gif>>\r\n%\r\n% Here are a couple of other examples, polynomial interpolation and\r\n% steepest descent.\r\n%\r\n% <<interpolation_steepest_app.gif>>\r\n%\r\n% In addition to the pure usefulness of these apps in teaching situations,\r\n% here are my other reasons I like this submission.\r\n%\r\n% # Well-written MATLAB code. All of the apps are written in a consistent\r\n% manner, making use of nested functions to share two common structures\r\n% across the app, one for maintaining the data specific to the concept and\r\n% another for the user interface. Well-written code means maintainable\r\n% code.\r\n% # Similar UI for all apps. Because all apps look similar with similar set\r\n% of buttons and parameters, it's easy for you to use any of the other apps\r\n% once you learn to use one.\r\n% # Because of points 1 and 2, the team can easily create other\r\n% apps for other concepts, which they intend to do in the future.\r\n%\r\n% *Comments*\r\n%\r\n% Give this a try and let us know what you think\r\n% <https:\/\/blogs.mathworks.com\/pick\/?p=7783#respond here> or leave a\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/58-routh-m#comments\r\n% comment> for the TCM Team.\r\n##### SOURCE END ##### fea151b15d4d4a5aad45e2bdb2d67364\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/jiro\/potw_teaching_calculus\/newtons_method.png\" onError=\"this.style.display ='none';\" \/><\/div><p>Jiro's pick this week is Teaching Calculus with MATLAB by the TCM Team.I really like these apps that the folks from TU Darmstadt and University of Stuttgart created for teaching various calculus... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/pick\/2016\/08\/26\/teaching-calculus-with-matlab\/\">read more >><\/a><\/p>","protected":false},"author":35,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[37,16],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7783"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/comments?post=7783"}],"version-history":[{"count":4,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7783\/revisions"}],"predecessor-version":[{"id":7802,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7783\/revisions\/7802"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/media?parent=7783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/categories?post=7783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/tags?post=7783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}