<?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>alt-tag.com &#187; Teaching</title>
	<atom:link href="http://alt-tag.com/blog/archives/category/teaching/feed/" rel="self" type="application/rss+xml" />
	<link>http://alt-tag.com/blog</link>
	<description>Thoughts on everything from education and politics to internet usability, and programming.</description>
	<lastBuildDate>Mon, 10 Oct 2011 21:42:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Teaching C#</title>
		<link>http://alt-tag.com/blog/archives/2010/05/teaching-c/</link>
		<comments>http://alt-tag.com/blog/archives/2010/05/teaching-c/#comments</comments>
		<pubDate>Sat, 29 May 2010 03:44:39 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://alt-tag.com/blog/?p=236</guid>
		<description><![CDATA[I&#8217;m teaching beginning programming using C# to university business students (CIS) in the upcoming Fall semester. It&#8217;ll be doubly fun, as I&#8217;ve never used C# until about a month ago. Sure, I&#8217;ve used plenty of other languages, but for some reason, never anything from .NET. (Partly it&#8217;s because I&#8217;ve used a Mac as my primary [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m teaching beginning programming using C# to university business students (CIS) in the upcoming Fall semester.</p>
<p><a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&#038;tag=alttag-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=020161622X" style="display:block;float:right;margin-left:3px"><img src="/blog/blogimages/books/PragProg.jpg"/></a>It&#8217;ll be doubly fun, as I&#8217;ve never used C# until about a month ago. Sure, I&#8217;ve used plenty of other languages, but for some reason, never anything from .NET. (Partly it&#8217;s because I&#8217;ve used a Mac as my primary machine for nearly six years.) But hey, it&#8217;s a great way to follow the advice from <em><a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&#038;tag=alttag-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=020161622X">Pragmatic Programmer</a></em> to learn a new language every year. (Next year, I want to pick up <em><a href="http://www.amazon.com/gp/product/193435659X?ie=UTF8&#038;tag=tagstrategia-20&#038;linkCode=xm2&#038;camp=1789&#038;creativeASIN=193435659X">Seven Languages in Seven Weeks</a></em>, and work through that.)</p>
<p>I&#8217;ve looked at some of the curriculum previous instructors are using, and while I plan to borrow large chunks of it, there are parts of it that I think emphasize the minuscule details of doing that anyone can pick up instead of the broader theme of how to think like a programmer.</p>
<p>So, for the past couple of months, every time I bump into a programmer I ask, &#8220;What&#8217;s the most important thing to teach new programmers?&#8221; The answers are both varied and consistent. Here&#8217;s a partial list of topics I&#8217;m considering:</p>
<ul>
<li>Data structures (linked lists, queues, trees (and, in passing, <a href="http://en.wikipedia.org/wiki/Trie">tries</a>), and dictionaries/hashtables)</li>
<li>The difference between the stack and the heap (somewhat less important in a garbage-collected environment like .NET, but important to understand, I think)</li>
<li>Sorting, especially quicksort, but including bubble sort and a merge-split sort.</li>
<li>Big-O (which goes nicely with a discussion on sorting)</li>
<li>Some design patterns; at the very least, observer and MVC</li>
<li>I&#8217;d like to touch on formal grammars, and maybe Regex</li>
<li>Resource analysis (memory/disk/processor usage)</li>
<li>Some thoughts on user-interface design (e.g., Fitt&#8217;s law, using color)</li>
</ul>
<p>I&#8217;d like to emphasize some concepts by showing them in other languages, just to show how the structure remains the same. I hope I can do this without being too confusing. (Of course, what I&#8217;d really like to do is cram an entire undergraduate CS degree into a one-semester course, but that isn&#8217;t going to happen.)</p>
<p>Please email me or leave suggestions about what I should (or should not) add. </p>
<p style="font-style:italic"><a href="http://www.amazon.com/gp/product/1449380344?ie=UTF8&#038;tag=tagstrategia-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1449380344" style="display:block;float:right; margin-left:3px;"><img src="/blog/blogimages/books/HeadFirstC%23_2nd.jpg" style="border:none"/></a><strong>Post Script:</strong> While you&#8217;re sending me your ideas, I&#8217;m open to suggestions on what book I should use. I&#8217;ve spent hours already combing through C# books, and while there are some excellent reference books out there, I&#8217;ve not been impressed with most of the teaching books. l&#8217;m currently leaning toward <em><a href="http://www.amazon.com/gp/product/1449380344?ie=UTF8&#038;tag=tagstrategia-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1449380344">Head First C# (2nd ed.)</a></em> because I&#8217;m impressed with the Head First series, although I&#8217;m just now going through this book in depth.</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2010/05/teaching-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

