<?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/"
	>

<channel>
	<title>The Third Bit &#187; Teaching</title>
	<atom:link href="http://pyre.third-bit.com/blog/archives/category/teaching/feed" rel="self" type="application/rss+xml" />
	<link>http://pyre.third-bit.com/blog</link>
	<description>Data is ones and zeroes &#124; Software is ones and zeroes and hard work.</description>
	<pubDate>Mon, 15 Mar 2010 01:06:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Something That Won&#8217;t Be On The Final Exam</title>
		<link>http://pyre.third-bit.com/blog/archives/3652.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3652.html#comments</comments>
		<pubDate>Sat, 13 Mar 2010 20:09:27 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3652</guid>
		<description><![CDATA[The final exam for my CSC302 software engineering course was due this week, and I thought I had come up with a good&#8211;and fair&#8212;question to put on it. Four out of four of the other instructors I spoke to, however, didn&#8217;t like it, so I left it out. I&#8217;d be very interested in hearing from [...]]]></description>
			<content:encoded><![CDATA[<p>The final exam for my <a href="https://stanley.cdf.toronto.edu/drproject/csc302-2010-01">CSC302</a> software engineering course was due this week, and I thought I had come up with a good&#8211;and fair&#8212;question to put on it. Four out of four of the other instructors I spoke to, however, didn&#8217;t like it, so I left it out. I&#8217;d be very interested in hearing from present and former students (and other teachers) what they think.</p>
<p>This term, I organized the CSC302 students into six teams of about ten people each, and put each team to work on an open source project. Most of the marks in the course are given to the team as a whole, so I wanted a way to assess individual contributions. Having students evaluate their peers would be easy, and in theory would reward people who&#8217;ve done more, and penalize people who&#8217;ve done less. However, peer evaluation is notoriously vulnerable to gaming and social pressure.</p>
<p>My thought was therefore to measure how well people understood their own contributions, rather than the actual contributions. I thought I could have everyone rate both themselves and all of their teammates. An individual&#8217;s grade would then be based on how closely their self-score matched the scores given to them by their teammates. If your teammates all gave you 2/10, for example, and you also gave yourself 2/10, you&#8217;d get a high mark for knowing that you&#8217;d done a poor job.</p>
<p>Well, you can probably see the flaws, and having thought about my colleagues&#8217; comments, so can I. For one thing, it seems unfair to give people a good grade for doing a poor job. It also seems unfair to grade them twice on the same work (once during term for doing it, and once again at the end for having done it). And it would still be susceptible to gaming, though surprising students with it a final exam would reduce that risk.</p>
<p>All of which raises an interesting question. Peer evaluations are routinely used in industry as part of annual performance reviews; bonuses and promotions routinely depend on what your colleagues think of you. If it&#8217;s OK to use them there, why is it so difficult in a course? If anything, there is <em>more</em> incentive to game things in a company where you&#8217;re likely to work with people for years than in a course where you&#8217;re only working with someone in one or two courses.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3652.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Is That All There Is?</title>
		<link>http://pyre.third-bit.com/blog/archives/3624.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3624.html#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:38:55 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3624</guid>
		<description><![CDATA[I prefer Peggy Lee&#8217;s version of the song to Bette Midler&#8217;s; I wonder if Mark Guzdial thought of either when he wrote this post a couple of days ago:
Surely, this can’t be it&#8212;it can’t be that Sakai + Twitter + a blog or Wiki is what all future studies will call the “traditional” form of [...]]]></description>
			<content:encoded><![CDATA[<p>I prefer <a href="http://www.youtube.com/watch?v=3VscVP_Gt_s">Peggy Lee</a>&#8217;s version of the song to <a href="http://www.youtube.com/watch?v=Fpn_xu81ySo">Bette Midler</a>&#8217;s; I wonder if Mark Guzdial thought of either when he wrote <a href="http://computinged.wordpress.com/2010/03/06/the-standard-for-online-courses-is-firmly-in-place/">this post</a> a couple of days ago:</p>
<blockquote><p>Surely, this can’t be <em>it</em>&#8212;it can’t be that Sakai + Twitter + a blog or Wiki is what all future studies will call the “traditional” form of online courses?</p></blockquote>
<p>It&#8217;s worth checking out some of the tools he links to: there&#8217;s a revolution waiting to happen here, and I&#8217;d really like to be part of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3624.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>What We&#8217;ve Learned</title>
		<link>http://pyre.third-bit.com/blog/archives/3583.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3583.html#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:18:08 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<category><![CDATA[Student Projects]]></category>

		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3583</guid>
		<description><![CDATA[My talk at PyCon 2010 was titled &#8220;What We&#8217;ve Learned From Building Basie (and lots of other software using student labor over the course of eight years)&#8221;.  The slides are up on Slideshare, and there&#8217;s video of the talk itself on blip.tv, but I thought readers of this blog might be interested in a [...]]]></description>
			<content:encoded><![CDATA[<p>My talk at <a href="http://us.pycon.org/2010">PyCon 2010</a> was titled &#8220;What We&#8217;ve Learned From Building Basie (and lots of other software using student labor over the course of eight years)&#8221;.  The <a href="http://www.slideshare.net/gvwilson/what-weve-learned-from-building-basie-3241279">slides</a> are up on Slideshare, and there&#8217;s <a href="http://blip.tv/file/3260995">video</a> of the talk itself on blip.tv, but I thought readers of this blog might be interested in a summary.</p>
<p>My starting point is Joel Spolsky&#8217;s <a href="http://joelonsoftware.com/items/2009/10/26.html&lt;/p&gt; &lt;p&gt;">comment</a> that, &#8220;&#8230;student projects, while laudatory, frequently fail to deliver anything useful.&#8221;  Respectfully, I beg to differ: About a quarter of the student projects I&#8217;ve helped supervise since 2002 have delivered software that clients actually used, and the rest have produced something even more useful: experience.  (And when I say &#8220;about a quarter&#8221;, I&#8217;m talking about a quarter of 368 people from 35 countries of origin working on 136 projects.)</p>
<p>To make a long story short, undergraduate students <em>can</em> build great software if:</p>
<ol>
<li>you have realistic expectations,</li>
<li>you&#8217;re patient, and</li>
<li>you realize that &#8220;how&#8221; matters more than &#8220;what&#8221;.</li>
</ol>
<p>Let&#8217;s take those in order.</p>
<p><strong>Realistic Expectations.</strong> Most undergrads are doing five courses at once, which leaves them only 8-10 hours/week per course.  Putting it another way, 13 weeks of student time is equivalent to 3 weeks of full-time work.  When you&#8217;re planning projects, you therefore have to ask yourself how much you would expect a new (junior) hire to do in their first three weeks on the job, particularly if (as is often the case with students) they&#8217;d never used the tools or worked in the application domain before.</p>
<p>It&#8217;s equally important to have realistic expectations of faculty, most of whom are working even harder than their students.  A colleague of mine once summed up professorial life by saying, &#8220;We&#8217;re here to do research, they pay us to teach, and we spend our time on admin.&#8221;  Keep in mind that computer science professors care about computer science, which is emphatically <em>not</em> the same thing as programming.  Computer science is the scientific study of what computers can do; a computer scientist&#8217;s job is to invent (or discover, depending on your philosophical point of view) new knowledge.  That sometimes involves writing code, but that&#8217;s like saying that mathematics sometimes involves doing integrals.</p>
<p>It took me a long time to understand this, and <a href="http://mail.python.org/pipermail/edu-sig/2006-September/007031.html">I&#8217;m not the only one</a> to misunderstand this.  I believe very strongly that being a better programmer can help someone be a better computer scientist, but if you want any traction in academa at all, you have to remember that programming really is just a means to an end.</p>
<p><strong>Patience.</strong> Your project may be the first time students have written something that isn&#8217;t just going to be marked and thrown away.  It may also be the first time they&#8217;ve been in a situation where 90% right is a failure rather than an A.  You <em>must not</em> make students feel like failures for working the way the educational system has trained them to, even (or especially) if those ways are wrong.</p>
<p>Aside #1: one of the best students I&#8217;ve ever had explained to me several years ago why she always left her assignments until the last possible moment.  &#8220;If I start early,&#8221; she said, &#8220;I&#8217;m the one who has to ask the prof all the questions to clear up what the assignment actually means.  And if I start early, the odds are good that one of the prof&#8217;s answers will mean I have to re-do something.  On the other hand, if I leave it &#8217;til the night before, I can be sure that I have a stable spec.&#8221;</p>
<p>Aside #2: People often ask why schools don&#8217;t  teach students Git, or Haskell, or GPU programming, or mobile devlopment, or whatever else is currently cool.  The answer is that <em>the curriculum is full</em>.  4 years × 2 terms/year × 13 weeks is 4800 hours, and every single one of those hours is spoken for.  Do you want to add functional programming?  Cool!  What are you going to take out: operating systems or B-trees?</p>
<p><strong>How Matters More Than What.</strong> When I ask alumni of my project courses what the most valuable thing they learned was, none of them name a particular technology&#8212;none.  Instead, they talk about teamwork, presentation skills, code reviews, time management, prioritization, communication, negotiating real requirements with real users, and building their network and portfolio.  This is why I think that efforts to <a href="http://teachingopensource.org">teach open source</a> are slightly mis-aimed: in my experience, students don&#8217;t care if the code is open or closed nearly as much as they care about how to build complex things.  It just happens that the various open source communities are both good at that, and able to talk <a href="http://producingoss.com">publicly and in detail</a> about the mechanics.</p>
<p>My colleagues and I at the <a href="http://www.cs.utoronto.ca">University of Toronto</a> have learned a lot of other things about running student projects, including:</p>
<ul>
<li>How to run meetings</li>
<li>How to teach students how to do code reviews</li>
<li>What level of tooling is appropriate/feasible</li>
<li>Accountability</li>
<li>How to accelerate ramp-up</li>
<li>Carry-overs from previous terms</li>
<li>Importance of full-time summer work (yay <a href="http://code.google.com/soc/">GSoC</a>!)</li>
<li>Industry support</li>
<li>Presentations, presentations, presentations</li>
<li>Scoping and re-scoping deliverables</li>
<li>Recruiting students and faculty</li>
<li>How to grade one-of-a-kind projects</li>
</ul>
<p>We&#8217;re now scaling up what we&#8217;ve learned in <a href="http://ucosp.wordpress.com">UCOSP</a>, a set of undergraduate capstone projects in which students from 14 universities work together in distributed teams.  If you&#8217;re interested in taking part, we&#8217;d <a href="mailto:gvwilson@cs.utoronto.ca">like to hear from you</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3583.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Before We Get Too Excited About Online Education&#8230;</title>
		<link>http://pyre.third-bit.com/blog/archives/3496.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3496.html#comments</comments>
		<pubDate>Tue, 02 Feb 2010 13:35:34 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3496</guid>
		<description><![CDATA[Amid all the excitement about moving education online, we shouldn&#8217;t forget that so far, doing so seems to hurt those who need help the most. As Mark Guzdial says in his recent blog post:
Universities already widen the gap between rich and poor, by flunking out or not admitting the poor. On-line courses tend to flunk [...]]]></description>
			<content:encoded><![CDATA[<p>Amid all the excitement about moving education online, we shouldn&#8217;t forget that so far, doing so seems to hurt those who need help the most. As Mark Guzdial says in <a href="http://computinged.wordpress.com/2010/01/30/an-educational-extinction-event/">his recent blog post</a>:</p>
<blockquote><p><a href="http://computinged.wordpress.com/2009/09/01/college-computing-educators-are-widening-the-gap-between-rich-and-poor/">Universities already widen the gap between rich and poor</a>, by flunking out or <a href="http://computinged.wordpress.com/2010/01/14/flagship-universities-straying-from-their-mission/">not admitting the poor</a>. On-line courses tend to<a href="http://computinged.wordpress.com/2009/10/12/who-educates-the-average-students/"> flunk out even more students</a>, and mostly at the lower-knowledge and poor levels&#8230;  I think it’s <em><a href="http://computinged.wordpress.com/2009/12/14/beat-the-book-not-the-teacher/">possible</a></em><a href="http://computinged.wordpress.com/2009/12/14/beat-the-book-not-the-teacher/"> for on-line education to be even better than existing University education</a>, in terms of improving learning and engaging a broader range of students&#8230; [but] the work has to happen first. If [universities] disappear in favor of [online education], before we <em>make</em> [online education] better, [it] will lead to worse education for society, especially for weaker students.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3496.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Two Steps Up, One Step Back</title>
		<link>http://pyre.third-bit.com/blog/archives/3483.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3483.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 14:47:12 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Student Projects]]></category>

		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3483</guid>
		<description><![CDATA[This term&#8217;s UCOSP projects all seem to be going well so far: most teams are writing and committing code, and several teams have adopted code review as a standard practice. I&#8217;m really hoping that at least a few UCOSP students will make a bid for places in the VeloCity entrepreneur bootcamp this summer&#8212;it&#8217;d be great [...]]]></description>
			<content:encoded><![CDATA[<p>This term&#8217;s <a href="http://ucosp.wordpress.com">UCOSP</a> projects all seem to be going well so far: most teams are writing and committing code, and several teams have adopted code review as a standard practice. I&#8217;m really hoping that at least a few UCOSP students will make a bid for places in the <a href="http://velocity.uwaterloo.ca/bootcamp">VeloCity entrepreneur bootcamp</a> this summer&#8212;it&#8217;d be great to see them take their ideas to the next level.</p>
<p>Elsewhere, though, things are not so rosy. The students in my <a href="https://stanley.cdf.toronto.edu/drproject/csc302-2010-01">CSC302</a> software engineering course had to hand in their first assignment last week. One team brought it in two days early (earning themselves two days of grace to use in future assignments), four of the others came in on time, and one team was a day late. That&#8217;s about what I expect; what I <em>didn&#8217;t</em> expect, and was disappointed by, was that two teams were tossing files back and forth by email, rather than using the version control repositories we had set up for them. This is triply frustrating because (a) they&#8217;ve all had to use version control in previous courses, and (b) the only way they can submit their work for grading is to commit it to their repo. Many of these same students are in their final term, and will be entering the workforce in just over three months; somehow, we just haven&#8217;t gotten through to them.</p>
<p>Coincidentally, my wife was up from midnight Saturday until 10:00 am Sunday babysitting a software deployment that ultimately had to be rolled back. She works for one of the largest IT consulting firms in Canada, and her team has updated the software in question several times in the past. It still took them seven hours to get to the point where they could tell that a few key things just weren&#8217;t going to work, despite all the pre-testing they and other teams had done, and another three hours to re-set to a working state. Michael Nygard talked at length in <a href="http://www.pragprog.com/titles/mnee/release-it"><em>Release It!</em></a> about how to not get into this situation, and I&#8217;ve thought more than once about creating an undergrad course to teach the necessary concepts, but realistically, if our senior students still think that version control is something you use once at the end of the project, and only because the prof says you have to, it&#8217;s clear there are higher priorities.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3483.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>CUSEC</title>
		<link>http://pyre.third-bit.com/blog/archives/3461.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3461.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 15:46:52 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3461</guid>
		<description><![CDATA[My talk at CUSEC starts in 15 minutes; to calm my nerves, I&#8217;m catching up on my blog :-). Here are where students are from:



Carleton
30


Concordia
66


École de Technologie Supérieure
16


École Polytechnique de Montréal
4


McGill
27


McMaster
29


Ryerson
1


Schulich
1


Sherbrooke
6


Université de Montréal
2


Université Laval
8


Ottawa
21


Toronto
12


UTM
2


UTSC
6


Waterloo
21


Windsor
1



]]></description>
			<content:encoded><![CDATA[<p>My talk at CUSEC starts in 15 minutes; to calm my nerves, I&#8217;m catching up on my blog :-). Here are where students are from:</p>
<table border="0">
<tbody>
<tr>
<td>Carleton</td>
<td style="text-align: right;">30</td>
</tr>
<tr>
<td>Concordia</td>
<td style="text-align: right;">66</td>
</tr>
<tr>
<td>École de Technologie Supérieure</td>
<td style="text-align: right;">16</td>
</tr>
<tr>
<td>École Polytechnique de Montréal</td>
<td style="text-align: right;">4</td>
</tr>
<tr>
<td>McGill</td>
<td style="text-align: right;">27</td>
</tr>
<tr>
<td>McMaster</td>
<td style="text-align: right;">29</td>
</tr>
<tr>
<td>Ryerson</td>
<td style="text-align: right;">1</td>
</tr>
<tr>
<td>Schulich</td>
<td style="text-align: right;">1</td>
</tr>
<tr>
<td>Sherbrooke</td>
<td style="text-align: right;">6</td>
</tr>
<tr>
<td>Université de Montréal</td>
<td style="text-align: right;">2</td>
</tr>
<tr>
<td>Université Laval</td>
<td style="text-align: right;">8</td>
</tr>
<tr>
<td>Ottawa</td>
<td style="text-align: right;">21</td>
</tr>
<tr>
<td>Toronto</td>
<td style="text-align: right;">12</td>
</tr>
<tr>
<td>UTM</td>
<td style="text-align: right;">2</td>
</tr>
<tr>
<td>UTSC</td>
<td style="text-align: right;">6</td>
</tr>
<tr>
<td>Waterloo</td>
<td style="text-align: right;">21</td>
</tr>
<tr>
<td>Windsor</td>
<td style="text-align: right;">1</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3461.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Projects This Term</title>
		<link>http://pyre.third-bit.com/blog/archives/3406.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3406.html#comments</comments>
		<pubDate>Thu, 07 Jan 2010 18:36:51 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3406</guid>
		<description><![CDATA[Along with the cross-country capstone projects I&#8217;m coordinating this term, I&#8217;m also setting up six projects for the students in my CSC302 software engineering course (the first four of which I mentioned in an earlier post):

Adding pivot tables to Gnumeric.
Upgrading PyLint.
Converting the Selenium IDE to a plugin architecture.
Improving the SpatiaLite GIS extensions for SQLite.
Porting Django [...]]]></description>
			<content:encoded><![CDATA[<p>Along with the <a href="http://ucosp.wordpress.com">cross-country capstone projects</a> I&#8217;m coordinating this term, I&#8217;m also setting up six projects for the students in my <a href="https://stanley.cdf.toronto.edu/drproject/csc302-2010-01">CSC302</a> software engineering course (the first four of which I mentioned in an <a href="http://pyre.third-bit.com/blog/archives/3287.html">earlier post</a>):</p>
<ol>
<li>Adding pivot tables to Gnumeric.</li>
<li>Upgrading PyLint.</li>
<li>Converting the Selenium IDE to a plugin architecture.</li>
<li>Improving the SpatiaLite GIS extensions for SQLite.</li>
<li>Porting Django to Python 3.</li>
<li>Helping with ILUTE (the Integrated Land Use and Transportation Engineering tool).</li>
</ol>
<p>10-11 students will be working on each; it promises to be an exciting term.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3406.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Another Introduction to Programming With Python</title>
		<link>http://pyre.third-bit.com/blog/archives/3368.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3368.html#comments</comments>
		<pubDate>Tue, 29 Dec 2009 12:44:45 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Practical Programming]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3368</guid>
		<description><![CDATA[The field is becoming increasingly crowded: the second edition of Al Sweigart&#8217;s Invent Your Own Computer Games With Python is now available.  It&#8217;s aimed at kids and teens, but doesn&#8217;t condescend &#8212; I&#8217;m looking forward to going through it.
]]></description>
			<content:encoded><![CDATA[<p>The field is becoming increasingly crowded: the second edition of Al Sweigart&#8217;s <a href="http://inventwithpython.com/"><em>Invent Your Own Computer Games With Python</em></a> is now available.  It&#8217;s aimed at kids and teens, but doesn&#8217;t condescend &#8212; I&#8217;m looking forward to going through it.</p>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3368.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Taking Notes</title>
		<link>http://pyre.third-bit.com/blog/archives/3360.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3360.html#comments</comments>
		<pubDate>Sun, 27 Dec 2009 12:00:18 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3360</guid>
		<description><![CDATA[The last two times I&#8217;ve taught a regular classroom course on software engineering, I&#8217;ve had students make up the lecture notes and assignments. Instead of creating PowerPoint slides and posting them on the web, I&#8217;ve lectured with chalk and a blackboard. In each lecture, a group of 3-4 students have been responsible for turning what [...]]]></description>
			<content:encoded><![CDATA[<p>The last two times I&#8217;ve taught a regular classroom course on software engineering, I&#8217;ve had students make up the lecture notes and assignments. Instead of creating PowerPoint slides and posting them on the web, I&#8217;ve lectured with chalk and a blackboard. In each lecture, a group of 3-4 students have been responsible for turning what I say into a wiki page, which then counts toward the 5% &#8220;writing requirement&#8221; of their course grade. I&#8217;ve done the same thing with assignment: after the whole class spends classroom time discussing what should and shouldn&#8217;t be in scope, a team of students writes it up and posts it for comment and clarification.</p>
<p>I&#8217;ve been pleased with the results, but unfortunately managed to misplace my links to the papers that gave me the idea of trying this. I&#8217;m therefore grateful to Brock MacDonald, of the Academic Writing Centre at <a href="http://www.wdw.utoronto.ca/index.php">Woodsworth College</a>, for sending the following:</p>
<blockquote><p>The most thorough empirical studies of student note-taking were published in a series of papers in the 80s and early 90s by <a href="http://cehs07.unl.edu/fsinfo/cehs_pull.php?UserName=kkiewra&amp;What=publications&amp;Department=College%20of%20Education%20and%20Human%20Sciences">K. A. Kiewra</a>, alone and with various collaborators. They found that students who made and studied their own lecture notes achieved consistently better test results than students who studied from notes they were given. An interesting wrinkle is that students were found to do best of all when they were given a lecture topic outline or matrix of some kind to fill in with their own detailed notes&#8212;in other words, student note-taking that&#8217;s framed or guided by limited input from the instructor leads to better results than either a) students making notes completely on their own (though this gives the 2nd best results) or b) students being given the lecture notes and not making notes of their own at all (which gives the poorest results).</p>
<p>Empirical evidence for the value of students writing their own assignment specs is harder to come by, because it&#8217;s less amenable to direct testing (like most aspects of teaching writing)&#8211;the support is more qualitative than quantitative, hence more open to question. The idea most often comes up as part of discussions of critical-thinking- and active-learning-oriented writing pedagogy, e.g., in Peter Elbow (his book <a href="http://www.amazon.com/Writing-without-Teachers-Peter-Elbow/dp/0195120167"><em>Writing Without Teachers</em></a> and many articles) and John Bean (his book <a href="http://www.amazon.com/Engaging-Ideas-Professors-Integrating-Classroom/dp/0787902039"><em>Engaging Ideas</em></a>); both Elbow and Bean refer to quite a bit of supporting research, though as I said it&#8217;s mainly qualitative. The value of students developing the skill of formulating good questions in general (i.e. not only in the context of devising assignments) is also supported in some of the literature on learning objectives and outcomes, e.g., in several articles by Mike Carter, some of which present case studies that show the benefits of building this skill into entire course and program curricula.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3360.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Feedback on the Python Book</title>
		<link>http://pyre.third-bit.com/blog/archives/3217.html</link>
		<comments>http://pyre.third-bit.com/blog/archives/3217.html#comments</comments>
		<pubDate>Thu, 26 Nov 2009 17:44:29 +0000</pubDate>
		<dc:creator>Greg Wilson</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Practical Programming]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://pyre.third-bit.com/blog/?p=3217</guid>
		<description><![CDATA[71 people have answered our questionnaire about Practical Programming. Here&#8217;s some of what they told us; I&#8217;ll summarize the questions about use of online programming resources and what we could do differently next time in a subsequent post.
Demographics

Channels

General Background

Python Background

Exercises

Individual Chapters




Most Useful
Least Useful


Introduction
9.7%
25.0%


Hello, Python
17.7%
31.3%


Strings
21.0%
20.8%


Modules
24.2%
10.4%


Lists
37.1%
8.3%


Making Choices
19.4%
12.5%


Repetition
22.6%
8.3%


File Processing
46.8%
4.2%


Sets and Dictionaries
43.5%
6.3%


Algorithms
48.4%
8.3%


Searching and Sorting
45.2%
8.3%


Construction
25.8%
8.3%


Object-Oriented Programming
56.5%
8.3%


Graphical User Interfaces
29.0%
33.3%


Databases
46.8%
18.8%



]]></description>
			<content:encoded><![CDATA[<p>71 people have answered our questionnaire about <a href="http://www.pragprog.com/titles/gwpy/practical-programming"><em>Practical Programming</em></a>. Here&#8217;s some of what they told us; I&#8217;ll summarize the questions about use of online programming resources and what we could do differently next time in a subsequent post.</p>
<p><span id="more-3217"></span><strong>Demographics</strong></p>
<p><img class="alignnone size-full wp-image-3218" title="1" src="http://pyre.third-bit.com/blog/wp-content/uploads/2009/11/1.png" alt="1" width="414" height="358" /></p>
<p><strong>Channels</strong></p>
<p><img class="alignnone size-full wp-image-3219" title="2" src="http://pyre.third-bit.com/blog/wp-content/uploads/2009/11/2.png" alt="2" width="488" height="288" /></p>
<p><strong>General Background</strong></p>
<p><img class="alignnone size-full wp-image-3220" title="3" src="http://pyre.third-bit.com/blog/wp-content/uploads/2009/11/3.png" alt="3" width="488" height="288" /></p>
<p><strong>Python Background</strong></p>
<p><img class="alignnone size-full wp-image-3221" title="4" src="http://pyre.third-bit.com/blog/wp-content/uploads/2009/11/4.png" alt="4" width="488" height="288" /></p>
<p><strong>Exercises</strong></p>
<p><img class="alignnone size-full wp-image-3222" title="6" src="http://pyre.third-bit.com/blog/wp-content/uploads/2009/11/6.png" alt="6" width="488" height="288" /></p>
<p><strong>Individual Chapters</strong></p>
<table border="0">
<tbody>
<tr>
<td></td>
<td>Most Useful</td>
<td>Least Useful</td>
</tr>
<tr>
<td>Introduction</td>
<td align="right">9.7%</td>
<td align="right">25.0%</td>
</tr>
<tr>
<td>Hello, Python</td>
<td align="right">17.7%</td>
<td align="right">31.3%</td>
</tr>
<tr>
<td>Strings</td>
<td align="right">21.0%</td>
<td align="right">20.8%</td>
</tr>
<tr>
<td>Modules</td>
<td align="right">24.2%</td>
<td align="right">10.4%</td>
</tr>
<tr>
<td>Lists</td>
<td align="right">37.1%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>Making Choices</td>
<td align="right">19.4%</td>
<td align="right">12.5%</td>
</tr>
<tr>
<td>Repetition</td>
<td align="right">22.6%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>File Processing</td>
<td align="right">46.8%</td>
<td align="right">4.2%</td>
</tr>
<tr>
<td>Sets and Dictionaries</td>
<td align="right">43.5%</td>
<td align="right">6.3%</td>
</tr>
<tr>
<td>Algorithms</td>
<td align="right">48.4%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>Searching and Sorting</td>
<td align="right">45.2%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>Construction</td>
<td align="right">25.8%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>Object-Oriented Programming</td>
<td align="right">56.5%</td>
<td align="right">8.3%</td>
</tr>
<tr>
<td>Graphical User Interfaces</td>
<td align="right">29.0%</td>
<td align="right">33.3%</td>
</tr>
<tr>
<td>Databases</td>
<td align="right">46.8%</td>
<td align="right">18.8%</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://pyre.third-bit.com/blog/archives/3217.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
