{"id":185,"date":"2009-09-21T10:56:38","date_gmt":"2009-09-21T17:56:38","guid":{"rendered":"http:\/\/35.225.155.113\/blog\/index.php\/2009\/09\/21\/learning_to_program\/"},"modified":"2019-10-13T13:14:14","modified_gmt":"2019-10-13T20:14:14","slug":"learning-to-program","status":"publish","type":"post","link":"https:\/\/www.weinstein.org\/blog\/index.php\/2009\/09\/learning-to-program.html","title":{"rendered":"Learning to Program"},"content":{"rendered":"<p style=\"margin-bottom: 0in;\">In <a href=\"http:\/\/wvhs.ipsd.org\/\">high school<\/a> I took my first formal<br \/>\ncourse in programming, an introduction to Computer Science with BASIC<br \/>\nand the good-old Apple \/\/e. My friends and I drove our teacher, Mrs.<br \/>\nMcBride, a bit batty. She knew we knew our stuff, but so did we. As a<br \/>\nresult a few of us would do anything but work. I hardly documented my<br \/>\ncode and when I did I&#8217;d write all kinds of nonsense to see if she was<br \/>\nactually checking. I was sloppy with my variables, created them<br \/>\nwhenever and wherever. Same with my logic, the code jumped around<br \/>\nfrom one GOTO to the next as it occurred to me. <a href=\"http:\/\/en.wikipedia.org\/wiki\/Spaghetti_code\">Spaghetti code<\/a> it its truest form, writing on the fly with no consideration of design.<\/p>\n<p>Yet I aced the course. I had so many<br \/>\npoints that I could have skipped the final and still have easily passed.<\/p>\n<p>How?<\/p>\n<p>Well an interesting dynamic developed,<br \/>\nI and a couple of my classmates comprehended enough that, even with<br \/>\nour lack of application our B and C work ended up as A++ because the<br \/>\nrest of the class was struggling. Struggling so much so that even on<br \/>\na curve set by us, others would have failed. So the next highest<br \/>\ngrouping of grades defined the grading curve, resulting in extra<br \/>\ncredit points for my friends and I.<\/p>\n<p>Introduction to Compute Science I in<br \/>\n<a href=\"http:\/\/www.elmhurst.edu\/\">college<\/a> was more of the same, minus the sliding scale. This despite<br \/>\nthe fact that the computers had changed along with the programming<br \/>\nlanguage, C and IBM clones. I aced my tests and programming exercises<br \/>\nand wondered how others failed to see that the Professor had<br \/>\nbasically written the answer on the blackboard, short a line or two<br \/>\nof code, while explaining the concept at hand.<\/p>\n<p><img decoding=\"async\" src=\"file:\/\/\/tmp\/moz-screenshot.png\" alt=\"\"><br \/>\n<span class=\"mt-enclosure mt-enclosure-image\" style=\"display: inline;\"><img decoding=\"async\" loading=\"lazy\" alt=\"Distribution of Grades\" src=\"http:\/\/pdw.weinstein.org\/files\/chart1.png\" class=\"mt-image-center\" style=\"margin: 0pt auto 20px; text-align: center; display: block;\" height=\"308\" width=\"480\"><\/span><\/p>\n<p style=\"margin-bottom: 0in;\">\nApparently, this type of grouping,<br \/>\nbetween those who start to develop a clear understand of the concepts and<br \/>\nthose who don&#8217;t isn&#8217;t that uncommon. You either pass, grasping all<br \/>\nthat has been covered or you fail to grasp even the most fundamental<br \/>\naspect of the theory and get left behind.<\/p>\n<p>So I&#8217;m just lucky, right? I just got<br \/>\nit. After all I remember going to a campus preview and being told by<br \/>\nthe head of the Computer Science department that. &#8220;No, we don&#8217;t<br \/>\nexpect incoming students to have had classes in programming prior to<br \/>\nentering our program.&#8221;<a class=\"sdfootnoteanc\" name=\"sdfootnote1anc\" href=\"#sdfootnote1sym\"><sup>1<\/sup><\/a><\/p>\n<p>Well Michael K\u00f6lling a Professor at<br \/>\nthe University of Kent notes in a recent posting, <a href=\"http:\/\/blogs.kent.ac.uk\/mik\/2009\/09\/04\/quality-oriented-teaching-of-programming\/\">Quality-oriented<br \/>\nteaching of programming<\/a>, that while this type of division has been<br \/>\ncommon for decades, it may be more about how the concepts are<br \/>\ntaught, one building on the other, than about any natural ability to<br \/>\n&#8220;just get it.&#8221;<\/p>\n<p>That is, if you don&#8217;t understand a<br \/>\nfundamental concept, however are you expecting to understand a more<br \/>\nadvanced one? Yet that&#8217;s exactly how Computer Science has been taught<br \/>\nfor years.<\/p>\n<p>I say he&#8217;s right.<\/p>\n<p>Consider my own subjective experience;<br \/>\nI struggled with the transition from BASIC to Pascal in high school.<br \/>\nAll those bad programming habits caught up to me. The light bulb<br \/>\ndidn&#8217;t go off until I revisited <a href=\"http:\/\/en.wikipedia.org\/wiki\/Structured_programming\">structured programming<\/a> with C in<br \/>\ncollege. Same happen when the college adopted <a href=\"http:\/\/en.wikipedia.org\/wiki\/Object-oriented_programming\">object-oriented programming<\/a> and C++. I, along with a few others, basically had to<br \/>\nretake CS I, with all the same algorithms and data structures but now<br \/>\nwith these odd concepts of &#8220;objects&#8221; with their &#8220;methods&#8221;. I<br \/>\nnever felt comfortable with OO until I came back to it a few years<br \/>\ninto my career as a web developer with Perl.<\/p>\n<p>It&#8217;s a shame really. All those people<br \/>\nout there now, thinking that they just don&#8217;t &#8220;get it&#8221; when it<br \/>\ncomes to computers, that they&#8217;re not technologically savvy enough.<br \/>\nJust like all those people who throw up their arms in frustration the<br \/>\nmoment you mention algebra or statistics. &#8220;I just don&#8217;t get this<br \/>\nstuff.&#8221;<\/p>\n<p>But of course the failing isn&#8217;t<br \/>\nnecessarily that they lack some left-brain analytical function, but<br \/>\nthat they never got the time\/chance\/break to develop that<br \/>\nunderstanding in the first place.<\/p>\n<hr>\n<div id=\"sdfootnote1\">\n<p class=\"sdfootnote\"><a class=\"sdfootnotesym\" name=\"sdfootnote1sym\" href=\"#sdfootnote1anc\">1<\/a> Keep<br \/>\nin mind this wasn&#8217;t MIT and my senior year in high school was 1992. So while I had a<br \/>\ncomputer at home, was enrolled in computer programming classes and<br \/>\ngetting ready for the Advanced Placement test in Computer Science,<br \/>\nthe personal computer revolution had only just reached it&#8217;s zenith before the 1991 rescission. In other words, the<br \/>\ndepartment chair wasn&#8217;t assuming that any incoming student had been<br \/>\ngreatly exposed to a computer &#8211; other than video games and word<br \/>\nprocessing &#8211; let along programming.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In high school I took my first formal course in programming, an introduction to Computer Science with BASIC and the good-old Apple \/\/e. My friends and I drove our teacher, Mrs. McBride, a bit batty. She knew we knew our stuff, but so did we. As a result a few of us would do anything [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92],"tags":[215,218,216,43,106,217],"_links":{"self":[{"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/185"}],"collection":[{"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=185"}],"version-history":[{"count":3,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/185\/revisions"}],"predecessor-version":[{"id":745,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/185\/revisions\/745"}],"wp:attachment":[{"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.weinstein.org\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}