<?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>The Third Bit &#187; Teaching</title>
	<atom:link href="http://third-bit.com/blog/archives/category/teaching/feed" rel="self" type="application/rss+xml" />
	<link>http://third-bit.com/blog</link>
	<description>Data is ones and zeroes &#124; Software is ones and zeroes and hard work.</description>
	<lastBuildDate>Thu, 26 Aug 2010 12:19:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Three Rules for Supervising Student Programming Projects</title>
		<link>http://third-bit.com/blog/archives/4003.html</link>
		<comments>http://third-bit.com/blog/archives/4003.html#comments</comments>
		<pubDate>Wed, 25 Aug 2010 18:01:09 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Student Projects]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://third-bit.com/blog/?p=4003</guid>
		<description><![CDATA[Jen Dodd recently posted an article titled &#8220;3 rules for running events&#8220;, plus one metarule that I particularly appreciated: &#8220;Stop deluding yourself.&#8221; In the same spirit, I&#8217;d like to offer up three rules for running student programming projects. To set the stage, here&#8217;s the number of student programming projects I&#8217;ve organized, supervised, or otherwise been [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jendodd.com">Jen Dodd</a> recently posted an article titled &#8220;<a href="http://jendodd.com/2010/08/16/3-rules-for-running-events/">3 rules for running events</a>&#8220;, plus one metarule that I particularly appreciated: &#8220;Stop deluding yourself.&#8221;  In the same spirit, I&#8217;d like to offer up three rules for running student programming projects.  To set the stage, here&#8217;s the number of student programming projects I&#8217;ve organized, supervised, or otherwise been guilty of since <a href="http://en.wikipedia.org/wiki/David_Wallace_%28physicist%29">David Wallace</a> first asked me to look after a couple of summer interns in Edinburgh half a lifetime ago:</p>
<div>
<p><a href="http://third-bit.com/blog/wp-content/uploads/2010/08/students-supervised-per-year.png"><img class="alignnone size-full wp-image-4005" title="students-supervised-per-year" src="http://third-bit.com/blog/wp-content/uploads/2010/08/students-supervised-per-year.png" border="0" alt="Students Supervised per Year" width="525" height="291" /></a></p>
<table>
<tbody>
<tr style="text-align: right;">
<td>Year</td>
<td>1987</td>
<td>1988</td>
<td>1989</td>
<td>1990</td>
<td>1991</td>
<td>2002</td>
<td>2003</td>
<td>2004</td>
<td>2005</td>
<td>2006</td>
<td>2007</td>
<td>2008</td>
<td>2009</td>
<td>2010</td>
</tr>
<tr>
<td>Number</td>
<td style="text-align: right;">2</td>
<td style="text-align: right;">4</td>
<td style="text-align: right;">12</td>
<td style="text-align: right;">14</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">7</td>
<td style="text-align: right;">13</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">110</td>
<td style="text-align: right;">49</td>
</tr>
</tbody>
</table>
</div>
<p>Yes, the numbers for 2008 and 2009 are crazy, but those are the years I ran consulting projects at the <a href="http://www.utoronto.ca">University of Toronto</a> and started <a href="http://ucosp.ca">UCOSP</a>.  If you only count students I directly supervised, the numbers for 2008-09 drop back down to the high thirties—say, a dozen or so per term, three terms a year.</p>
<p>So what have I learned in those 23 years?</p>
<h2>Rule 1: It&#8217;s Not Thirteen Weeks, It&#8217;s Three</h2>
<p>This was the hardest one for me to learn, and it&#8217;s almost always the hardest to get across to both students and their clients.  University terms may be thirteen weeks long, but students are usually juggling five courses, and many have part-time jobs as well.  That means they can only put eight hours a week into their project without sacrificing grades somewhere else.  If you figure a full-time work week is 35 hours, that means students actually spend 8×13/35 = a bit less than three weeks working for you.  In that time, they have to:</p>
<ul>
<li>figure out what problem they&#8217;re actually going to solve,</li>
<li>learn some new technologies,</li>
<li>digest the existing code base,</li>
<li>get to know their teammates,</li>
<li>build something, and</li>
<li>jump through whatever hoops are required for getting a grade, like writing a final report or some documentation that no-one will ever read.</li>
</ul>
<p>That&#8217;s an awful lot to squeeze into three weeks: very few open source projects expect their <a href="http://code.google.com/soc/">GSoC</a> students to start checking things in after three weeks of full-time work, but students in school are expected to be <em>done</em> in that time.  Prof. <a href="http://www.cs.utoronto.ca/~reid">Karen Reid</a> says that she usually divides the term into three pieces:</p>
<blockquote><p>I find that I spend the first 3 weeks working hard to get the students up to speed and essentially demanding that they get something real done in the first 3 weeks.  In other words, my students are more successful if they push hard at the beginning. After that, they usually have a good idea of what they need to do for the remainder of the term and I can kind of let them set the pace.  Then I spend the last 3 weeks defining what it means to be done.</p></blockquote>
<p>There&#8217;s another catch lurking in here too.  The iron triangle of project management is scope, schedule, and resources.  In a student project, both the schedule and resources are fixed (13 weeks and N students respectively), so the only thing that can give is scope.  There are two ways to reduce it: lower quality, or fewer features.  Lowering quality is self-defeating—the students you want in a project course are the ones who take pride in their work and care about their grades (which aren&#8217;t necessarily the same thing), and they&#8217;re not going to like being told that the only way to pass a course is to produce crap.</p>
<p>That leaves the number and scope of features as the only free variable.  Problem is, neither students nor clients are going to be excited about fixing a couple of minor bugs or adding one small new feature.  If you want to get people on board, you have to aim higher, and be willing and able to reduce scope as the term goes on without making anyone feel like the project has failed—which brings us neatly to our second rule.</p>
<h2>Rule 2: It&#8217;s Not About Technology</h2>
<p>It really isn&#8217;t.  When I ask students I&#8217;ve supervised in the past what they learned in their project, they never mention technology—never.  They might have learned Ruby on Rails, or CUDA, or touch-screen interface design, or database performance optimization, but that&#8217;s not what they remember afterward.  What sticks is how to run a project: how to run a progress meeting, review someone else&#8217;s code, manage their time, present their work in five minutes or less, and negotiate scope with a client.</p>
<p>I&#8217;ve tried teaching these things in regular software engineering classes, but it has never worked.  (This is one of the reasons I have so little use for <a href="http://www.amazon.com/Software-Engineering-9th-Ian-Sommerville/dp/0137035152">standard</a> <a href="http://www.amazon.com/Software-Engineering-Practitioners-Roger-Pressman/dp/0073375977">undergrad</a> software engineering textbooks: you can talk about riding bicycles all you want, but the only way to learn how to do it is to <em>do it</em>.)  On the upside, once I students understand that I&#8217;m trying to teach them process, rather than technology, the problems I mentioned in the previous section are greatly reduced: cutting the set of features we&#8217;re going to deliver, for example, becomes an exercise in scope negotiation rather than a failure on the students&#8217; part.</p>
<p>So what goes into <a href="http://third-bit.com/blog/archives/1417.html">a rational student-oriented development process</a>?</p>
<ol>
<li>A weekly status meeting (face-to-face if possible, online if not).  Whoever is running it (me for the first few, one student in turn thereafter) is responsible for drawing up an agenda and posting a summary afterward.  They&#8217;re also responsible for checking that the previous week&#8217;s to-do items were completed, and for keeping the meeting on track (politely, but firmly).  The first meeting each term usually runs 90 minutes or so; by the end of term, we can do them in 45 minutes or less.</li>
<li>Version control, ticketing, a blog, an archived mailing list, an IRC channel, and (most recently) <a href="http://www.reviewboard.org/">code review</a>—in short, the same infrastructure you&#8217;d use for a small open source project.  You&#8217;ll note that &#8220;wiki&#8221; isn&#8217;t on the list: we&#8217;ve set them up in the past, but no one has ever made much use of them.  You&#8217;ll also note that five of these six items are about communication—all six, actually, if you think of version control as a way to share files.</li>
<li>Demos and presentations.  I emphasize this less when project teams are distributed across several universities, but if they&#8217;re collocated, I expect every team to present or demo weekly or every couple of weeks.  I usually don&#8217;t give grades for each presentation or demo except to cure procrastination.</li>
</ol>
<p>And that&#8217;s about it.  On some projects, I&#8217;ll ask students to draw up a plan for the term at the end of their second or third week (i.e., once they&#8217;ve learned something about the problem—if they have to do it at the start of term, waterfall-style, all they can do is write some science fiction and hope I won&#8217;t hold them to it).  On others, there&#8217;s some formality around handing off their code to their client, such as submitting it as a patch, doing a presentation at the client site, or showing off their work to all comers at a local pub.</p>
<p>Other people handle process differently, of course.  Andrew Ross, of Ingres, says:</p>
<blockquote><p>I tend not to have regular weekly meetings with my teams. Instead, we have meetings as needed to discuss things that can&#8217;t be covered acceptably in emails/IM&#8217;s/IRC/calls. We do the latter constantly. The more important underlying concept is keeping students from drifting away and losing contact.</p></blockquote>
<h2>Rule 3: Steady Beats Smart Every Time</h2>
<p>I once had three students working on separate projects during the same summer term.  Two had straight A&#8217;s; the third was struggling to maintain a low &#8216;B&#8217; average, but he&#8217;s the only one I would have hired back, because he was the only one I could actually rely on.  One of the &#8216;A&#8217; students had spent his whole life acing exams, and didn&#8217;t know how to do anything else.  He panicked when asked, &#8220;What do you think we should do next?&#8221; Literally—you could see his pulse race and his mouth dry out.  The second had the same fatal flaw I had when I was twenty: he&#8217;d do the first three quarters of every job in record time, but getting the next 20% out of him was like pulling teeth, and the last 5% never got done all.</p>
<p>The third student, though, was as reliable as a grilled cheese sandwich.  If he told me on Monday that something was going to be done on Friday, it was done on Friday; when I asked him, &#8220;Where are you?&#8221; he always gave me a straight answer: no &#8220;almost done&#8221;, no &#8220;just another couple of bugs&#8221; if he hadn&#8217;t actually started.  It took me a couple of months to appreciate him, but once I did, I started looking for that same quality in every student I interviewed.</p>
<p>Of course, this isn&#8217;t to say that every student with low grades is a gem waiting to be uncovered, or that everyone with an &#8216;A&#8217; average is unreliable.  Far from it: grades <em>are</em> a fairly reliable indicator of ability and persistence, especially grades in courses that no one loves.  But the correlation is a lot weaker than I, a former &#8216;A&#8217; student, once believed.</p>
<p>Keep in mind that even the steadiest students will doubt themselves sometimes.  Quoting <a href="http://www.cs.utoronto.ca/~reid">Karen Reid</a> again:</p>
<blockquote><p>I find I spend a lot of time reassuring students who are climbing the learning curve.  Having different levels of expectations for students depending on their background is something I have to explain to students used to the same evaluation standards.</p></blockquote>
<p>And &#8220;steady beats smart&#8221; applies to supervisors as well as students.  If you&#8217;re unreliable—if you miss meetings, promise to do things but don&#8217;t get around to them, or pretend to know more about technical matters than you actually do—your students will respond in kind.  If you can&#8217;t or don&#8217;t commit at least 3-4 high-quality hours a week for each project you&#8217;re running, it would be better for everyone if you did something else.  (This is, by the way, one of the many reasons I prefer team projects to individual ones: the number of hours required per project grows only slowly with the team size, at least up to half a dozen students, so you can reach more students without sacrificing everything else.)</p>
<p>And finally, a metarule:</p>
<h2>Have Fun</h2>
<p>Students won&#8217;t ever enjoy a project more than you do.  After all, they have to do all the hard work, like tracking down bugs, while you get to do the fun stuff like argue over what it&#8217;s all supposed to do.  And if you&#8217;re not having fun, they will quickly start to treat the project like just another course.  It&#8217;s very hard to pull out of that downward spiral, so don&#8217;t get into it: no matter what happens, grit your teeth and have some fun.  Go out for ice cream; borrow a projector and introduce them to <cite>Tron</cite>, <cite>WarGames</cite>, or <cite>Startup.com</cite>.  They&#8217;ll remember that long after the course is over, too, and so will you.</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/4003.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Python in CS1 is Growing Fast</title>
		<link>http://third-bit.com/blog/archives/3984.html</link>
		<comments>http://third-bit.com/blog/archives/3984.html#comments</comments>
		<pubDate>Thu, 05 Aug 2010 15:51:39 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://third-bit.com/blog/?p=3984</guid>
		<description><![CDATA[From Mark Guzdial&#8217;s ever-informative blog: I just got a report&#8230;on the state of the Python CS1 market.  The market size is estimated to be about 20,300 students per year, up 45% since last year.  The market has had around 40% gains for each of the last three years. Yay! But I wonder what they count [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://computinged.wordpress.com/2010/08/05/growth-of-python-in-cs1/">Mark Guzdial&#8217;s ever-informative blog</a>:</p>
<blockquote><p>I just got a report&#8230;on the state of  the Python CS1 market.  The market size is estimated to be about 20,300  students per year, up 45% since last year.  The market has had around  40% gains for each of the last three years.</p></blockquote>
<p>Yay! But I wonder what they count as &#8220;the market&#8221;, and how big the absolute share (as opposed to growth) is&#8230; Anyone know?</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3984.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Molecular Workbench and When a Book Becomes an App</title>
		<link>http://third-bit.com/blog/archives/3939.html</link>
		<comments>http://third-bit.com/blog/archives/3939.html#comments</comments>
		<pubDate>Sun, 18 Jul 2010 20:36:26 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3939</guid>
		<description><![CDATA[Two thought-provoking pieces from Mark Guzdial&#8217;s blog (again): The Molecular Workbench: &#8220;&#8230;is not just a collection of simulations–do not be deceived by first glance. While it presents many existing simulations that are ready to use in classroom, it is, however, also a modeling tool for teachers and students to create their own simulations and share [...]]]></description>
			<content:encoded><![CDATA[<p>Two thought-provoking pieces from Mark Guzdial&#8217;s blog (again):</p>
<ol>
<li>The <a href="http://computinged.wordpress.com/2010/07/14/the-molecular-workbench%E2%84%A2-platform/">Molecular Workbench</a>: &#8220;&#8230;is not just a collection of simulations–do not be deceived by first  glance. While it presents many existing simulations that are ready to  use in classroom, it is, however, also a modeling tool for teachers and  students to create their own simulations and share them with  collaborators. There are very sophisticated modeling capacities hidden  behind its simple user interface that empower you to create new  simulations and even explore the unknowns.&#8221; Given more resources, I&#8217;d love to do something like this for <a href="http://software-carpentry.org/">Software Carpentry</a> (and for programming in general).</li>
<li>The <a href="http://computinged.wordpress.com/2010/07/18/future-of-tablet-textbooks/">Future of Tablet Textbooks</a>: &#8220;[Apple] thinks&#8230;that the first iPad-based textbooks are going to come out as apps&#8230; But&#8230;Apple would prefer to have textbooks come out as EPUB books&#8230; [Because] EPUB books can be distributed through Apple’s iTunesU channel in the  iTunes store&#8230;Apps are much more tightly controlled, e.g., they  have to be checked for memory leaks and proper behavior (expensive!),  and they have to be signed and distributed carefully to make sure that  what the customer gets is what the publisher delivered (and what Apple  vetted).  Apple doesn’t want to have to vet textbooks&#8230; I think Apple doesn’t see the problem as I do. When textbooks have the  capability of rich textbooks, what makes them different from an App  anyway?  Couldn’t they misbehave in the same ways as errant apps?&#8221;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3939.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toronto PyCamp August 20 &#8211; Sept 3, 2010</title>
		<link>http://third-bit.com/blog/archives/3932.html</link>
		<comments>http://third-bit.com/blog/archives/3932.html#comments</comments>
		<pubDate>Fri, 16 Jul 2010 16:06:32 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3932</guid>
		<description><![CDATA[From the announcement: The University of Toronto Department of Physics hosts Toronto PyCamp 2010. For beginners, this ultra-low-cost Python Boot Camp makes you productive so you can get your work done quickly. PyCamp emphasizes the features which make Python a simpler and more efficient language. Following along with example Python PushUps™ speeds your learning process [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://trizpug.org/boot-camp/torpy10/">the announcement</a>:</p>
<blockquote><p>The University of Toronto Department of Physics hosts Toronto PyCamp  2010. For beginners, this ultra-low-cost Python Boot Camp makes you  productive so you can get your work done quickly. PyCamp emphasizes the  features which make Python a simpler and more efficient language.  Following along with example Python PushUps™ speeds your learning  process in a modern high-tech classroom. Become a self-sufficient Python  developer in just five days at PyCamp! Conducted on the campus of the  University of Toronto, PyCamp comes with your own single OS/single  developer copy of Wing Professional Python IDE.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3932.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Quote from Mark Guzdial</title>
		<link>http://third-bit.com/blog/archives/3909.html</link>
		<comments>http://third-bit.com/blog/archives/3909.html#comments</comments>
		<pubDate>Thu, 24 Jun 2010 12:47:09 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3909</guid>
		<description><![CDATA[From &#8220;Proving and Improving Teaching Programming Languages&#8220;: SIGPLAN Education Board has produced a report “Why undergraduates should learn the principles of programming languages”  which was presented at the ACM Education Council meeting.  It makes four claims for why students should study programming languages: Students learn widely-applicable design and implementation techniques. Many students will need to create [...]]]></description>
			<content:encoded><![CDATA[<p>From &#8220;<a href="http://computinged.wordpress.com/2010/06/22/proving-and-improving-teaching-programming-languages/">Proving  and Improving Teaching Programming Languages</a>&#8220;:</p>
<blockquote><p><a href="http://mt4.acm.org/educationboard/">SIGPLAN Education Board</a> has produced a report “<a href="http://www.cs.pomona.edu/%7Ekim/why.pdf">Why  undergraduates should learn the principles of programming languages</a>”   which was presented at the ACM Education Council meeting.  It makes  four claims for why students should study programming languages:</p>
<ul>
<li>Students learn widely-applicable design and implementation  techniques.</li>
<li>Many students will need to create new domain specific languages or  virtual machines, so it’s useful for them to study what’s known about  languages.</li>
<li>By learning programming languages, students learn new computational  models and speed learning of new languages.  ”The best preparation for  quickly learning and effectively using new languages is understanding  the fundamentals underlying all programming languages and to have some  prior experience with a variety of computational models.”</li>
<li>Students learn how to choose the right programming language for a  task.</li>
</ul>
<p>The problem is that we have empirical support for none of these  claims.  People are <a href="http://www.nap.edu/openbook.php?record_id=6160&amp;page=39">amazingly  bad at transferring knowledge</a>.  People tend to learn about a  specific situation and not recognize when the same idea applies in a new  situation&#8212;or worse, they transfer <em>negatively</em>, mistaking the  similarity and using older knowledge in an incorrect way.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3909.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-Country Undergrad Projects This Fall</title>
		<link>http://third-bit.com/blog/archives/3900.html</link>
		<comments>http://third-bit.com/blog/archives/3900.html#comments</comments>
		<pubDate>Tue, 22 Jun 2010 12:51:16 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3900</guid>
		<description><![CDATA[In 2009-2010, almost 90 students from over a dozen universities across the country earned a course credit by working in teams on a variety of open source projects. Thanks to our friends at Google, O&#8217;Reilly, and CACS, the program is going to run again this fall and winter &#8212; see this announcement for details, and [...]]]></description>
			<content:encoded><![CDATA[<p>In 2009-2010, almost 90 students from over a dozen universities across the country earned a course credit by working in teams on a variety of open source projects. Thanks to our friends at <a href="http://www.google.com">Google</a>, <a href="http://www.oreilly.com">O&#8217;Reilly</a>, and <a href="http://cacsaic.org/">CACS</a>, the program is going to run again this fall and winter &#8212; see <a href="http://ucosp.ca/news/2010/06/ucosp-is-expanding/">this announcement</a> for details, and the <a href="http://ucosp.ca">new web site</a> for more information.</p>
<p>So, if you are:</p>
<ul>
<li>an open source project looking for some talented help,</li>
<li>a professor in a Canadian computer science department who&#8217;d like to help students learn how to work on real software in distributed teams, or</li>
<li>going to be enrolled in CS at a Canadian university this fall, in your senior year (or grad school), with strong grades and a sense of adventure,</li>
</ul>
<p>then please give the organizers a shout at <a href="mailto:admin@ucosp.ca">admin@ucosp.ca</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3900.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Some Deliberately Bad Code</title>
		<link>http://third-bit.com/blog/archives/3861.html</link>
		<comments>http://third-bit.com/blog/archives/3861.html#comments</comments>
		<pubDate>Thu, 27 May 2010 12:31:38 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3861</guid>
		<description><![CDATA[The announcement is a couple of weeks old now (I&#8217;m still juggling things as I transition from U of T to Software Carpentry), but Google has released some deliberately bad code to help teach software security. Very cool idea; it certainly raises the bar for our work&#8230;  There&#8217;s more material here as well.]]></description>
			<content:encoded><![CDATA[<p>The announcement is a couple of weeks old now (I&#8217;m still juggling things as I transition from <a href="http://www.cs.utoronto.ca">U of T</a> to <a href="http://software-carpentry.org/blog/">Software Carpentry</a>), but Google has released <a href="http://google-opensource.blogspot.com/2010/04/dont-copy-this-code.html">some deliberately bad code to help teach software security</a>. Very cool idea; it certainly raises the bar for our work&#8230;  There&#8217;s more material <a href="http://code.google.com/edu/security/index.html">here</a> as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3861.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glad We Could Help</title>
		<link>http://third-bit.com/blog/archives/3843.html</link>
		<comments>http://third-bit.com/blog/archives/3843.html#comments</comments>
		<pubDate>Wed, 12 May 2010 15:49:55 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3843</guid>
		<description><![CDATA[I got email yesterday from Sylvain Thénault, one of the PyLint developers: I would like to thank you and the team for your contribution to the pylint project! Your students have actually contributed some useful stuff which have been included in pylint. I can&#8217;t tell that from all students I had working on my projects&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>I got email yesterday from Sylvain Thénault, one of the <a href="http://www.logilab.org/857">PyLint</a> developers:</p>
<blockquote><p>I would like to thank you and the team for your contribution to the pylint project! Your students have actually contributed some useful stuff which have been included in pylint. I can&#8217;t tell that from all students I had working on my projects&#8230; If you have another students team next year, I&#8217;ll be happy to work with them <img src='http://third-bit.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p></blockquote>
<p>I&#8217;m glad we could help; I know the students who worked on the project learned a lot about code analysis and open source development practices.</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3843.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8230;And Thanks For All The Fish</title>
		<link>http://third-bit.com/blog/archives/3788.html</link>
		<comments>http://third-bit.com/blog/archives/3788.html#comments</comments>
		<pubDate>Mon, 26 Apr 2010 01:10:44 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3788</guid>
		<description><![CDATA[A month ago, I gave myself a mixed performance review for my time at U of T. Turns out a few people think I deserve better: enough to scare the bejesus out of me last night when they all yelled, &#8220;Surprise!&#8221; It was one of the nicest things anyone has ever done for me, and [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago, <a href="http://pyre.third-bit.com/blog/archives/3695.html">I gave myself a mixed performance review</a> for my time at U of T. Turns out a few people think I deserve better: enough to scare the bejesus out of me last night when they all yelled, &#8220;Surprise!&#8221; It was one of the nicest things anyone has ever done for me, and I&#8217;m grateful to everyone for making the end of my time at the university a memory I&#8217;ll treasure for the rest of my life. So without further ado, here are the pink hippo cake:</p>
<p><img class="size-full wp-image-3789" title="Hippo Cake" src="http://pyre.third-bit.com/blog/wp-content/uploads/2010/04/cake.png" alt="Hippo Cake" width="340" height="512" /></p>
<p>and the plaque listing all the projects my students and I have worked on in the past seven and a half years:</p>
<p><img class="alignnone size-full wp-image-3790" title="A Whole Lotta Projects" src="http://pyre.third-bit.com/blog/wp-content/uploads/2010/04/plaque.png" alt="A Whole Lotta Projects" width="340" height="512" /></p>
<p>and my daughter, celebrating as only a three-year-old can:</p>
<p><img class="alignnone size-full wp-image-3791" title="Maddie Celebrates" src="http://pyre.third-bit.com/blog/wp-content/uploads/2010/04/maddie.png" alt="Maddie Celebrates" width="400" height="320" /></p>
<p>Thank you: Abayomi, Ainsley, Alecia, Amy, Andrew, Aran, Blaaaaaake, Brent, Catherine, Cordelia, both Davids, Delphine, Diane, Dominique, Ellen, Florian, GregL, Clumsy Igor, Irving, Isaac, both James, Jason, Jennifer, Jessica, Jon, Jonathan, Jorge, Justin, Karen, Kristin, Laura, Laurie, Lila, Lilian with one L, Lillian with two L&#8217;s, Luis, Madeleine, Maria, Matthew, Michelle, Mike, Miles, Misa, Pat, Rory, Sadie, Sana, Sean, Sukhmeet, Tom, Val, Veronica, Victoria, William, Zuzel, and everyone else who couldn&#8217;t be there&#8212;thank you all.</p>
<p><em>Later: so it turns out there&#8217;s <a href="http://www.youtube.com/watch?v=4nRr3WORFhc">video</a> as well&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3788.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Congratulations to Jason and Jon</title>
		<link>http://third-bit.com/blog/archives/3776.html</link>
		<comments>http://third-bit.com/blog/archives/3776.html#comments</comments>
		<pubDate>Thu, 22 Apr 2010 12:19:59 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3776</guid>
		<description><![CDATA[Congratulations to Jason Montojo and Jon Pipitone, who have just completed their Master&#8217;s degrees in Computer Science at the University of Toronto. Jon was one of my very first CSC49X students in September 2002, and Jason was in the second batch in January 2003. I&#8217;m proud to have worked with them, and wish them all [...]]]></description>
			<content:encoded><![CDATA[<p>Congratulations to <a href="http://www.cs.utoronto.ca/~jmontojo/">Jason Montojo</a> and <a href="http://skoolr.blogspot.com/">Jon Pipitone</a>, who have just completed their Master&#8217;s degrees in Computer Science at the University of Toronto. Jon was one of my very first CSC49X students in September 2002, and Jason was in the second batch in January 2003. I&#8217;m proud to have worked with them, and wish them all the best.</p>
<p>And in other school news, Alecia Fowler is still <a href="http://ajfowler.wordpress.com/2010/04/21/call-for-participants/">looking for people</a> to participate  in her web-based study of how people understand maps. If you have a few minutes, and would like to help her help the visually disadvantaged, please send her an email at <a title="accessiblemapping@gmail.com" href="mailto:accessiblmapping@gmail.com">accessiblemapping@gmail.com</a>.</p>
<p>(And in <em>other</em> school news, I handed in my final set of marks two days ago. Yee hah!)</p>
]]></content:encoded>
			<wfw:commentRss>http://third-bit.com/blog/archives/3776.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
