<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>yearofcode &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/yearofcode/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Sun, 09 Feb 2025 23:12:36 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>yearofcode &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Learning to Code vs Learning Computer Science]]></title>
		<link>https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/</link>
					<comments>https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 09 Feb 2014 10:51:17 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[appsforgood]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[schools]]></category>
		<category><![CDATA[yearofcode]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=9837</guid>

					<description><![CDATA[It&#039;s always very tricky when people who aren&#039;t educators start banging on about what should or shouldn&#039;t be taught in schools.  My own school days are but a hazy memory of hormones, angst, and boring homework.  Yet here I am, pontificating.  With the current &#34;fad&#34; of encouraging children to learn to code, I thought I would be worth looking at the difference between coding and computer science.  …]]></description>
										<content:encoded><![CDATA[<p>It's always very tricky when people who aren't educators start banging on about what should or shouldn't be taught in schools.  My own school days are but a hazy memory of hormones, angst, and boring homework.  Yet here I am, pontificating.</p>

<p>With the current "fad" of <a href="https://web.archive.org/web/20140214101526/https://adrianshort.org/2014/02/09/lottie-dexter-quit-year-of-code/">encouraging children to learn to code</a>, I thought I would be worth looking at the difference between coding and computer science.
<a href="https://en.wikipedia.org/wiki/File:BBC_micro_assembly_listing.jpg"><img src="https://shkspr.mobi/blog/wp-content/uploads/2014/02/BBC-BASIC-Coding.png" alt=" Creative Commons Attribution-Share Alike 2.0 " width="600" height="250" class="aligncenter size-full wp-image-9841"></a></p>

<h2 id="history"><a href="https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/#history">History</a></h2>

<p>I learned the infamous Logo Turtle at school and BBC BASIC at home.  <em>That</em> is learning to code. I followed instructions, copy-typed from books, and made minor adjustments to "personalise" my programs.</p>

<p>At A-Level I started studying "<a href="https://web.archive.org/web/20140705120429/http://www.examsolutions.net/maths-revision/syllabuses/Edexcel/period-1/D1/module.php">Decision Mathematics</a>".  Rather than esoteric calculus, and prosaic formulas, it looks at how to solve problems logically.  It was the perfect primer for learning how to become a programmer and I firmly believe that no conversation about teaching coding in schools is complete without a theoretical understanding of the science behind the code.</p>

<h2 id="an-example"><a href="https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/#an-example">An Example</a></h2>

<p>This is an exercise I run through with people wanting to understand the basics of computer science:</p>

<p>Sort the following numbers:</p>

<pre>7, 8, 1, 3, 2, 7, 6</pre>

<p>Easy enough to do in your head, no?</p>

<p>Ok - <em>explain</em> to me how you did it?</p>

<p>We then talk through what we think the problem is - in what way do we want the numbers sorted? High to low? Low to high? Alphabetical?  What, in fact, do we want to do with the sorted numbers?</p>

<p>What series of very simple instructions could we give to an absolute idiot such that they could follow them and get the right answer?</p>

<p>Where are the "gotchas"?  If two numbers are the same, how should they be sorted?  Does it matter?</p>

<p>Are there more or less efficient ways to sort numbers?  Are there times when less efficiency is good?</p>

<p>Hey presto - we've begun to explore Computer <em>Science</em>.  We can craft algorithms, learn how and why they are important, write out pseudo-code, hunt for bugs.</p>

<h3 id="learning-to-code"><a href="https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/#learning-to-code">Learning To Code</a></h3>

<p>The above is a great introduction to Computer Science.  Now let's look at what learning to code teaches people.</p>

<pre lang="php">sort([7, 8, 1, 3, 2, 7, 6]);
</pre>

<p>Or, perhaps</p>

<pre lang="javascript">var numbers = [7, 8, 1, 3, 2, 7, 6];
numbers.sort();
</pre>

<p>What has that taught anyone?  Merely syntax.</p>

<p>I learned the BASIC and Pascal languages at school.  Who uses those now? No one.  Learning to code an iPhone or Android app is great fun - but in 10 years time when those children are adults, the world will have moved on and Objective C will be yet another obsolete language.</p>

<p>Yes, learning the rudiments of one language can be helpful in picking up another - but it's no substitute for understanding the fundamentals of <em>why</em> you are doing something.</p>

<p>That's why I'm a big supporter of the <a href="http://www.appsforgood.org/">Apps For Good</a> initiative.  Rather than just teaching kids how to build an Android app, it takes them through the process of design, user research, competitor analysis, testing, monetizing, building a team, and legal / social ramifications of releasing an app.  All of which are vital tools to any would-be programmer.</p>

<p>It's not just about learning which buttons to press in order to make an app - it's about a deeper understanding.</p>

<h2 id="if-thou-summers_day-darling_buds-windsrough-shake"><a href="https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/#if-thou-summers_day-darling_buds-windsrough-shake">if ($thou &gt;= $summers_day) {$darling_buds.winds($rough, $shake);}</a></h2>

<p>Let's put it in language the humanities graduates can understand.</p>

<p><strong>Learning to code is merely teaching people to spell.</strong></p>

<p>Computer Science is about what makes a poem beautiful, why alliteration is alluring, how iambic pentameter unlocks the secrets of Shakespeare.</p>

<p><strong>That</strong> is what I think we need to be teaching.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=9837&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2014/02/learning-to-code-vs-learning-computer-science/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
	</channel>
</rss>
