<?xml version="1.0" encoding="UTF-8"?>
<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>CompSci.ca/blog &#187; Education</title>
	<atom:link href="http://compsci.ca/blog/category/education/feed/" rel="self" type="application/rss+xml" />
	<link>http://compsci.ca/blog</link>
	<description>Programming, Education, Computer Science</description>
	<lastBuildDate>Mon, 21 Feb 2011 06:36:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Choosing between Computer Science and Computer Engineering</title>
		<link>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/</link>
		<comments>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:20:18 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=953</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="differences between Computer Science, Computer Engineering, Software Engineering, et al.">6 Degrees of Computer Science</a> is a good place to start, but the choice is not always clear.</strong> Some delegate the choice of their program to luck -- apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. <em>Now what?</em>


Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/' rel='bookmark' title='Permanent Link: Computer Science at Waterloo: the new Scheme of things'>Computer Science at Waterloo: the new Scheme of things</a></li><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/' rel='bookmark' title='Permanent Link: Online introduction to Computer Science from Stanford Engineering (for free!)'>Online introduction to Computer Science from Stanford Engineering (for free!)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>
The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="differences between Computer Science, Computer Engineering, Software Engineering, et al.">6 Degrees of Computer Science</a> is a good place to start, but the choice is not always clear. Some delegate the choice of their program to luck &#8212; apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. Now what?
</p>
<p>
I think I have a tip for making this choice. Unfortunately I came to understand it only a few years after entering the University myself. Looking back, this would likely have helped me make a better choice to begin with (and saved me the trouble of figuring out the differences years later, and going through a complicate process of changing majors). The approach is <em>simple</em>, yet <em>time consuming</em>; though I guarantee that this will be faster than spending a year (or two!) switching majors.
</p>
<div id="attachment_963" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2009/12/Computer_Science-Computer_Engineering-checklist.png" alt="Sample checklist for Computer Science vs. Computer Engineering courses" title="Computer_Science-Computer_Engineering-checklist" width="470" height="337" class="size-full wp-image-963" style="margin-left:10px;" /><p class="wp-caption-text">Sample checklist for Computer Science vs. Computer Engineering courses</p></div>
<ol>
<li><strong>Go to the website for your top University of choice.</strong> (That decision is a topic for another discussion.)</li>
<li>Find a <strong>course calendar</strong> for <strong>two programs you want to compare</strong>.</li>
<li>Ignore the courses that overlap in content, and <strong>write out all other notable courses</strong>. Depending on the level of detail you want to go into, you can pull in all of the course combinations, including minors and options, though a less detailed bird-view might be enough to steer one towards their preference.</li>
<li>Assign <strong>positive points</strong> to courses of interest and <strong>negative points</strong> to <em>required</em> courses that you would rather avoid.</li>
<li><strong>Sum up the results.</strong></li>
</ol>
<p>
Originally, I was thinking of comparing Computer Science to Software Engineering, but there was too much overlap to make a good example. Though this previous article could be of interest &#8212; <a href="http://compsci.ca/blog/the-spirit-of-software-engineering/" title="CompSci.ca/blog: Software Engineering vs. Computer Science">The spirit of Software Engineering</a>.
</p>
<p>
I think it should also be noted that some of the Computer Engineering courses are accessible to Computer Science students via the <em>Digital Hardware Option</em>, at least at the University of Waterloo, which was taken as basis for this comparison (on the grounds of me attending that University).
</p>
<p>
Here I&#8217;ve discovered that ECE courses put emphasis on energies inside the systems &#8212; power management, thermodynamics, magnetic fields. Also, I&#8217;m not a fan of <a href="http://compsci.ca/blog/chemistry-for-software-engineers/" title="CompSci.ca/blog: Chemistry for Software (also Computer) Engineers">required Chemistry course</a>. Personally, I&#8217;m not that interested in such level of detail, especially when the area of application leaves computers and gets into power-plant scales of energy transfers. The better circuit design courses are available via an option, so the key question becomes: <em>how fascinating are those 4th year courses?</em>
</p>
<p>
Computer Science is interesting in a way that it has much more flexibility. This allows to both avoid dull subjects and to pick up courses in the areas of interest. On the flip side, there are certain elective requirements that need to be fulfilled, such as the courses from the so-called &#8220;arts groups&#8221;.
</p>
<p>
Personally, I&#8217;m really interested in getting to Compilers via the CS route; even if that doesn&#8217;t earn me an <em>Iron Ring</em>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/' rel='bookmark' title='Permanent Link: Computer Science at Waterloo: the new Scheme of things'>Computer Science at Waterloo: the new Scheme of things</a></li><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/' rel='bookmark' title='Permanent Link: Online introduction to Computer Science from Stanford Engineering (for free!)'>Online introduction to Computer Science from Stanford Engineering (for free!)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Computer Science at the University of Toronto, in Video!</title>
		<link>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/</link>
		<comments>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 00:22:42 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=783</guid>
		<description><![CDATA[<strong style="font-size: 1.2em;">Byte Club TV's take on University of Toronto's Computer Science. CS... in video... with pink hippos.</strong>
</p><blockquote><p>Greg: “One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.” </p></blockquote>


Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li><li><a href='http://compsci.ca/blog/academic-x06-gamecamp-toronto/' rel='bookmark' title='Permanent Link: Academic &#8211; X06: GameCamp (Toronto)'>Academic &#8211; X06: GameCamp (Toronto)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>[sniplet ONTARIO_U_BANNER]</p>
<p>
<a href="http://www.byteclub.tv/" title="Byte Club TV">Byte Club TV</a> is a webcast show profiling tech companies, typically around Toronto area. One of the shows producers, Kristan &#8220;Krispy&#8221; Uccello is fairly involved in Toronto&#8217;s tech community. I often see him at <em>Rails Nite</em> events; he&#8217;s a pretty cool guy.
</p>
<p>
It looks like a while ago they&#8217;ve visited and filmed at the Computer Science department of University of Toronto. This isn&#8217;t an opt-out to avoid writing up an actual overview of <acronym title="University of Toronto">UofT</acronym>&#8217;s Computer Science, but until then it&#8217;s still an interesting video to watch. Pretty shots of the glass <acronym title="Computer Science">CS</acronym> building &amp; <a href="http://pyre.third-bit.com/" title="Greg Wilson's blog">Greg Wilson</a> talking about the department, industry, and pink hippos.
</p>
<blockquote><p>
Greg: &#8220;One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.&#8221;
</p>
</blockquote>
<p><embed src="http://blip.tv/play/grA85b40kKlQ%2Em4v" type="application/x-shockwave-flash" width="640" height="390" allowscriptaccess="always" allowfullscreen="true"></embed> </p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/computer-science-at-ryerson-university/' rel='bookmark' title='Permanent Link: Computer Science at Ryerson University'>Computer Science at Ryerson University</a></li><li><a href='http://compsci.ca/blog/computer-science-jobs-for-university-students/' rel='bookmark' title='Permanent Link: Computer Science jobs for University Students'>Computer Science jobs for University Students</a></li><li><a href='http://compsci.ca/blog/academic-x06-gamecamp-toronto/' rel='bookmark' title='Permanent Link: Academic &#8211; X06: GameCamp (Toronto)'>Academic &#8211; X06: GameCamp (Toronto)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The spirit of Software Engineering</title>
		<link>http://compsci.ca/blog/the-spirit-of-software-engineering/</link>
		<comments>http://compsci.ca/blog/the-spirit-of-software-engineering/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 00:52:56 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=761</guid>
		<description><![CDATA[While <strong>Software Engineering</strong> vs. <strong>Computer Science</strong> does have it's <a title="6 Degrees of Computer Science" href="http://compsci.ca/blog/6-degrees-of-computer-science/">technical differences</a>, there are also some differences that take place outside of the lecture halls.
<br/>
<br/>
<strong style="font-size: 1.4em;">Since University is as much about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.</strong>


Related posts:<ol><li><a href='http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/' rel='bookmark' title='Permanent Link: Choosing between Computer Science and Computer Engineering'>Choosing between Computer Science and Computer Engineering</a></li><li><a href='http://compsci.ca/blog/chemistry-for-software-engineers/' rel='bookmark' title='Permanent Link: Chemistry for Software Engineers'>Chemistry for Software Engineers</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_762" class="wp-caption alignright" style="width: 480px"><a href="http://compsci.ca/blog/wp-content/uploads/2009/02/software_engineering_ring_470.jpg"><img src="http://compsci.ca/blog/wp-content/uploads/2009/02/software_engineering_ring_470.jpg" alt="Software Engineering by &lt;a href=&#039;http://www.flickr.com/photos/canadianveggie/123383284/&#039; title=&#039;Flickr: Software Engineering&#039;&gt;Canadian Veggie&lt;/a&gt;" title="software engineering ring" width="470" height="185" class="alignright size-full wp-image-762" /></a><p class="wp-caption-text">Software Engineering by <a href='http://www.flickr.com/photos/canadianveggie/123383284/' title='Flickr: Software Engineering'>Canadian Veggie</a></p></div>
<p>
While <strong>Software Engineering</strong> vs. <strong>Computer Science</strong> does have it&#8217;s <a href="http://compsci.ca/blog/6-degrees-of-computer-science/" title="6 Degrees of Computer Science">technical differences</a>, there are also some differences that take place outside of the lecture halls. Since University is as much (if not more) about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.
</p>
<p>
The two things I&#8217;ve noticed to lack in the Computer Science program are:
</p>
<h2>The Iron Ring (in Canada)</h2>
<p>
Software Engineering, being an <strong>Engineering</strong> program, offers an <em>Iron Ring</em> at graduation. It&#8217;s like a degree that one could wear on their hand.
</p>
<h2>The graduating class&#8217; unity</h2>
<p>
While Computer Science is generally much more flexible than Software Engineering, this also means that there is less structure. Engineering programs are typically done in rigid <em>&#8220;classes&#8221;</em> where the bulk of the lectures are attended by the same group of people for the duration of the program. The hardships of the undergrad studies foster a strong bond between the people who manage to make it through.
</p>
<p>
I was reminded of this spirit last week in Montreal, during <a href="http://2009.cusec.net/" title="CUSEC 2009">CUSEC</a>, when a group of SoftEng students was running through McGill, chanting Waterloo cheers, at 2 in the morning. Good times.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/' rel='bookmark' title='Permanent Link: Choosing between Computer Science and Computer Engineering'>Choosing between Computer Science and Computer Engineering</a></li><li><a href='http://compsci.ca/blog/chemistry-for-software-engineers/' rel='bookmark' title='Permanent Link: Chemistry for Software Engineers'>Chemistry for Software Engineers</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-spirit-of-software-engineering/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Blocking students on school network is wrong</title>
		<link>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/</link>
		<comments>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 03:08:42 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=713</guid>
		<description><![CDATA[Just because we might have access to some technology to fix a problem, does not necessarily mean that the problem itself is a technical one. Such as breaking our systems, to limit their use.<br/><br/>
<strong style="font-size:1.4em;">"I think this is one of those problems that does not need a technological solution, but a social one."</strong>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>
Just because we might have access to some technology to fix a problem, does not necessarily mean that the problem itself is a technical one. Sparked by <a href="http://compsci.ca/v3/viewtopic.php?p=171466" title="Is there a way to block webpages?">a forum conversation</a>, the key example is the <strong>use of technology to filter out web content in a classroom</strong>. Asked for is, perhaps, the technical prevention side of the previous discussion of <a href="http://compsci.ca/blog/wireless-in-classrooms/" title="Wireless in classrooms">wireless in classrooms</a>. Dan pointed out the flaw with that plan:
</p>
<blockquote><p>
Really it should be the teacher stopping their students from playing youtube videos out loud in class and disturbing other students.
</p>
<p>
<strong>I think this is one of those problems that does not need a technological solution, but a social one.</strong></p>
</blockquote>
<div id="attachment_720" class="wp-caption alignleft" style="width: 396px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/10/layers_of_blocking_network_access.png" alt="There are many layers to block network access" title="layers of blocking network access" width="386" height="100" class="alignleft size-full wp-image-720" /><p class="wp-caption-text">There are many layers to block network access</p></div>
<p>
There are a lot of obstacles that could (and often are) put in place between users and their desired network accessible content. Some are legitimate security measures aimed at protecting the network. Others are roadblocks that annoy users more than prevent whatever has prompted the measure.
</p>
<p>
One of the most ridiculous &#8220;security measures&#8221; I once saw on some system was that the right-click of the mouse was physically disabled. The sys-admin must have disassembled the mice and popped off the plastic extension that clicks.
</p>
<p>
While well though out network rules are possible, it seems that more often that not the systems are simply crippled in a blanket policy of &#8220;just don&#8217;t do anything, ever&#8221;. There will be a locked down kiosk mode browser with broken settings; to ensure that everyone uses only this (very inconvenient) browser, the installation of any other browser will be forbidden&#8230; the same enforcement will also prevent the use of any other legitimate software, as a side effect. Soon enough the entire system is a crippled fraction of the former self, all because some student was watching YouTube videos. This is excessive. Everybody suffers.
</p>
<p>
While complicated systems could make it just that much harder for the students to get around them, <strong>perhaps the root of the problem is in the fact that those students are aiming to get around all this technology in the first place</strong>. In such a case, throwing more technology at the problem only masks its symptoms.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>The Disadvantages of High School Programming</title>
		<link>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/</link>
		<comments>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 02:07:15 +0000</pubDate>
		<dc:creator>Roman</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=696</guid>
		<description><![CDATA[A common worry for students applying to Computer Science programs at Universities is about <a href="http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/" title="On entering the Computer Science field with no programming background">high schools not adequately preparing them for the field</a>. Roman, a student at the University of Waterloo, explores the flip side of the issue -- sometimes things learned in high school simply get in the way.<br/><br/>
<strong style="font-size:1.4em;">those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language</strong>


Related posts:<ol><li><a href='http://compsci.ca/blog/mit-highlights-for-high-school-students/' rel='bookmark' title='Permanent Link: MIT highlights for high school students'>MIT highlights for high school students</a></li><li><a href='http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/' rel='bookmark' title='Permanent Link: On entering the Computer Science field with no programming background'>On entering the Computer Science field with no programming background</a></li><li><a href='http://compsci.ca/blog/plagiarizing-code-for-computer-programming-assignments/' rel='bookmark' title='Permanent Link: Plagiarizing code for computer programming assignments'>Plagiarizing code for computer programming assignments</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_702" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/10/broken_computer_in_a_lab.jpg" alt="broken computer in a lab" title="hey look -- redbull" width="470" height="313" class="alignright size-full wp-image-702" /><p class="wp-caption-text">Broken by <a href='http://www.flickr.com/photos/quinnanya/2477648616/' title='Flickr: Broken'>quinn.anya</a></p></div>
<p>
<em>A common worry for students applying to Computer Science programs at Universities is about <a href="http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/" title="On entering the Computer Science field with no programming background">high schools not adequately preparing them for the field</a>. Roman, a student at the University of Waterloo, explores the flip side of the issue &#8212; sometimes things learned in high school simply get in the way.</em>
</p>
<p>
As I settled into University of Waterloo’s academic system over the past month, I&#8217;ve noticed something that, to me, seemed counter intuitive. People who have taken a year or more of high school programming were having a harder time in the CS135 course than me, who has a combined experience of just over two months (including the month in university). Granted, the fact that <a href="http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/" title="Computer Science at Waterloo: the new Scheme of things">CS135 employs the functional language Scheme</a> as its language of choice is a big stumbling block for those with experience in imperative languages such as Java or Turing. High school programmers are challenged syntactically and conceptually, effectively bumping them down to beginner level as they adjust to the new curriculum. However, the problems go beyond that.
</p>
<p>
It seems (I wouldn&#8217;t know, but I draw on conversations with others to make this assumption) that high-school programming focuses on the idea of <em>&#8220;just making it work.&#8221;</em> My roommate tells me his teacher simply checked if the program worked and gave 100% or close to it. Making contracts, purposes, examples, and tests (as well as templates and data definitions) comes hard after years of simply <em>&#8220;making it work.&#8221;</em> And though (again, I wouldn&#8217;t know) the design recipe may not be as heavily implemented in the &#8220;real world,&#8221; it a way of communicating with those reading your code. <strong>Programming is communication.</strong> And communication is not a high-school programmer&#8217;s virtue. <em>(Editor&#8217;s note: <a href="http://compsci.ca/blog/not-cargo-cult-programming-source-control-communication-and-lack-of-it-all/" title="(not) Cargo cult programming, source control, communication, and lack of it all">not all University students are better</a>. &#8212; Tony)</em> Their philosophy seems to be that the code is to be created and put into a black box until an emergency calls for a (painful and time consuming) review. In CS135, the fact that programming is an act of communication is emphasized heavily. Those who have been continuously told to <em>&#8220;just get it to run&#8221;</em> are in a hard place.
</p>
<p>
On the other hand, people who come into the course with no, or barely any, programming experience may find the basic concepts (such as functions, operations, and conditionals) a little more difficult to tackle. However, when it comes to programming readable code they may not be inhibited to the same extent. Their code might be lengthy, ugly, and inefficient, but, in accordance with the <em>&#8220;just get it to run&#8221;</em> philosophy, so might the code of the high-schoolers. Basically, <strong>those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language</strong>. Furthermore, if the dominant idea of high-school courses is to get the program to just run, the marks of a decent portion of the students will be high. The judgment of success based on marks may give them an exaggerated idea of their abilities. They may think <em>&#8220;Well, I&#8217;m getting 75% in English, 80% in Math, and 91% in Computer Science&#8230; I guess I&#8217;ll apply to a Computer Science program!&#8221;</em> When they get there, the difficulties described above will exceed anything they have ever experienced. If the students are not passionate, the results will be poor.
</p>
<p>
The point is that high school programming can teach students bad programming habits, entice them to pursue Computer Science as their major (for the wrong reasons), and undermine their chances of success in the field. Again, I&#8217;m assuming an average student who does not take an active interest in Computer Science or any other subject and will choose Computer Science based on the grades he/she receives. I believe that with passion, nearly anything is possible. I am not insulting any high-school students, nor am I suggesting one shouldn&#8217;t go into Computer Science (high school or university) unless you&#8217;re 110% sure you will live and breathe code. I&#8217;m pointing that <strong>there are faults in the high-school programming curriculum that seem to do the very opposite of preparing students for the challenges of University Computer Science and beyond.</strong>
</p>
<div style="border:thin dashed #ccc; padding:5px;">
Roman Zimine is an inexperienced but passionate first-year student at the University of Waterloo&#8217;s Math Faculty.
</div>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/mit-highlights-for-high-school-students/' rel='bookmark' title='Permanent Link: MIT highlights for high school students'>MIT highlights for high school students</a></li><li><a href='http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/' rel='bookmark' title='Permanent Link: On entering the Computer Science field with no programming background'>On entering the Computer Science field with no programming background</a></li><li><a href='http://compsci.ca/blog/plagiarizing-code-for-computer-programming-assignments/' rel='bookmark' title='Permanent Link: Plagiarizing code for computer programming assignments'>Plagiarizing code for computer programming assignments</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-disadvantages-of-high-school-programming/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Online introduction to Computer Science from Stanford Engineering (for free!)</title>
		<link>http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/</link>
		<comments>http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 04:40:08 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=677</guid>
		<description><![CDATA[Standford University is joining the likes of MIT and UC Berkeley, by making some of their courses available (<em>for free!</em>) online (in MIT's case, that would be <em>all of their courses</em>).
<br />
<blockquote><p>
This fall, <acronym title="Stanford Engineering Everywhere">SEE</acronym> launches its programming by offering one of Stanford’s most popular engineering sequences: the three-course Introduction to Computer Science taken by the majority of Stanford undergraduates, and seven more advanced courses in artificial intelligence and electrical engineering.
</p></blockquote>


Related posts:<ol><li><a href='http://compsci.ca/blog/get-a-free-computer-science-education-online/' rel='bookmark' title='Permanent Link: Get a free computer science education online'>Get a free computer science education online</a></li><li><a href='http://compsci.ca/blog/mit-highlights-for-high-school-students/' rel='bookmark' title='Permanent Link: MIT highlights for high school students'>MIT highlights for high school students</a></li><li><a href='http://compsci.ca/blog/computer-science-at-carleton-university/' rel='bookmark' title='Permanent Link: Computer Science at Carleton University'>Computer Science at Carleton University</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_678" class="wp-caption alignright" style="width: 480px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/09/intro_computer_science_stanford.jpg" alt="Lecture photo found on Stanford&#039;s SEE website" title="intro_computer_science_stanford" width="470" height="246" class="alignright size-full wp-image-678" /><p class="wp-caption-text">Lecture photo found on Stanford's SEE website</p></div>
<p>
Standford University is joining the likes of MIT and UC Berkeley, by making some of their courses available (<em>for free!</em>) online (in MIT&#8217;s case, that would be <em>all of their courses</em>).
</p>
<blockquote><p>
This fall, <acronym title="Stanford Engineering Everywhere">SEE</acronym> launches its programming by offering one of Stanford’s most popular engineering sequences: the three-course Introduction to Computer Science taken by the majority of Stanford undergraduates, and seven more advanced courses in artificial intelligence and electrical engineering.
</p>
</blockquote>
<p>
What&#8217;s awesome is that the sequence starts out with the very basics. The <em>very basics</em> of Computer Science. If one has <a href="http://compsci.ca/blog/on-entering-the-computer-science-field-with-no-programming-background/" title="On entering the Computer Science field with no programming background">zero experience, but is interested in Computer Science</a>, this is it. It&#8217;s best put in words of the (actually interesting) professor, teaching the first course of the sequence:
</p>
<blockquote><p>
So if you&#8217;re worried about how much previous experience you&#8217;ve had or your friend who, like, worked their way through high school by programming for Google or whatever, don&#8217;t worry about it because all you need to know in here is basically either how to turn a computer on or to <strong>recognize a computer that&#8217;s on if you were to walk up to it and it were already to be on</strong>, all right?
</p>
</blockquote>
<p>
Though what&#8217;s even better is that this introduction sequence goes from <em>zero to implementing-a-miniature-webserver (in Python)</em> in just three courses. <em>Recursion, algorithmic analysis, data abstraction, data structures, concurrent programming, memory management&#8230;</em>. Using 8 different programming languages (in various capacities) &#8212; C, Objective C, C++, C#, Java, LISP, Python, Scheme.
</p>
<p>
If anyone is in high school with a canceled Computer Science program (and unfortunately there are plenty of such), Stanford&#8217;s series of videos will bring one up to speed of the world-class first year University level Computer Science. Having briefly looked over the videos, the professors seemed interesting enough to make those lectures of value even to those who are familiar with the material, but perhaps are interested in refreshing the core basics of their knowledge.
</p>
<p>
It&#8217;s all available from <a href="http://see.stanford.edu/see/courses.aspx" title="Standford School of Engineering">Stanford Engineering Everywhere</a>, in a variety of formats: YouTube, iTunes, Torrents, and text transcripts.
</p>
<div id="attachment_679" class="wp-caption alignleft" style="width: 210px"><img src="http://compsci.ca/blog/wp-content/uploads/2008/09/where_is_canada.jpg" alt="flag / UBC, Canada" title="where is canada in online computer science education?" width="200" height="206" class="alignleft size-full wp-image-679" /><p class="wp-caption-text">flag / UBC, Canada by <a href='http://www.flickr.com/photos/j79/553442643/' title='Flickr: flag / UBC, Canada'>Ces't June</a></p></div>
<p>
But where is <strong>Canada</strong>, when it comes to leading the academic education of Computer Science, in an accessible manner? U Waterloo, U of Toronto, UBC &#8212; I&#8217;m looking at you guys!
</p>
<p>
What I&#8217;d like to see, is to have some Canadian Universities, that are at least perceived to be the leaders in technological fields, to open up some of their academic material. Lead by example. There&#8217;s every reason to &#8212; many students look up to those institutions, but not everybody can get in, for a variety of reasons. Current students benefit from the extra availability of the material. Perspective students (if the business of education needs financial convincing) get to preview the top-quality education that they are being promised. It&#8217;s simply good for the community.
</p>
<p>
Though for now, I hope for more online material to come out of Stanford U.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/get-a-free-computer-science-education-online/' rel='bookmark' title='Permanent Link: Get a free computer science education online'>Get a free computer science education online</a></li><li><a href='http://compsci.ca/blog/mit-highlights-for-high-school-students/' rel='bookmark' title='Permanent Link: MIT highlights for high school students'>MIT highlights for high school students</a></li><li><a href='http://compsci.ca/blog/computer-science-at-carleton-university/' rel='bookmark' title='Permanent Link: Computer Science at Carleton University'>Computer Science at Carleton University</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mansour Moufid &#8220;hacks&#8221; Carleton U&#8217;s campus card and emails</title>
		<link>http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/</link>
		<comments>http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 06:00:21 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/?p=664</guid>
		<description><![CDATA[The latest <strong>"student hacker"</strong> story hitting the the media (after the <a href="http://blog.wired.com/27bstroke6/2008/08/federal-judge-t.html" title="Federal Judge Throws Out Gag Order Against Boston Students in Subway Case">MIT/Boston subway case</a>) is a <em>Canadian</em> 2nd year Math major student at the <strong>Carleton University</strong>, who <em>"hacked"</em> the campus card and student emails. I use "hacked" in quotes as the <a href="http://www.ottawapolice.ca/en/serving_ottawa/media_room/news.cfm?nr_id=5689" title="Ottawa Man charged in Relation to Hacking Incident at Carleton University">police news release</a> says that the systems were breached via <em>"Keylogger software and Magnetic stripe card reader"</em>; and even though <em>Mansour Moufid</em> wrote the keylogger himself (as is said in <a href="http://www.cbc.ca/canada/ottawa/story/2008/09/08/ot-security-080908.html" title="Student hacker exposes Carleton U cash, ID card security holes">this CBC article</a>) -- this is hardly something innovative, or insightful. It was a "hack" in a mass-media sense of the word.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://compsci.ca/blog/wp-content/uploads/2008/09/carleton_campus_card_hacked.jpg" alt="" title="carleton campus card hacked" width="470" height="200" class="alignright size-full wp-image-665" /></p>
<p>
The latest <strong>&#8220;student hacker&#8221;</strong> story hitting the the media (after the <a href="http://blog.wired.com/27bstroke6/2008/08/federal-judge-t.html" title="Federal Judge Throws Out Gag Order Against Boston Students in Subway Case">MIT/Boston subway case</a>) is a <em>Canadian</em> 2nd year Math major student at the <strong>Carleton University</strong>, who <em>&#8220;hacked&#8221;</em> the campus card and student emails. I use &#8220;hacked&#8221; in quotes as the <a href="http://www.ottawapolice.ca/en/serving_ottawa/media_room/news.cfm?nr_id=5689" title="Ottawa Man charged in Relation to Hacking Incident at Carleton University">police news release</a> says that the systems were breached via <em>&#8220;Keylogger software and Magnetic stripe card reader&#8221;</em>; and even though <em>Mansour Moufid</em> wrote the keylogger himself (as is said in <a href="http://www.cbc.ca/canada/ottawa/story/2008/09/08/ot-security-080908.html" title="Student hacker exposes Carleton U cash, ID card security holes">this CBC article</a>) &#8212; this is hardly something innovative, or insightful. It was a &#8220;hack&#8221; in a mass-media sense of the word.
</p>
<p>
What&#8217;s really interesting about this story is the duality of the <em>White Hat</em> / <em>Black Hat</em> nature of this event. What&#8217;s down-played in the media, and emphasized on technology centric news sources (such as <a href="http://news.slashdot.org/article.pl?sid=08/09/13/0236248" title="University Brings Charges Against White Hat Hacker">Slashdot</a> and <a href="http://www.reddit.com/r/technology/comments/7186q/this_kid_broke_into_his_universitys_network_and/" title="This kid broke into his university's network and wrote a 16-page paper showing them how to prevent it. They brought charges against him.">Reddit</a>) is the <em>16 page report</em>, titled <em>&#8220;Appeal for a Carleton Cypherpunk Posse&#8221;</em>, that Mansour send to the Carleton administration, affected students, and supposedly circulated around the students of the University as well. The presence of such a paper suggests academic intentions and many are quick to scream <em>&#8220;White Hat&#8221;</em> in student&#8217;s defense. Though as the <a href="http://www.charlatan.ca/index.php?option=com_content&#038;task=view&#038;id=20410&#038;Itemid=148" title="Carleton hits back after hacker attack">Carleton student newspaper notes</a> &#8212; 9 of those pages were simply a copy of the source code and also <strong>&#8220;includes a table claiming to contain the personal information for 32 students&#8221;</strong>.
</p>
<p>
This is where I have a problem with Mansour&#8217;s approach:<br />
<br />
Proof-of-concept prototypes and responsible disclosure &#8212; good.<br />
<br />
Acquiring real passwords, publishing those passwords, and doing so under a fake name &#8212; not as good.
</p>
<p>
@Mansour &#8212; it&#8217;s good to know that you are interested in researching and strengthening the security of your University, but your execution could have been better. Going after actual students is in bad taste and has landed you in trouble. And now Carleton University isn&#8217;t even convinced of the vulnerability that you have shown, as seen in the email that the University has send out to their students:
</p>
<blockquote><p>
This message is to notify students that the recent case of a hacking incident at Carleton has been successfully concluded. This morning, officers from Campus Safety brought in for questioning the individual concerned, who is now fully co-operating with university officials. He has confirmed how the hacking incident occurred and <strong>the university remains confident that the integrity of its email and Campus Card system has not been compromised.</strong>
</p>
</blockquote>
<p>
@Carleton (and other Universities) &#8212; this incident doesn&#8217;t call for criminal charges. This will not deter students from being interested in security, but only encourage them to stay quieter about what they are doing. What we need to do is to teach a <em>code of conduct</em> &#8212; something Engineering students hear about in their very first term of study. Offer an <em>introductory course to digital security</em>, and make it an accessible elective by 2nd year of study. Security is a fascinating subject, it really is, and schools have an opportunity to take one of two positions &#8212; assist the students and encourage them towards the best practices, or get in the way and risk letting the students fall to the <em>dark side</em>.
</p>
<p>
<em>Update:</em> The above mentioned report &#8212; <em>&#8220;Appeal for a Carleton Cypherpunk Posse&#8221;</em> published under the name of <em>Kasper Holmberg</em> has surfaced on <a href="http://wikileaks.org/wiki/Censored_Cartleton_University_Campuscard_fiasco_2008" title="WikiLeaks: Mansour Moufid's 16 page report">WikiLeaks.org</a>. A copy is mirrored <a href='http://compsci.ca/blog/wp-content/uploads/2008/09/carleton-uni-campuscard-2008.pdf'>here</a>.
</p>
<p>
The paper is quite vital to understanding the story.
</p>
<blockquote><p>
This report is written by a full-time student of Carleton University, currently enrolled as an undergraduate in the Department of Mathematics and Statistics. <strong>The author hereby wishes to elicit a response from the reader and the community leading to greater awareness of the issues of privacy and security</strong> (or lack thereof) affecting students.
</p>
</blockquote>
<p>
Though I was disappointed in the <strong>Proposed Remediation</strong> section. Considering the technical detail of the rest of the report, I was expecting to see something better than:
</p>
<blockquote><p>
The author simply recommends the discontinuation of use of the Campus Card in its present form.
</p>
</blockquote>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>The most important programming language</title>
		<link>http://compsci.ca/blog/the-most-important-programming-language/</link>
		<comments>http://compsci.ca/blog/the-most-important-programming-language/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:30:17 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/the-most-important-programming-language/</guid>
		<description><![CDATA[One of the common questions that comes up among students new to Computer Science and Programming is along the lines of <strong>"what is the best programming language?"</strong>. And the the brief answer to that is simple:
<br/>
<strong style="font-size:1.2em;">You're doing it wrong.</strong>


Related posts:<ol><li><a href='http://compsci.ca/blog/looking-back-at-working-with-php/' rel='bookmark' title='Permanent Link: Looking back at working with PHP'>Looking back at working with PHP</a></li><li><a href='http://compsci.ca/blog/you-dont-know-that-programming-language/' rel='bookmark' title='Permanent Link: You don&#8217;t know that programming language'>You don&#8217;t know that programming language</a></li><li><a href='http://compsci.ca/blog/ruby-best-introductory-programming-language/' rel='bookmark' title='Permanent Link: Ruby &#8211; best introductory programming language'>Ruby &#8211; best introductory programming language</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;width:248;margin:5px;">
<img src='http://compsci.ca/blog/wp-content/uploads/2008/08/software_architect.jpg' alt='software architect' /><br />
<cite>Original image by <a href="http://flickr.com/photos/ezu/297634534/" title="Flickr: The perfect software ar">Ezu</a></cite>
</div>
<p>
One of the common questions that comes up among students new to Computer Science and Programming is along the lines of <strong>&#8220;what is the best programming language?&#8221;</strong>. And the the brief answer to that is simple:
</p>
<p>
<strong style="font-size:1.2em;">You&#8217;re doing it wrong.</strong>
</p>
<p>
This requires some elaboration. When one asks <em>&#8220;what is the best programming language to learn?&#8221;</em> or <em>&#8220;what is the best programming language to build video games with?&#8221;</em>, it seems that the intent is to get some experience with one specific technology, and stop there. That is a failure of an approach.
</p>
<p>
A programming language is a tool. Tools have specific purposes. Tools change. New tools, technologies, and techniques becomes available. It doesn&#8217;t make much sense to specialize in wielding a hammer over a screwdriver, if one lacks the core skill of following assembly instructions. However unlike this construction analogy, technological tools change <em>rapidly</em>.
</p>
<p>
<em>&#8220;Java will guarantee a corporate job&#8221;</em>; <em>&#8220;PHP is required for web development&#8221;</em>; <em>&#8220;Ruby is growing at 400% per year&#8221;</em>. A lot of people claim to have a solid idea of where the industry will be and are quick to offer advice, but this can&#8217;t possibly be the case. All of those languages &#8212; Java, PHP, Ruby, have first appeared in 1995. This means that all the hype that you are supposed to <a href="http://compsci.ca/blog/you-dont-know-that-programming-language/" title="You don’t know that programming language">&#8220;know&#8221;</a> right now, didn&#8217;t even exist just 13 years ago. So if you plan on sticking to your <a href="http://compsci.ca/blog/if-a-programming-language-was-a-boat/" title="If a programming language was a boat…">favourite high school programming language</a>, chances are that by the time you graduate from a University, you&#8217;ll show up at the playfield with a wrong type of bat, so to speak.
</p>
<p><img src='http://compsci.ca/blog/wp-content/uploads/2008/08/higurashi_golf_baseball.jpg' alt='Higurashi: bringing a golf club to a baseball game' /><br />
<em>Higurashi no Naku Koro ni (episode 9)</em></p>
<p>
But then the question still stays: <em>&#8220;what should one learn next?&#8221;</em>. <strong>Algorithms</strong>, <strong>data structures</strong>, <strong>complexity</strong>, <strong>math</strong>&#8230; Learn the core abstracts, ideas, and skills that are language independent, and that transfer from one syntax to another. <strong>Learn the ability to learn.</strong> When a new opportunity with new technology comes along, you should be able to get over the learning curve fairly quickly.
</p>
<p>
So your <em>&#8220;best language&#8221;</em>; your <em>&#8220;most important programming language to learn next&#8221;</em> is the one that will help you do the above. As a tool. <strong>As a palette with which to express and explore your ideas.</strong> It might be one with the cleanest syntax, or the most documentation, or one that you are already familiar with the most.
</p>
<p>
It wouldn&#8217;t make sense to pick up a yet-another-programming-language just to be able to do what you already can, only with a somewhat different syntax. It&#8217;s <em>useless</em> to write the same basic sort in 12 different languages, if all of them are too slow to finish in a reasonable time. Worse yet if you don&#8217;t understand why this is so.
</p>
<p>
So lets drop this obsession with learning to say &#8220;hello world&#8221; (or some more complicated version of essentially the same) in every programming language one can name. Lets also drop the idea of finding <em>&#8220;one language to rule them all; and retire&#8221;</em>. Once we put the <em>Science</em> back in <em>Computer Science</em>, <strong>it wouldn&#8217;t matter which language you&#8217;ll end up using</strong>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/looking-back-at-working-with-php/' rel='bookmark' title='Permanent Link: Looking back at working with PHP'>Looking back at working with PHP</a></li><li><a href='http://compsci.ca/blog/you-dont-know-that-programming-language/' rel='bookmark' title='Permanent Link: You don&#8217;t know that programming language'>You don&#8217;t know that programming language</a></li><li><a href='http://compsci.ca/blog/ruby-best-introductory-programming-language/' rel='bookmark' title='Permanent Link: Ruby &#8211; best introductory programming language'>Ruby &#8211; best introductory programming language</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/the-most-important-programming-language/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>Learning Before Learning (or getting ahead of school curriculum)</title>
		<link>http://compsci.ca/blog/learning-before-learning/</link>
		<comments>http://compsci.ca/blog/learning-before-learning/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 16:24:17 +0000</pubDate>
		<dc:creator>Aziz</dc:creator>
				<category><![CDATA[Education]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/learning-before-learning/</guid>
		<description><![CDATA[

Original image by Tony Targonski


This post, as many are on this blog, is inspired by a post on the forums. A user (Banished_Outlaw) asked some questions about Scheme, and one of his concerns was that he wanted to learn the language before school started, thinking ahead of U Waterloo. Though Professor Prabhakar Ragde (PR) warns [...]


Related posts:<ol><li><a href='http://compsci.ca/blog/the-most-important-programming-language/' rel='bookmark' title='Permanent Link: The most important programming language'>The most important programming language</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;width:248px;margin:5px;">
<img src="http://compsci.ca/blog/wp-content/uploads/2008/07/studying_at_night.jpg" alt="Working on an assignment in the middle of the night" /><br />
Original image by <a href="http://www.flickr.com/photos/49396160@N00/2632504169/" title="Studying for STAT231 in the middle of the night">Tony Targonski</a>
</div>
<p>
This post, as many are on this blog, is inspired by a post on the forums. A user (Banished_Outlaw) asked <a href="http://compsci.ca/v3/viewtopic.php?t=18652" title="CompSci.ca forums: Some questions about Scheme">some questions about Scheme</a>, and one of his concerns was that he wanted to learn the language before school started, thinking ahead of <a href="http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/" title="the new Scheme of things">U Waterloo</a>. Though Professor Prabhakar Ragde (PR) warns against attempting to learn something new and unfamiliar on your own:
</p>
<blockquote><p>I don&#8217;t know why you guys insist on learning on your own (possibly poorly or incorrectly, without any help) what you&#8217;re going to learn in a couple of months in a classroom. You&#8217;ll just get bored, start skipping lectures, miss important material, and get lower marks.</p>
</blockquote>
<p>
His point has some validity &#8212; learning the wrong way can be a bad thing and can set you back a bit. But is the problem really with trying to learn the material before starting class? What&#8217;s different about learning from a teacher than learning from a book or an online tutorial? The greatest advantage of being in class is that you have the structure and <em>guidance of someone there</em>. You can talk it over with the instructor and get some help.
</p>
<p>
The problem with learning on your own is that you have less indication of when you&#8217;re wrong, and one can&#8217;t even be sure that the source is giving you the correct information in the first place. But can you be sure about that in class as well? Some instructors might have preferences towards non-standard notation or syntax or approaches. The differences are often minor, and it doesn&#8217;t take much to figure out, but if the person already knew the alternative, or even had seen it (perhaps in an online tutorial before class), it could save a student from stumbling over trivial things like syntax variations.
</p>
<p>
Granted, this example isn&#8217;t to big of a deal, but it gets the point across. You can&#8217;t be closed-minded when learning. Knowledge can&#8217;t be a bad thing for you &#8212; it&#8217;s what you do with that knowledge that determines it&#8217;s usefulness. PR brings up another good point &#8212; he doesn&#8217;t want to see students learning in the wrong way:
</p>
<blockquote><p>What I don&#8217;t need is someone who skips my lectures because they&#8217;ve read the first chapter of <acronym title="Structure and Interpretation of Computer Programs">SICP</acronym> [...] and the night before each assignment is due writes out some sloppy <acronym title="A certain standard for Scheme, not one used for instruction in this case">R5RS</acronym> code with no comments. Or, when using C, calls a library function instead of writing the code I want, thinking that the point is to get a working program instead of getting exercise in a particular technique.</p>
</blockquote>
<p>
I think this is the student&#8217;s responsibility &#8212; post-secondary studies are to teach students the profession, not to teach learning or study habits. It&#8217;s up to each individual student to decide what he/she is going to learn, and how they&#8217;re going to do it. Going to class and talking to their professor is the best way to find out what is expected. Grades could be assigned for specific approaches, techniques, or even style of coding. At the very least, that&#8217;s the type of material one would be expected to be familiar with in time for the tests.
</p>
<div>
<img src='http://compsci.ca/blog/wp-content/uploads/2008/07/empty_lecture_hall.jpg' alt='empty lecture hall in School of Optometry, University of Waterloo' /><br />
Crop of original image, by <a href="http://www.flickr.com/photos/jaycan/2297819634/" title="Flickr: Among many">jaycan*</a>
</div>
<p>
Though the counterpoint is that I&#8217;ve skipped a lot of classes, and I&#8217;m at the top of my class. At times I didn&#8217;t go to class because I knew what to do, and usually had already done it. Usually I went and sat through the lectures (only half-minded, though). The usual outcome: &#8220;I already knew it&#8221;.
</p>
<p>
I won&#8217;t say you shouldn&#8217;t go to class, but you can&#8217;t rely on just that. My point is that <strong>learning cannot harm you</strong>. You have to be responsible, and if you&#8217;re in college you should know enough to make your own decisions about going to class or not! Having exposure to something before you take a class for it, in my opinion, is actually <em>beneficial</em>. At the worst it gives you a chance to see the differences in ways it can be taught, and usually you&#8217;ll have all the core skills down so you can focus on really understanding them and grasping the more complex concepts or paying attention to other details, like design standards of the language, rather than being mired in the syntax and basic library functions.
</p>
<p>
Don&#8217;t let knowledge get in your way &#8211; learn as much of it as you can. <strong>This summer, take up <a href="http://www.python.org" title="Python programming language">Python</a></strong>!
</p>
<p style="border:thin solid #ccc; background-color: #eee; margin:5px; padding:5px;">This article was written by (Anthony) Aziz. I&#8217;m an active member of the CompSci.ca community. I maintain my own <a href="http://aaziz.org" title="aaziz.org">website</a> and <a href="http://blog.aaziz.org" title="blog.aaziz.org">blog</a> and enjoy programming as a hobby and education (hopefully career, soon). If you haven&#8217;t already checked out <a href="http://compsci.ca/" title="CompSci Forums">the forums</a>, I encourage anyone who reads this blog to do so, and also join us in the irc room (#compsci.ca on irc.afternet.org, or use <a href="http://compsci.ca/v3/chatroom.php" title="CompSci IRC">the online chat page</a>).</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/the-most-important-programming-language/' rel='bookmark' title='Permanent Link: The most important programming language'>The most important programming language</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/learning-before-learning/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Video game degrees need to require Math</title>
		<link>http://compsci.ca/blog/video-game-degrees-need-to-require-math/</link>
		<comments>http://compsci.ca/blog/video-game-degrees-need-to-require-math/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 06:14:21 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Video Game Development]]></category>

		<guid isPermaLink="false">http://compsci.ca/blog/video-game-degrees-need-to-require-math/</guid>
		<description><![CDATA[
BBC News UK has recently published an article &#8212; Skills shortage hits games firms, on which I wanted to reflect. The premise is simple &#8212; the video game industry is struggling to find the type of talent they desire.



Original image by louder

The games developers say that they are struggling to find in the UK the [...]


Related posts:<ol><li><a href='http://compsci.ca/blog/video-game-designer-education-its-in-electives/' rel='bookmark' title='Permanent Link: Video game designer education &#8211; it&#8217;s in electives'>Video game designer education &#8211; it&#8217;s in electives</a></li><li><a href='http://compsci.ca/blog/profitability-in-video-game-industry/' rel='bookmark' title='Permanent Link: Profitability in video game industry'>Profitability in video game industry</a></li><li><a href='http://compsci.ca/blog/3-reasons-to-not-get-a-video-gaming-degree/' rel='bookmark' title='Permanent Link: 3 Reasons to not get a Video Gaming Degree'>3 Reasons to not get a Video Gaming Degree</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>
BBC News UK has recently published an article &#8212; <a href="http://news.bbc.co.uk/2/hi/technology/7460870.stm" title="BBC NEWS | Technology | Skills shortage hits games firms">Skills shortage hits games firms</a>, on which I wanted to reflect. The premise is simple &#8212; the video game industry is struggling to find the type of talent they desire.
</p>
<div style="float:right;width:248px;margin:5px;">
<img src='http://compsci.ca/blog/wp-content/uploads/2008/06/xbox360_controller.jpg' alt='xbox 360 wireless controller buttons' /><br />
<cite>Original image by <a href="http://www.flickr.com/photos/hermida/64817925/" title="Flickr: Xbox 360 buttons">louder</a></cite>
</div>
<blockquote><p>The games developers say that they are struggling to find in the UK the kind of high-powered <strong>mathematicians</strong> and <strong>computer scientists</strong> that they need to build increasingly sophisticated products.</p>
</blockquote>
<p>
The statement comes along the fact that there are 81 video game degree courses available in the UK. This increasingly popular field is not without setbacks though.
</p>
<blockquote><p>At Northumbria University, which offers a degree course in Computer Games Engineering, staff say that <em>prospective students are often put off by the requirement for Maths A-Level.</em></p>
</blockquote>
<p>
Clayton has already written an introduction to <a href="http://compsci.ca/blog/recommended-for-strong-math-students-only/" title="Recommended for strong math students only.">the importance of Math in video game development</a>, though it seems that many might be trying to capitalize on the trend by opening up programs that are more available (read <em>&#8220;dropping the badly needed requirements&#8221;</em>). The result is that only 4 of the 81 courses are accredited by the <a href="http://www.skillset.org/" title="The Sector Skills Council for Creative Media">Skillset</a>, the industry and government joined effort to monitor the quality of creative media in the United Kingdom.
</p>
<p>
Interestingly, the article also states that:
</p>
<blockquote><p>The games industry claims that Canadian government support has allowed it to flourish, and thousands of jobs are moving from Britain to Canada.</p>
</blockquote>
<p>
That is good for us, here in Canada, but as I see a growing trend of &#8220;video game degrees&#8221; starting to pop up locally, I can&#8217;t help but to think that we might be heading towards the same fate. That&#8217;s not to say that some of the programs are not good, <em>but the overall educational system is still a potential minefield</em>. Make sure you are learning what you <em>need</em> to learn.
</p>
<p><img src='http://compsci.ca/blog/wp-content/uploads/2008/06/minesweeper_minefield.jpg' alt='minesweeper' /></p>
<p>That is to say, <strong style="font-size:1.2em; font-weight:bold;">you need strong Math</strong>. More so for <strong>development</strong> than <strong>design</strong> or <strong>testing</strong>, so make sure to research the programs. Though until Canada gets its own group to set the baseline and accredit the video game education programs, one is likely just better offer pursuing a classical Computer Science degree with <a href="http://compsci.ca/blog/video-game-designer-education-its-in-electives/" title="Video game designer education - it’s in electives">strategically chosen electives</a>.</p>


<p>Related posts:<ol><li><a href='http://compsci.ca/blog/video-game-designer-education-its-in-electives/' rel='bookmark' title='Permanent Link: Video game designer education &#8211; it&#8217;s in electives'>Video game designer education &#8211; it&#8217;s in electives</a></li><li><a href='http://compsci.ca/blog/profitability-in-video-game-industry/' rel='bookmark' title='Permanent Link: Profitability in video game industry'>Profitability in video game industry</a></li><li><a href='http://compsci.ca/blog/3-reasons-to-not-get-a-video-gaming-degree/' rel='bookmark' title='Permanent Link: 3 Reasons to not get a Video Gaming Degree'>3 Reasons to not get a Video Gaming Degree</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://compsci.ca/blog/video-game-degrees-need-to-require-math/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>


