<?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>Hélène Martin</title>
	<atom:link href="http://www.helenemartin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.helenemartin.com</link>
	<description>Education, computer science, sewing...</description>
	<lastBuildDate>Wed, 21 Jul 2010 04:25:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>TeachScheme Workshop at Brown University</title>
		<link>http://www.helenemartin.com/2010-07-teachscheme-workshop-at-brown-university/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=teachscheme-workshop-at-brown-university</link>
		<comments>http://www.helenemartin.com/2010-07-teachscheme-workshop-at-brown-university/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 04:25:13 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=398</guid>
		<description><![CDATA[I&#8217;m in Rhode Island for a week-long training on using the TeachScheme curriculum, a set of materials and philosophies for teaching introductory computer science (or is it programming?).  I was able to come all the way out here for one of the free summer workshops through National Science Foundation funding &#8212; very cool.  I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in Rhode Island for a week-long training on using the <a href="http://www.teach-scheme.org/">TeachScheme</a> curriculum, a set of materials and philosophies for teaching introductory computer science (or is it programming?).  I was able to come all the way out here for one of the <a href="http://www.teach-scheme.org/Workshops/">free summer workshops</a> through National Science Foundation funding &#8212; very cool.  I&#8217;ve been hearing about TeachScheme for a while and a couple of teachers in the Seattle area whom I know and love have used some parts of the curriculum to good success.  My interest was sparked by looking over the freely-available textbook (<a href="http://www.ccs.neu.edu/home/matthias/HtDP2e/">How to Design Programs</a>) and seeing the promise of a structured, deliberate approach to teaching programming.</p>
<p>Almost everything I know about computer science pedagogy I learned through watching <a href="http://www.cs.washington.edu/homes/reges/">Stuart Reges</a> and <a href="http://www.cs.washington.edu/homes/stepp/">Marty Stepp</a> teach <a href="http://cs.washington.edu/142">University of Washington&#8217;s CS1 course</a> several times as their teaching assistant.  The course is popular, is more gender-balanced than most CS1 courses, and contributes to attracting high-caliber CS majors.  I don&#8217;t think it so much matters that it&#8217;s taught in Java, that Stuart uses an overhead projector and Marty uses PowerPoint slides or that <a href="http://www.jgrasp.org/">jGRASP</a> is the IDE of choice.  What has become clear to me is that the power of the course they have built comes from it being rigorous, deliberately building up complexity, offering lots of opportunities for practice and including a lot of support through TAs and frequent office hours.  Also, both instructors know their material inside and out and value consistency and predictability over the &#8220;wow factor.&#8221;</p>
<p>I think that this philosophical background meshes nicely with the values of the TeachScheme curriculum (yes, it&#8217;s ENTIRELY appropriate to talk about philosophy and values when discussing CS1 courses).  There&#8217;s definitely a lot of emphasis on building concepts one by one and increasing the complexity in a calculated, reasonably-paced way.  That may seem obvious, but I&#8217;m looking at more and more books and course outlines that feel like a bunch of &#8216;cool&#8217; things are being thrown together without much regard for cognitive overload.  Several courses seem based on the idea that once a concept is introduced, students can experiment and learn related concepts on their own.  I think the unfortunate side-effect of these poorly-structured courses is that they are particularly discouraging for people without high confidence in their computational abilities &#8212; women and minorities.</p>
<p>Our primary instructor for the workshop is <a href="http://web.cs.wpi.edu/~kfisler/">Kathi Fisler</a> from WPI.  She knows her material inside and out and values consistency and predictability over the &#8220;wow factor!&#8221;  She has us meet in the classroom for morning and afternoon lectures followed by lab sessions.  Her lectures involve a lot of code writing on the board and are highly structured &#8212; I love it.  Writing code on the board allows Kathi to use color, arrows, annotations, etc and I feel that the students are more engaged because we&#8217;re acting as live interpreters.</p>
<p>We&#8217;re really being treated as students: Kathi is giving lectures at a faster pace than she would in CS1 but I feel like they&#8217;re still pretty close to what students would see.  There&#8217;s very little &#8220;meta&#8221; talk about what she&#8217;s doing and we&#8217;ve been asked to keep pedagogical questions and concerns for Thursday.  I feel strongly that this is the best way to teach a workshop, probably mostly because I believe in general that teaching is one of those things that&#8217;s better taught through apprenticeship rather than in formal classrooms.  Kathi could talk our ears off about effectively using a whiteboard but I think it would really fall flat.  Instead, she&#8217;s showing us the way she does it and while it really resonates with me, it may not with others and they&#8217;re free to ignore it in favor of other things she&#8217;s showing us at the same time.  One teacher/student commented that erasing the white board was taking time which wouldn&#8217;t be the case with an interactive white board (a bargain at ~$2,000).  Kathi&#8217;s quick response: &#8220;it&#8217;s valuable reflection time for students.&#8221;  Thank you for that.  It&#8217;s refreshing to see a highly-effective, low-tech approach to presenting content.</p>
<p>An important piece of the curriculum is the idea of a &#8220;design recipe&#8221; &#8212; a systematic approach to writing functions  that solve particular problems.  It goes something like this (off the top of my head, so I may not use their terms):</p>
<ul>
<li>What&#8217;s the data like?  (if there&#8217;s a data structure of some sort involved, describe the contents and write examples)</li>
<li>What  are the parameter and return types?  What&#8217;s a short description of the function?  (write as comments)</li>
<li>What are some example calls and what should their results be? (write out test cases to be executed later)</li>
<li>Write the body based on templates implied by the data types</li>
<li>Run the tests</li>
</ul>
<p>The idea is that an instructor will refuse to look at a student&#8217;s code if he/she doesn&#8217;t have comments and test cases.  This piece is fabulous and I certainly intend on emphasizing it more with my students no matter what language I use.</p>
<p>Of course, the early emphasis on data structures points to what really makes this curriculum stand out &#8212; it&#8217;s based on teaching a functional language.  This is where everyone&#8217;s blood pressure goes through the roof.  In CS1, there has been a big debate on whether to teach objects early or later but I don&#8217;t think there&#8217;s been a terrible lot of noise on whether procedural or object-oriented paradigms are even the right ones to teach.  (Side note: to me, this is really an issue of paradigm and not of language.)</p>
<p>I think there are a lot of very good reasons to teach in a primarily functional paradigm.  Some off the top of my head:</p>
<ul>
<li>Small language core (often true of functional languages, definitely so of Scheme)</li>
<li>Don&#8217;t need to worry about side effects at first (dealing with data mutation can be entirely mind-boggling)</li>
<li>Close analogy with algebra functions</li>
<li>Early access to complex data types</li>
</ul>
<p>I also have a lot of concerns:</p>
<ul>
<li>Functional programming implies certain idioms and ways of thinking about problems.  They&#8217;re much less typical than procedural idioms.  This may or may not matter depending on the intended goal of a course.</li>
<li>Relatedly, how much transfer is there to other paradigms?  Do students really understand recursion and data structures or do the templates and the syntax trivialize it to the point of preventing students from learning it as a transferable problem-solving technique?</li>
<li>Is )))])])) scary?  I don&#8217;t think about parens much writing a program but they really boggle my mind when I&#8217;m reading code.  This may be a failure on my part, but I&#8217;ve found it&#8217;s almost easier for me to re-write simple functions than to reason through reading them!  Yikes!</li>
<li>As nice as the templates are, I still think it&#8217;s very rare for people to naturally think recursively beyond looking at recursive data structures.  Again, do students actually learn recursion in a broad sense?  Does it matter?  I also tend to believe there&#8217;s a lot of value to learning iterative constructs.</li>
</ul>
<p>There definitely is one underlying philosophical point I need to address before being able to figure out how much of a concern these concerns really are &#8212; what are the goals of a first programming course?  Is it simply that students have a great experience?  Is it that they build flashy things?  That they be able to get an internship?  I didn&#8217;t think that &#8216;applicability to the real world&#8217; was that important to me but I&#8217;ve got 5 students doing technical internships this summer and it&#8217;s really rewarding for them.  2 of them have a Java background and are working in C# and 2 of them have a Python background and are working in Perl.  What if they had learned Scheme?</p>
<p>I&#8217;m really liking what I&#8217;m seeing so far but I&#8217;m not ready to become a convert just yet.  That said, there are lots of things I will without doubt adapt and use.  What I may be converted to believing and advocating for is that the functional paradigm is a good way to leverage and expand on students&#8217; algebra knowledge.  Emmanuel Schanzer, whom I mentioned in <a href="http://www.helenemartin.com/2010-07-computer-science-teachers-conference-csta-csit-2010/">my CS/IT post</a>, is going to tell us about his middle school outreach program tomorrow.  I&#8217;m looking forward to seeing this material again from a slightly more informed perspective.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-07-teachscheme-workshop-at-brown-university/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Computer Science Teachers Conference (CSTA CS/IT 2010)</title>
		<link>http://www.helenemartin.com/2010-07-computer-science-teachers-conference-csta-csit-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=computer-science-teachers-conference-csta-csit-2010</link>
		<comments>http://www.helenemartin.com/2010-07-computer-science-teachers-conference-csta-csit-2010/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 02:29:40 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[csta]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=383</guid>
		<description><![CDATA[Yesterday was a long day well spent at Google headquarters for the Computer Science Teachers Association&#8216;s annual Computer Science &#38; Information Technology Symposium.  It was a fairly modest gathering &#8212; I think there were about 200 of us (soon to be 10,000) &#8211; but a lot of great folks came out and there were fantastic conversations [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was a long day well spent at Google headquarters for the <a href="http://www.csta.acm.org/">Computer Science Teachers Association</a>&#8216;s annual <a href="http://csta.acm.org/ProfessionalDevelopment/sub/CSITSymposiaSite.html">Computer Science &amp; Information Technology Symposium</a>.  It was a fairly modest gathering &#8212; I think there were about 200 of us (soon to be <a href="http://un-gaid.ning.com/profiles/blogs/computational-thinking-will">10,000</a>) &#8211; but a lot of great folks came out and there were fantastic conversations inside and outside of sessions.</p>
<h2>Spaf on &#8220;Soup to Nuts&#8221;</h2>
<p><a href="http://spaf.cerias.purdue.edu/">Gene Spafford</a>, of security fame, kicked things off with a keynote covering interesting puzzles to get students thinking out of the box as well as ideas on how to inspire students by showing them what can be done with computer science.  Examples included <a href="http://www.youtube.com/watch?v=VNoJrIOREeo">training soldiers with Segway-based robots</a> and discovering security holes that make <a href="http://www.schneier.com/blog/archives/2007/10/staged_attack_c.html">power plants vulnerable to cyber attacks</a>.  Overall, it was an interesting, engaging talk.  There was a lot I recognized from <a href="http://lazowska.cs.washington.edu/">Ed Lazowska</a>&#8216;s talks and materials I already use which I found comforting in some way.</p>
<h2>Code as a Metaphor for Computational Thinking</h2>
<p>I then went to <a href="http://www.cs.duke.edu/~ola/">Owen Astrachan</a>&#8216;s Code as a Metaphor for Computational Thinking session.  As he opened, he said he&#8217;d let us decide whether the talk was actually about computational thinking because he wasn&#8217;t sure.  Interesting to hear him say that &#8212; I have a hard time with the &#8220;computational thinking&#8221; label because I haven&#8217;t seen a satisfying explanation of what it is.  The talk was centered on three examples that involved reasoning about existing computational artifacts, writing some related code and then analyzing that code.  At one point, he said something to the effect of &#8220;if you don&#8217;t write code in class, students won&#8217;t know how to do it.&#8221;  I appreciated that and do believe that there&#8217;s something very powerful about seeing a (relative) expert go through the process of writing a program, making mistakes, verifying it, using tools like IDEs appropriately, etc.  I&#8217;m very suspicious of instructors who talk about code without demonstrating how to write anything.</p>
<p>The first example he discussed involved online gambling.  He started by mentioning that it&#8217;s a good place to talk about the legal code as it relates to computing.  It&#8217;s also a good opportunity to show some interesting code for labeling hands &#8212; he showed us a flawed example of an &#8220;isPair&#8221; function that returned true even when the hand should really be considered a triple or better.  We talked through different ways of resolving this issue and lots of good design ideas came out.  My only concern would be that poker tends to be a high-income, white, nerdy male sport&#8230; using this example would require careful thought on how to present it without alienating anyone.  I don&#8217;t really know poker and my first reaction was &#8220;yawn&#8221; though I warmed up to it once we got to the code.  There really are interesting things that come up, here.  One audience member suggested that the problem could be fixed by always calling the hand-testing functions in order of highest-scoring to lowest-scoring.  True, but <a href="http://www.cs.kent.ac.uk/people/staff/mik/">Michael Kölling</a> of <a href="http://www.greenfoot.org/">Greenfoot</a> fame rightly pointed out that functions should work regardless of the context in which they&#8217;re called.  This is a good type of conversation to have with and between students.  Students can then implement all the hand-scoring functions and compare their runs to expected probabilities, using those to evaluate whether their implementations are correct.  That&#8217;s an idea I really like.</p>
<p>Owen&#8217;s second example involved <a href="http://www.tineye.com/">Tin Eye</a>, a search engine that lets you upload a picture and find instances of it regardless of size, compression, format, etc.  It&#8217;s interesting to speculate on how it works and to try to discover the limits of its tolerance.  For example, Owen suggests that we ask students to use <a href="http://en.wikipedia.org/wiki/Steganography">steganography</a> functions to hide an unrelated image into a target image then see whether Tin Eye still recognizes the target.  What if more of the target image were replaced?  What if part of the image were cropped?  One could do something similar with <a href="http://www.shazam.com/">Shazam</a>, a tool for recognizing songs.  I like the &#8220;let&#8217;s figure this out&#8221; feel of this example.</p>
<p>Finally, he discussed an example from the &#8220;code of life&#8221; &#8212; finding repeated DNA substrings.  This is an interesting algorithmic problem that can be discussed free from code and eventually be written as an exercise.  The discovery for me was that Duke has a small set of problems with test sequences available <a href="http://www.cs.duke.edu/csed/pythonapt/">here</a>.  I don&#8217;t know what computational thinking is, but what Owen discussed were definitely examples of it.</p>
<h2>Pre-AP Recruiting</h2>
<p>The next session I attended, &#8220;How does your geek garden grow?  Identifying and cultivating the geeks of tomorrow (AP CS Feeder Course)&#8221; left a sour taste in my mouth.  The speaker argued that we need to be better at communicating with math teachers and counselors to tell them that we are in fact looking for the bored, disinterested students at the social fringe who never do their homework.  The reason for this is that they may make great &#8216;geeks,&#8217; which is the type of person the tech industry wants to hire.  Maybe my thinking is clouded by the luxury of having lots of motivated, social students who want to take my courses but I really do want to target the leaders, the social butterflies, the high-achievers as much as possible.  Of course, I want my courses to be inclusive of all, but I feel that targeting unmotivated students at the social fringes is a pretty desperate move and not one I think will do a lot for the image or success of K-12 Computer Science.  The speaker&#8217;s suggestion for getting those unmotivated students is to tell them that they&#8217;ll make  video games, that there will be no homework and that they&#8217;ll pass if they play along.</p>
<p>This makes me uncomfortable but the speaker did report that this tactic has resulted in students finding something that they&#8217;re good at and continuing on to be successful in her AP class.  That, I think, is a real victory and something to be celebrated so I&#8217;m a little torn.  It&#8217;s possible that faced with low enrollment and a lack of strong students I would do the same thing.</p>
<p>A common theme in the talk was &#8220;let students do what they want to do so you don&#8217;t lose them.&#8221;  The course she described seemed like everything but the kitchen sink and heavy on the tools &#8212; Visual Basic, Java, Scratch, Alice, Gamemaker&#8230; my head was spinning just thinking about it!  Where I tend to opt for structured play and predictability, she really opens things up for students to experiment.  It&#8217;s a matter of philosophy and I wish I could go see how things play out in her classroom.</p>
<p>One thing I really appreciated from this talk was getting some good reminders about where teenagers are in their development while they&#8217;re taking our courses.  They&#8217;re identity-building and striving to find areas they&#8217;re successful in so we can have a very powerful effect by providing them with experiences that reinforce their sense of self.</p>
<p>Emmanuel Schanzer&#8217;s talk on <a href="http://www.bootstrapworld.org/">Functional Videogame Programming</a> was the day&#8217;s discovery and I&#8217;m glad <a href="http://wicked-teacher.blogspot.com/">Michelle Hutton</a> encouraged me to see it.  Emmanuel&#8217;s project, <a href="http://www.bootstrapworld.org/">Bootstrap</a>, is a full curriculum for using Scheme to bolster algebra learning.  I think I&#8217;m going to ruminate on this one and write about it later.</p>
<h2>Digitizing The World</h2>
<p>The last session I attended was by two teachers from CSTA&#8217;s board of directors &#8212; current president <a href="http://wicked-teacher.blogspot.com/">Michelle Hutton</a> and past president <a href="http://rebootingcomputing.org/content/robb-cutler">Robb Cutler</a>.  They presented extensions on a cool CS Unplugged activity on <a href="http://csunplugged.org/image-representation">image representation</a>.  Michelle&#8217;s middle school girls &#8220;digitized&#8221; color images using graph paper and a color key.  They discussed different algorithms for choosing the color to put in one square and changing the grid size allowed them to discuss tradeoffs between storage space and fidelity.  I like it.  Then, they extended the exercise further by using points to digitally represent 3D objects.  Robb wrote a tool to interpret simple formatted text files and display the objects or scenes so they can be interacted with.  Michelle had her students represent Lego shapes and their classroom.  In <a href="http://wicked-teacher.blogspot.com/2009/11/not-as-hard-as-you-think.html">a blog post about the exercise</a>, she recounted one student&#8217;s inability to believe in her own success &#8212; spacial orientation exercises are generally more difficult for we ladies.</p>
<p>I liked their idea of giving &#8220;programming-like experiences.&#8221;  I&#8217;ll have to see whether there&#8217;s a way I can adapt the activity or something like it for my high schoolers.  I was also very impressed that Robb was modifying the tool and the text file&#8217;s syntax as the girls requested features.  Their requests ranged from function-like syntax (reusable blocks) to naming the tool after them.  Participating in this &#8220;client&#8221; way must definitely have given the girls a sense of the power of programming and I&#8217;d like to see whether I can replicate that experience somehow.</p>
<h2>Megan Smith of Google.org</h2>
<p>Our closing keynote was by <a href="http://www.google.com/corporate/execs.html#msmith">Megan Smith</a>, in charge of <a href="http://www.google.org/">Google.org</a>.  She discussed .org initiatives including <a href="http://www.google.org/flutrends/">Flu Trends</a>, <a href="http://www.google.org/recharge/">RechargeIT</a>, <a href="http://knol.google.com/k/-/-/15x31uzlqeo5n/1#">Clean Energy 2030</a>, and <a href="http://www.google.org/powermeter/">PowerMeter</a> and tied those nicely to generating excitement in our students about computer science.  She&#8217;s an excellent speaker and closed the day well.  <a href="http://cs.union.edu/~barrv/">Valerie Barr</a>, an inspirational instructor who has revamped the CS1 courses at Union College, mentioned that Google is hurting computer science by calling its employees &#8220;engineers.&#8221;  The same point was made to Marissa Mayer when she gave the keynote talk at SIGCSE in 2008.  Megan had a good response but I now read that she&#8217;s not a computer scientist at all but a mechanical engineer!  The problem may be partly on the computer science side&#8230; we still haven&#8217;t defined our field very well.  Engineering brings to mind creativity, construction, collaboration and even I&#8217;m not sure what CS should make me think of.</p>
<p>Overall, a positive, inspirational day leaving me with lots of food for thought and wishing I could have spent more time with so many people I admire and enjoy speaking with.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-07-computer-science-teachers-conference-csta-csit-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to Create Computer Scientists</title>
		<link>http://www.helenemartin.com/2010-07-how-to-create-computer-scientists/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-create-computer-scientists</link>
		<comments>http://www.helenemartin.com/2010-07-how-to-create-computer-scientists/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 20:11:19 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=373</guid>
		<description><![CDATA[I was talking to my dad about the design of a first computer science course and I said something like maybe I was more inclined to want to teach programming early because it&#8217;s what drew me into computer science in the first place.  I started writing some PHP scripts and BASH scripts to solve some [...]]]></description>
			<content:encoded><![CDATA[<p>I was talking to my dad about the design of a first computer science course and I said something like maybe I was more inclined to want to teach programming early because it&#8217;s what drew me into computer science in the first place.  I started writing some PHP scripts and BASH scripts to solve some specific problems I had and got hooked.  My dad doesn&#8217;t think it&#8217;s that simple.  He reminded me that I played <a href="http://en.wikipedia.org/wiki/The_Incredible_Machine">The Incredible Machines</a> and other games like it.</p>
<div id="attachment_376" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/machine1.gif"><img class="size-medium wp-image-376" title="The Incredible Machines" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/machine1-300x225.gif" alt="The Incredible Machines" width="300" height="225" /></a><p class="wp-caption-text">Bowling balls?  Dynamite?  Mouse cages?  The best building materials.</p></div>
<p>The neat thing about the Incredible Machines is that mistakes are made.  Lots of them.  Solving the puzzles requires incremental design and experimentation to understand how each component can be useful alone or when combined with others.  I remember feeling frustrated when things weren&#8217;t working but also really excited when I finally solved a level.  In retrospect, it does seem like that process is a lot like programming.</p>
<p>Then I played a lot of <a href="http://en.wikipedia.org/wiki/Zork_1">Zork</a>.  It&#8217;s again a puzzle game but has the added twist of being command-line based.</p>
<div id="attachment_375" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/zork.png"><img class="size-medium wp-image-375" title="Zork 1" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/zork-300x152.png" alt="Zork 1: The best game ever" width="300" height="152" /></a><p class="wp-caption-text">That&#39;s right, no pictures.</p></div>
<p>To me, it was fun trying to figure out what commands were available when and having to visualize where I was and what was around me.  I still have the maps I drew out painstakingly with colored pencils.  I guess I was getting used to a limited command set and a form of abstraction.  I also realized how efficient typing in commands could be and eventually switched to Linux and a very light weight windowing environment.</p>
<p>Somewhere along the way I got involved in personalizing Windows 95.</p>
<div id="attachment_377" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/pink_screen_of_death.png"><img class="size-medium wp-image-377" title="pink_screen_of_death" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/07/pink_screen_of_death-300x192.png" alt="Pink Screen of Death" width="300" height="192" /></a><p class="wp-caption-text">Yeah, yeah, it&#39;s girly.</p></div>
<p>I never really thought much of it, but to make the Pink Screen of Death I had to change a setting in System.ini, figure out VGA colors and that kind of stuff.  Not super complex, but I was learning about operating systems, data representation, settings, etc.  I also did some fun registry hacking at the time which again got me curious about operating systems, frustrated at Windows, and on to Linux.</p>
<p>Of course, I didn&#8217;t just come up with these projects out of thin air.  I was spending a lot of time on <a href="http://en.wikipedia.org/wiki/Usenet">Usenet</a> and was perfecting my web searching skills.  Most importantly, I was learning how to learn.  That&#8217;s perhaps one of the most important things in computer science given that all of its fundamentals as well as its artifacts are man-made abstractions and that new ones come up every day.</p>
<p>So maybe I didn&#8217;t get to programming first.  And maybe what an introductory computer science class should do, in part, is give students an opportunity to be hooked by experiences similar to my own.  How about games like <a href="http://armorgames.com/play/6061/light-bot-20">Lightbot 2.0</a> or <a href="http://www.kongregate.com/games/PleasingFungus/manufactoria">Manufactoria</a>?  Customization experiences through CSS?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-07-how-to-create-computer-scientists/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>A Principled Course</title>
		<link>http://www.helenemartin.com/2010-07-a-principled-course/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-principled-course</link>
		<comments>http://www.helenemartin.com/2010-07-a-principled-course/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 20:51:10 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>
		<category><![CDATA[csprinciples]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=363</guid>
		<description><![CDATA[This summer, I have the opportunity to work with Larry Snyder from University of Washington&#8217;s Computer Science and Engineering department on his pilot of the CS Principles course.  I&#8217;m thrilled to be part of the process: I&#8217;ve expressed skepticism in the idea of a first course in computing without much programming and I&#8217;m scared of [...]]]></description>
			<content:encoded><![CDATA[<p>This summer, I have the opportunity to work with <a href="http://www.cs.washington.edu/homes/snyder/">Larry Snyder</a> from University of Washington&#8217;s Computer Science and Engineering department on his pilot of the <a href="http://csprinciples.org/">CS Principles course</a>.  I&#8217;m thrilled to be part of the process: I&#8217;ve expressed skepticism in the idea of a first course in computing without much programming and I&#8217;m scared of a reduction in rigor &#8212; what better way to address these areas of concern than to be part of the effort to shape the course?</p>
<p>Larry has been working actively on introductory courses since 1997 or so and has written a <a href="http://www.cs.washington.edu/homes/snyder/fluency.html">textbook</a> on fluency with information technology, a concept defined and solidified by <a href="http://www8.nationalacademies.org/onpinews/newsitem.aspx?RecordID=6482">a committee which he chaired</a>.  That work has defined what &#8220;the average American&#8221; should know in order to effectively leverage the growing availability and sophistication of software and hardware products.  The group advocated teaching IT fluency in three areas: skills (how to use a particular product), concepts (underlying ideas that won&#8217;t change as, for example, new versions of software come out) and intellectual capabilities (problem solving).</p>
<p>Now we&#8217;re tackling a related but not entirely equivalent question: what should &#8220;the average American&#8221; know about computer science?  In my mind, that&#8217;s a trickier question since computer science is a relatively poorly defined field.  Certainly, IT products generally come out of computer science, so there&#8217;s a lot of overlap, but it doesn&#8217;t feel right to define computer science in terms of its products.  What unites those <a href="http://www.cs.washington.edu/homes/ajaffe/">working on structural problems in graph theory</a> to those <a href="http://www.cs.washington.edu/homes/cavender/research.html">working on accessible technology</a>?  I still haven&#8217;t found an entirely compelling answer and some would argue that they don&#8217;t belong in the same discipline/department.  It&#8217;s frustrating to think that I can&#8217;t eloquently describe my own field but I have this vague sense that computer science is about process rather than product.  This suggests that a useful way to think of the CS Principles course in contrast with IT fluency might be that it will include an increased emphasis on &#8220;intellectual capabilities&#8221; built on top of the &#8220;concepts&#8221; part without much &#8220;skills.&#8221;</p>
<p>Another interesting aspect of this course is that its goals are potentially numerous and conflicting.  I think it&#8217;s pretty straight-forward to define the goals for a programming course &#8212; students exiting the course should recognize problems appropriate to solve computationally, should be able to formulate basic algorithms, and should have some syntactic fluency in the language of choice.  There&#8217;s some healthy debate to have on how to reach those goals, but I think most people would agree with the basic skeleton.  Furthermore, defending those goals is pretty straightforward.  By formally expressing algorithms, students develop their problem solving skills in a systematic and measurable way.  Programming is fundamentally a creative endeavor and that is a useful and satisfying experience for students to have.  And so on.</p>
<p>What about a breadth course like this Principles one?  What should a student exiting the course know/understand/be able to do?  So far, the course committee has shared lots of high-level notions of what the course should convey through its 7 <a href="http://csprinciples.org/bigideas.php">Big Ideas</a> (reminiscent of Peter Denning&#8217;s 7 <a href="http://cs.gmu.edu/cne/pjd/GP/gp_summary_toplevel.html">Great Principles</a>), a set of general <a href="http://csprinciples.org/practices.php">practices</a> and a philosophical <a href="http://csprinciples.org/rationale.php">rationale</a> for the course.  This does not yet imply any specific set of skills and understandings that a student would have exiting the course.  That&#8217;s what the pilots are for.</p>
<p>For the UW pilot, to be offered this coming winter, Larry and I are trying to be disciplined about using a form of <a href="http://en.wikipedia.org/wiki/Backward_design">backward design</a> to try to avoid an aimless romp through &#8220;cool stuff&#8221; related to computer science.  We are trying to come up with &#8220;unit-level&#8221; goals that describe the general concept a student should come away with, breaking those down into small skill, knowledge or understanding based goals and writing corresponding sample assessment questions so that we can then work to create the most appropriate learning activities.  I don&#8217;t know whether we&#8217;ll have the discipline to stick to this process for the development of the entire course but it has certainly helped me focus my thinking and give me hope that we can weave a coherent story.</p>
<p>It&#8217;s interesting to ponder whether specific outcomes and connectivity between topics matter all that much.  My sense is that if this were just a college course with the goal of getting freshmen excited about taking a programming course and considering computer science, it might be ok for it to just throw as much &#8220;cool&#8221; stuff as possible in students&#8217; direction.  I think that for it to be successful as a high school class, though, it will need to be much more clearly based on specific outcomes.  Without those, districts will be reluctant to adopt it (where are the standards it covers?), teachers will be difficult to train (should I use Alice?  Python?  How do I decide?) and students will see it as an &#8216;easy AP&#8217; to pad their schedule.</p>
<p>To imagined or veritable readers: How would you go about developing such a course?  What are a couple of specific things you believe students marching out of the classroom on the last day should be able to do/explain/use?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-07-a-principled-course/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bellevue AP Institute Conclusion</title>
		<link>http://www.helenemartin.com/2010-07-bellevue-ap-institute-conclusion/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bellevue-ap-institute-conclusion</link>
		<comments>http://www.helenemartin.com/2010-07-bellevue-ap-institute-conclusion/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 16:40:16 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=361</guid>
		<description><![CDATA[I&#8217;m glad I went.  It was an interesting glimpse into what other teachers are doing in their classrooms and a good reminder of how important a network and support structure are.  I&#8217;m hoping all of us who participated will stay in touch and I&#8217;m sure our practice will be stronger because of it.  I also [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad I went.  It was an interesting glimpse into what other teachers are doing in their classrooms and a good reminder of how important a network and support structure are.  I&#8217;m hoping all of us who participated will stay in touch and I&#8217;m sure our practice will be stronger because of it.  I also really appreciate the resource CD we were given &#8212; lots of great ideas on there.</p>
<p>My expectations were not met, but that&#8217;s probably ok.  I imagined from the agenda that there would be both a novice and an advanced group.  Of course, there were too few of us to have both and that&#8217;s evidence of deeper problems we need to resolve.  I was hoping for some demos of pedagogical strategies for difficult concepts in tight, well-scripted mini-lessons.  Our instructor talked about what he does and had us work on projects he does with students which was appropriate given our average level.  I was hoping for an opportunity to do some AP-style grading to encourage a rubric-based approach to grading all year and to help normalize our classes across the state.  I thought maybe we&#8217;d get some insight into good papers to read about teaching CS1 and maybe some fun activities to do to help teach difficult concepts.</p>
<p>I appreciated the time we had to share ideas and discuss our challenges.  Hopefully we can address some of them over e-mail and help each other grow as instructors.</p>
<p>And if I do go to an AP Institute again, I&#8217;ll try to find one with an experienced track.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-07-bellevue-ap-institute-conclusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bellevue AP Institute First Impressions</title>
		<link>http://www.helenemartin.com/2010-06-bellevue-ap-institute-first-impressions/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bellevue-ap-institute-first-impressions</link>
		<comments>http://www.helenemartin.com/2010-06-bellevue-ap-institute-first-impressions/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 00:44:51 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>
		<category><![CDATA[apcs]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=352</guid>
		<description><![CDATA[I&#8217;ll start by saying that our instructor, Kyle Gillette, is very personable, knowledgeable, and even puts up with my dissent!  Swell guy. I wasn&#8217;t quite prepared for what this would look like &#8212; only 10 of us are there for the AP Computer Science session and most have either not offered the course yet or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll start by saying that our instructor, <a href="http://www.bsd405.org/Default.aspx?tabid=952">Kyle Gillette</a>, is very personable, knowledgeable, and even puts up with my dissent!  Swell guy.</p>
<p>I wasn&#8217;t quite prepared for what this would look like &#8212; only 10 of us are there for the AP Computer Science session and most have either not offered the course yet or are just beginning.  In fact, several have not done much Java or programming.  I was pretty taken aback to see us diving right into creating a Person class using BlueJ and then I remembered that I live in this comfortable land where nearly anyone I share ideas with has a procedural-first teaching philosophy.  I was totally baffled when in the first twenty minutes, we were being walked through the Person class and our instructor kind of nonchalantly says &#8220;and then we have to build a constructor and I tell my students they can either make up a different name for the parameter we&#8217;re passing in or prepend an underscore or use this notation.&#8221;  He says he does this on day 2 or 3 of his class!  What&#8217;s a parameter?  What&#8217;s passing?  What&#8217;s a field?  What&#8217;s a type?  What&#8217;s this?  Where does that thing I&#8217;m passing in come from?  The teachers around me were certainly not getting into it very smoothly.  I guess the idea is that students can pattern-match for a while and eventually the understanding will sort of emerge.  I do believe that&#8217;s true but it seems painful!</p>
<p>An interesting thing I hadn&#8217;t really thought about with this objects-early business is that there doesn&#8217;t seem to be a lot of what I&#8217;d consider interesting computational problem-solving to do early on.  At least the way it was presented here, it&#8217;s building lots of little classes to establish syntax muscle-memory (and there&#8217;s definitely value to that).  The problem-solving that we did do was very math-y: deriving formulas for the area in our Triangle class and things like that.  I tend not to do that a lot but maybe it&#8217;s a good opportunity for students to review some of their math.</p>
<p><a href="http://www.buildingjavaprograms.com/">Building Java Programs</a> did get a little shout-out as an example of an &#8220;alternate philosophy.&#8221;  I tried to articulate what I see as the reasoning behind &#8220;back to basics&#8221; &#8212; reduce cognitive load, isolate concepts to encourage mastery, allow for meaningful programs early, build solid mental models, etc.  Our instructor&#8217;s comment was that it probably does work better for weaker students.  That&#8217;s a very interesting statement and one that sort of threw me for a loop &#8212; aren&#8217;t the weaker or maybe middle-level students really the ones we should be paying attention to?  In my experience,  if we only had strong students, we could pass out books on the first day then get coffee for the rest of the year and they would still be superstars.  I don&#8217;t think that a methodology that assumes strong students is very productive.</p>
<p><a href="http://www.bluej.org/">BlueJ</a> was applauded for saving students from confusion between classes and objects.  One of two things is at work, I think.  Either students who use the (truly very good) visualizations of classes, their relationships and their instances over time internalize a model of how classes and objects interact.  Or maybe the system acts as a crutch that doesn&#8217;t require them to explicitly form good mental models.  I don&#8217;t know.  I did use it with a couple of students I started working with mid-year a couple of years back and found it fine but they definitely hiccuped a bit when starting to write client code.</p>
<p>As a side note, Kyle uses this style of curly braces which I had never seen before:</p>
<pre><code>container header
{   stuff here;
    stuff here;
}
</code></pre>
<p>Strangely enough, <a href="http://www.horstmann.com/">Cay Horstmann</a> (of <a href="http://www.horstmann.com/bigjava.html">Big Java</a> and <a href="http://www.horstmann.com/corejava.html">Core Java</a> fame) wrote a blog post today pointing out that <a href="http://weblogs.java.net/blog/cayhorstmann/archive/2010/06/28/horstmann-brace-style">he is the originator of that style</a>.</p>
<p>I leave the first day feeling very grateful for my background and a little discouraged for K-12 computer science education.  The other teachers all seem really energetic and awesome and I know their courses will rock but even if they work like crazy this summer and through the year I&#8217;m afraid they&#8217;re not going to be that far ahead of their students content-wise.  We need more people who have domain knowledge and can focus on pedagogy, recruiting, clever projects, clubs&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-06-bellevue-ap-institute-first-impressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Elusive Information</title>
		<link>http://www.helenemartin.com/2010-06-elusive-information/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=elusive-information</link>
		<comments>http://www.helenemartin.com/2010-06-elusive-information/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 01:17:25 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=337</guid>
		<description><![CDATA[I made a marginally provocative (and slightly childish) tweet and was asked to explain. Ok, world: I&#8217;ve decided that search engines, INCLUDING YOUR PRECIOUS GOOGLE, are basically useless. Please improve. Love, Hélène. I call it search malaise.  Until maybe 2004 or so, I was super excited every time I searched for information and got tons [...]]]></description>
			<content:encoded><![CDATA[<p>I made a marginally provocative (and slightly childish) tweet and was asked to explain.</p>
<blockquote><p>Ok, world: I&#8217;ve decided that search engines, INCLUDING YOUR PRECIOUS GOOGLE, are basically useless. Please improve. Love, Hélène.</p></blockquote>
<p>I call it search malaise.  Until maybe 2004 or so, I was super excited every time I searched for information and got tons of amazing stuff back.  Web search (and Usenet) triggered my interest in computing and allowed me to learn to program among other things of various utility and tastefulness.  At first, the whole process was beyond thrilling.  Over the last several years, I&#8217;ve gone from seeing search as a magical gift to treating it as an unexceptional tool to finally being incredibly irritated by it.</p>
<p>As I&#8217;ve been building up a high school computer science program, I&#8217;ve been starved for teaching resources, connection to other high school CS teachers and relevant CS education research.  I know there&#8217;s a ton of stuff out there but I keep running into the same resources or rather lack thereof.  Blogs and mailing lists occasionally point out real gems and I find myself frustrated that my searches never brought me to them.  Of course, it&#8217;s not entirely a search problem.  In fact, it&#8217;s probably primarily an information representation issue &#8212; if only information creators had tools to better characterize their information, maybe I wouldn&#8217;t be so irritated.  Where&#8217;s this semantic web business I keep hearing about?  Oh, right, it&#8217;s a Hard Problem.</p>
<p>Let me illustrate the type of issues I run into.  Let&#8217;s say I need some ideas for giving my students practice on while loops.</p>
<p><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.34.25-PM.png"><img class="aligncenter size-medium wp-image-338" title="Screen shot 2010-06-19 at 5.34.25 PM" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.34.25-PM-300x185.png" alt="" width="300" height="185" /></a></p>
<p>Oops.  &#8221;Assignment&#8221; also means giving a value to a variable, so nothing very useful comes out.  Ok.</p>
<p><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.35.42-PM.png"><img class="aligncenter size-medium wp-image-339" title="Screen shot 2010-06-19 at 5.35.42 PM" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.35.42-PM-300x198.png" alt="" width="300" height="198" /></a></p>
<p>The first and third hits are useful, but the rest really aren&#8217;t relevant to what I&#8217;m looking for.  Isn&#8217;t it obvious, though?!  I want problem statements I can give to my students that encourage them to practice the while construct!  Deep breath.  What if I try adding something about intro to programming courses?</p>
<p><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.38.40-PM.png"><img class="aligncenter size-medium wp-image-340" title="Screen shot 2010-06-19 at 5.38.40 PM" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.38.40-PM-300x184.png" alt="" width="300" height="184" /></a></p>
<p>Unfortunately course numbers are entirely unpredictable between organizations.</p>
<p><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.42.44-PM.png"><img class="aligncenter size-medium wp-image-342" title="Screen shot 2010-06-19 at 5.42.44 PM" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/Screen-shot-2010-06-19-at-5.42.44-PM-300x206.png" alt="" width="300" height="206" /></a></p>
<p>Come on!  APCS hasn&#8217;t been taught in C++ since 2003!  Did the quotes help? Sort of.  Without them the third result was about choosing APC loop capacitors.</p>
<p>This goes on and on until I give up and look through a good old-fashioned book.  There&#8217;s no overlap between the results of semantically identical queries and the whole endeavor becomes a game of figuring out which search terms are most likely to bear fruit.</p>
<p>In reality, there are great resources on while loops for me to use as inspiration and to point my students to.  <a href="http://codingbat.com/">CodingBa</a>t did make an appearance in the results, which is good.  I happen to know about <a href="http://webster.cs.washington.edu:8080/practiceit/">Practice-It</a> and <a href="http://www.cs.washington.edu/education/courses/cse142/10wi/homework.shtml">UW&#8217;s great assignments</a> because I know and love their creators.  I&#8217;ve also come across <a href="http://www.cs.princeton.edu/introcs/assignments/">Princeton&#8217;s CS1 assignments</a>, <a href="http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php">The Practice of Using Python assignments</a>, <a href="http://www.shenet.org/high/hsacaddept/technology/chanley/javahalfyear/assigns/cwhassign.htm">Mr. Hanley&#8217;s assignments</a>, <a href="http://www.rfrank.net/cslabs-final/cslabs.html">Roger Frank&#8217;s labs</a> and a bunch of others I know to turn to when I have a need for ideas.  I have no idea which magical query led me their way.</p>
<p>More and more, I find myself giving up on a straight web search and instead searching <a href="http://delicious.com/purplespatula">my own Deliciou</a><a href="http://delicious.com/purplespatula">s bookmarks</a>.  Of course, that has its own issues.  Did I tag a particular thing I&#8217;m looking for as <a href="http://delicious.com/purplespatula/assignments">assignments</a>?  <a href="http://delicious.com/purplespatula/apcs">apcs</a>?  <a href="http://delicious.com/purplespatula/creativecomputing">creativecomputing</a>?  <a href="http://delicious.com/purplespatula/cs1">cs1</a>?  Is there any type of logic to how I tag information?!</p>
<p>What&#8217;s being done about this?  I don&#8217;t really know and I&#8217;d like to know more.  A couple of years ago I got very excited to hear about <a href="http://www.powerset.com/about">Powerset</a>&#8216;s ambitious goals.  I hear now they&#8217;re part of Bing.  There are <a href="http://www.w3.org/RDF/">various</a> <a href="http://www.w3.org/TR/owl2-overview/">notations</a> for representing relationships between information and hopefully giving search engines more of a clue, but if I can&#8217;t figure out a sensible way to tag my small collection of bookmarks, the efforts seem doomed to fail &#8212; these systems place the burden of establishing semantic links on content creators and we&#8217;re probably too lazy/busy/incompetent to do a good job.</p>
<p>There&#8217;s so much data and information that&#8217;s out of reach because I just can&#8217;t find it&#8230; it makes me sick to think about it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-06-elusive-information/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AP Computer Science Advice</title>
		<link>http://www.helenemartin.com/2010-06-ap-computer-science-advice/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ap-computer-science-advice</link>
		<comments>http://www.helenemartin.com/2010-06-ap-computer-science-advice/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 01:48:51 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>
		<category><![CDATA[apcs]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=321</guid>
		<description><![CDATA[I'm heartbroken to see my seniors leaving but I'm also excited to follow their adventures.  What a smart, talented and cool bunch of students!  They leave next year's AP Computer Science class with great advice.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m heartbroken to see my seniors leaving but I&#8217;m also looking forward to following their adventures.  They all have exciting plans ranging from studying some type of engineering (computer?!) at MIT to computer science at Westpoint.  What a smart, talented and cool bunch of students!  I can only hope to have classes as amazing as this year&#8217;s AP CS again.</p>
<p style="text-align: center;"><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/09-10-Garfield-AP-CS1.jpg"><img class="aligncenter size-large wp-image-323" title="09-10 Garfield AP CS" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/09-10-Garfield-AP-CS1-1024x768.jpg" alt="" width="502" height="377" /></a></p>
<p>I asked everyone to leave some advice for upcoming AP CS students and I think they came up with great stuff:</p>
<blockquote><p>The Five Tenets of Programming<br />
1. If you feel like you’re falling behind, ask for help, if not from Ms. Martin, then from other students.  You’ll save yourself hours of frustration.<br />
2. Don’t be afraid to try your own thing if you get the chance, even if you think it’s beyond your level.  You’ll learn faster if you’re interested in the project.<br />
3. Temp variables are awesome.  So are ArrayLists.<br />
4. Don’t let the sometimes snooty programming club people argue with you — by the end of the year, you’ll probably know more.<br />
5. And NEVER tell yourself you’re bad at coding.  EVER.  This just leads to failure.  See tenet 1.</p></blockquote>
<blockquote><p>Don’t trust the GridWorld.  Never code a method unless necessary.</p></blockquote>
<blockquote><p>BE PATIENT!  It’s frustrating, yes, but when you think about it calmly and figure out what needs to be done and what you need to do that, end results will be exhilarating!  Side story: I refused, eventually, to help my friend on his work for another programming class because instead of thinking everything out, he gets angry and rants about how much CS sucks.  Honestly, being patient and drawing things out will be more helpful than sitting around and crying.</p></blockquote>
<blockquote><p>PAY ATTENTION DURING GRIDWORLD INTRO.  If you don’t you’ll be mighty confused.</p></blockquote>
<blockquote><p>Take loads of notes, pay attention and GO TO GOOGLE.</p></blockquote>
<blockquote><p>I didn’t sign up for AP CS, so I was surprised when it became my favorite class and Ms. Martin my favorite teacher.  Appreciate that your teacher is passionate and knowledgeable about her subject.  Don’t be afraid to ask for help, don’t give up when you get frustrated, always make your code as pretty as possible, and celebrate when you complete a task.</p></blockquote>
<blockquote><p>Use Ms. Martin — she’s a great resource.  Don’t be afraid to look at what other coders have done before you.  Stay ahead of deadlines if you can.  Enjoy yourself, work hard, this class can be a blast.</p></blockquote>
<blockquote><p>Learn to speak in code.  It helps on history papers when you write an essay in Java.  Also become a fan of curly braces and other lingo that can make or break your program.  Also love Ms. Martin.  She’s an awesome teacher and is driving herself broke by teaching.</p></blockquote>
<blockquote><p>Use Eclipse and come in after school.  The teacher actually teaches and helps — whoa!</p>
<pre><code>for(int days = 1; days &lt;=  365; days++) {
    haveFun();
}
</code></pre>
</blockquote>
<blockquote><p>Stay on top of things and don’t get behind!  Stay after school to get extra help.  Work with others and form connections for help later in the class.</p></blockquote>
<blockquote><p>Work hard, listen to Ms. Martin.  This IS the best class at Garfield, so be sure to make the most of it.</p></blockquote>
<blockquote><p>Do all work early and finish as soon as possible.  Ask Ms. Martin for help when needed and use patience.</p></blockquote>
<blockquote><p>AP computer science is one of the funnest and most interesting classes I have ever taken.  Remember to always compile your code so that it saves and so that you can fix your errors as you go rather than having a giant amount of errors by the time you finish.  Participate in programming competitions — they’re fun and you learn a lot by working with others.</p></blockquote>
<blockquote><p>GOOD LUCK!  Don’t get frustrated because the concepts become easier as a person codes more and learns more.  Also, take advantage of class time!</p></blockquote>
<blockquote><p>Be good at pinball.  Be committed if you are going to take this class and study hard and often.  Make sure to stay on top of your projects and don’t get behind.</p></blockquote>
<blockquote><p>Don’t jump in second semester!  Or I guess you can if you really wanna!</p>
<p>Pay attention in class, don’t let yourself get behind or it will suck.  Hard work doesn’t guarantee success so be patient.  Ms. Martin is hella scary so don’t ask her for anything. <img src='http://www.helenemartin.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p></blockquote>
<blockquote><p>Eclipse is your best friend.  Neglect your other classes because this one is better.</p></blockquote>
<blockquote><p>It is a fascinating logic-based environment with simply the best and most competent teacher at Garfield.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-06-ap-computer-science-advice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Two wheels</title>
		<link>http://www.helenemartin.com/2010-06-two-wheels/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=two-wheels</link>
		<comments>http://www.helenemartin.com/2010-06-two-wheels/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 21:26:54 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accident]]></category>
		<category><![CDATA[scooter]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=315</guid>
		<description><![CDATA[I&#8217;m sold on two wheels.  Look at me on the left, there&#8230; don&#8217;t I look thrilled?! I&#8217;ve never much liked driving &#8212; I find it boring, terrifying, cumbersome and depressingly inefficient.  Most of driving is spent retracing the same route over and over again, all alone in a gas-guzzling bubble of steel.  Once at destination, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://yanokwa.smugmug.com/Events/Two-Wheeling/scooter-pose/739987542_M6apa-M.jpg" alt="" width="360" height="239" />I&#8217;m sold on two wheels.  Look at me on the left, there&#8230; don&#8217;t I look thrilled?!</p>
<p>I&#8217;ve never much liked driving &#8212; I find it boring, terrifying, cumbersome and depressingly inefficient.  Most of driving is spent retracing the same route over and over again, all alone in a gas-guzzling bubble of steel.  Once at destination, finding parking is a frustrating and sometimes fruitless endeavor.  Not my idea of fun.</p>
<p>Yaw and I took a <a href="https://eir.eventsinteractive.com/ei/cm.esp?id=2811605000004&amp;pageid=_2T30NAUA4&amp;showpage=srchresults&amp;pagefrom=srchresults&amp;eiscript=30S0D0GOT&amp;cd=2866721880">motorcycle safety class</a> about a year and a half ago to see what two wheels were all about and we both loved it.  Yaw&#8217;s a gear head so no surprises there but I enjoyed it a lot more than I thought I would.  First, the class is well-structured and the instructor was fantastic but the whole motorcycle riding thing really appealed to me.  Think about it:</p>
<ul>
<li>Anywhere between 30 and 80 miles a gallon works for my environmentalist side</li>
<li>Feeling the road and air around works for the side of me that doesn&#8217;t like a boring commute</li>
<li>Turning by leaning is just awesome in general</li>
<li>Quick parking everywhere appeals to my impatient side</li>
<li>The price tag for a two-wheeled vehicle appeals to my thrifty side</li>
</ul>
<p>I was looking around for good starter bikes and realized that a scooter would liberate me from having to think about shifting and that it would give me under-seat storage.  I did a bunch of reading and looking around at the predictable <a href="http://www.vespausa.com/scooters.php#/home/Vespa LX 150 i.e.">Vespa</a>,  the <a href="http://www.yamaha-motor.com/sport/products/modelhome/150/home.aspx">Vino</a>, the <a href="http://www.flyscooters.com/scooters/lavie">La Vie</a>, the <a href="http://powersports.honda.com/2009/metropolitan.aspx">Honda Metropolitan</a> before deciding I had to have a <a href="http://www.genuinescooters.com/scooters/buddy/buddy_3.html">Genuine Buddy 125</a>.  I think it took me a week between deciding I had to have it and actually purchasing one used from a great Craigslist-er.</p>
<p>I love the Buddy 125.  It&#8217;s very easy to handle, is comfortable to ride, feels sturdy, is light, has a nice-sounding engine (not like riding a lawnmower), looks awesome, has lots of storage&#8230; perfect for me!  Riding it, I did not hate driving.</p>
<p>Sadly, my beautiful companion is no more.  This morning, I was riding along a couple of blocks from home and an SUV came out of a driveway going pretty fast about two car lengths from where I was.  I braked hard and with the wet pavement, I slid under him.  I was ejected onto my left side and got no more than a nice hip bruise but the poor scooter didn&#8217;t do so well.</p>
<p><a href="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/DSC02748.jpg"><img class="aligncenter size-medium wp-image-316" title="DSC02748" src="http://www.helenemartin.com/wordpress/wp-content/uploads/2010/06/DSC02748-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Interesting to see how it basically just snapped in half.  Makes sense &#8212; that long middle part is pretty thin.  The officer who came to the scene wanted ID and I had to sheepishly explain that I couldn&#8217;t pry it out of the under seat compartment.  Finally Yaw managed it, bent key and all.</p>
<p>I&#8217;m a little shaken, of course, but I&#8217;m still in love with riding on two wheels.  What I&#8217;m getting out of the experience:</p>
<ul>
<li>Even if it&#8217;s a boring commute, I need to be extra alert at all times.</li>
<li>I need to be particularly aware of driveways.</li>
<li>I need to practice emergency braking on wet pavement.  Not sure if I could have stopped no matter what (and maybe scrapping my side was better than face planting into the car), but I should be able to stop fast without slipping.</li>
<li>Gear rocks &#8212; I wouldn&#8217;t have liked to do this in flipflops and a t-shirt or without a helmet.</li>
<li>A crash at normal city speeds really sucks but hey.  Let&#8217;s not do this at highway speeds.</li>
<li>I need to figure out what two-wheeled vehicle to get next&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-06-two-wheels/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Computer Science Guest Speakers</title>
		<link>http://www.helenemartin.com/2010-05-computer-science-guest-speakers/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=computer-science-guest-speakers</link>
		<comments>http://www.helenemartin.com/2010-05-computer-science-guest-speakers/#comments</comments>
		<pubDate>Wed, 26 May 2010 04:54:10 +0000</pubDate>
		<dc:creator>Hélène Martin</dc:creator>
				<category><![CDATA[Teaching]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[speakers]]></category>

		<guid isPermaLink="false">http://www.helenemartin.com/?p=313</guid>
		<description><![CDATA[Guest speakers are good for convincing students that real, successful people are excited about computer science.  It&#8217;s also nice as a way to break up the routine.  Some of the speakers I&#8217;ve had this year: Stuart Reges from UW who talked about many interesting ideas related to computer science including meta, recursion and more! Mike [...]]]></description>
			<content:encoded><![CDATA[<p>Guest speakers are good for convincing students that real, successful people are excited about computer science.  It&#8217;s also nice as a way to break up the routine.  Some of the speakers I&#8217;ve had this year:</p>
<ul>
<li><a href="http://www.cs.washington.edu/homes/reges/">Stuart Reges</a> from UW who talked about <a href="http://www.garfieldcs.com/2009/09/guest-speaker-stuart-reges-from-the-university-of-washington/">many interesting ideas</a> related to computer science including meta, recursion and more!</li>
<li>Mike Dussault from Valve who talked about <a href="http://www.garfieldcs.com/2009/09/guest-speaker-mike-dussault-from-valve/">creating video games</a></li>
<li><a href="http://www.jamesgeorge.org/">Jim George</a> who talked about <a href="http://www.garfieldcs.com/2009/10/jim-george-on-programming-for-art/">using software as art</a></li>
<li>Kwaku Sefa-Dedeh who talked about the business side of Microsoft</li>
<li>Robert Morton who talked about his work at <a href="http://www.tableausoftware.com/">Tableau software</a> and becoming a computer scientist</li>
</ul>
<p>When I was in high school, I always appreciated the opportunity to talk to adults doing things I found interesting.  Strong engineering and computing mentors played a big role in steering me in the direction I followed so I hope to bring a bit of the same to my students.</p>
<p>Today, my classes were very lucky to get a visit from Ben Slivka, starter of Internet Explorer among other cool things.  I took some notes as students asked questions and have done my best to recreate some of what was discussed.  It was really fun to get his insights on all kinds of things technology.</p>
<p><strong>Which of the companies you worked in was the most fun?</strong><br />
Mr. Slivka told us that he had the most fun at Microsoft.  Starting Internet Explorer was a creative and innovative endeavor involving great people.  It was a lot of work, too — he told us that 80-100 hour weeks were not uncommon for him!  Mr. Slivka first saw a web browser in 1994 (<a href="http://en.wikipedia.org/wiki/Mosaic_%28web_browser%29">Mosaic</a>) and knew that it was an exciting development.  In fact, in 1995, he wrote an internal memo on how important the web would become titled “<a href="http://www.justice.gov/atr/cases/exhibits/21.pdf">The Web is the Next Platform</a>.”  At the time, there were only a few thousand websites as opposed to today’s tens of millions.</p>
<p>Mr. Slivka worked with Internet Explorer through its third release and grew the team from 7 to 69 engineers.  He shared with us that during his time at Microsoft, a person in the USA was more likely to become a Microsoft millionaire than an NBA player!</p>
<p><strong>Why did you leave Microsoft?<br />
</strong>Young Microsoft took lots of risks to become successful but as it has grown, it has become more concerned with protecting its primary products (Windows and Office) rather than innovating.  Around 1999, Mr. Slivka wanted to pursue Internet-related innovations but that was not the direction the company was taking.  The book <a href="http://www.breakingwindows.net/1prologue.htm">Breaking Windows</a> covers the time when he was leaving Microsoft and the prologue is online.</p>
<p><strong>Is it scary to talk to company founders like Bill Gates (Microsoft) or Jeff Bezos (Amazon)?<br />
</strong>No!  According to Mr. Slivka, companies are a lot less hierarchical now than they were maybe 50 years ago so it’s natural for CEOs to have relatively frequent contact with their employees.  When he was at Microsoft, it was not unusual for him to trade e-mails and have face-to-face meetings with Bill Gates.</p>
<p><strong>What is one of the most exciting ideas in computer science?<br />
</strong>Mr. Slivka told us about <a href="http://en.wikipedia.org/wiki/Computational_complexity_theory">computational complexity</a>, the study of the difficulty of programming tasks.</p>
<p><strong>Was it difficult to see OS/2 fail after 5 and a half years of work?<br />
</strong>Only doing things that will succeed is boring, says Mr. Slivka!  There is a lot more to learn from mistakes than from successes.  It was difficult to see such a big time and energy investment be lost but going through the process of creating the product was valuable.  OS/2 was a joint venture between Microsoft and IBM and their goals were different.</p>
<p><strong>What was the hardest project you were involved in?<br />
</strong>The human factor in projects is often the most difficult.  In 1998, Mr. Slivka was asked to take part in designing a new interface for Windows.  He and two others were in charge of the project and there was conflict among the leadership which made it difficult.</p>
<p><strong>What do you think of the iPad?<br />
</strong>It’s somewhere between a phone and a laptop and it’s hard to know where it fits in.  It still requires a PC since when turned on it wants to be synced to iTunes.  The device is too heavy but it does have a gorgeous screen.  The brushed aluminum is beautiful but very slippery.  Mr. Slivka sees it mostly as an expensive toy.  He reminded us that computing technology is like grocery store produce in that it has a limited shelf life.  This first version of the iPad is not likely to be popular for long.  The lack of multitasking and virtual memory are real limitations.</p>
<p><strong>Can you comment on the Apple vs. Adobe war?</strong><br />
Apple is playing defense right now by trying to protect their control over all aspects of their products.  The Flash battle is not about security or stability, it’s about market control and — ultimately — dollars.</p>
<p><strong>Which web browser do you use?<br />
</strong>IE7 was too slow and Mr. Slivka switched to Firefox.  He does not use Bing.</p>
<p><strong>What do you think about cloud computing?<br />
</strong>Offline computing still has a role since there is no pervasive connectivity yet.  If cloud computing means data is never lost, actions can be infinitely undone, groups can collaborate well, no need to worry about installations of software then it’s a great idea but in practice, there is no great implementation yet.  Google Docs doesn’t work well but it’s definitely possible to create a fully-functioning word editor in the cloud some day.</p>
<p><strong>What are the main privacy issues on the Internet?<br />
</strong>Mr. Slivka shared his policy: he doesn’t put anything up online that he wouldn’t be ok with being on the New York Times front page.  People should be thoughtful about what they share and market forces will work to punish companies that don’t respect privacy well enough.  In his opinion, the government is getting involved because it’s currently on people’s mind and will help politicians win elections.</p>
<p><strong>What will Google look like in the next few years?<br />
</strong>Google is now suffering from the same problem as Microsoft: Microsoft has revenue from Windows and Office and wants to protect those while Google has Search and AdWords and wants to protect those revenue streams.  Google’s challenge will be innovating beyond search and ads while making sure they can maintain their dominance as products like Bing get significant investment.  Their current strategy is to be everywhere (Android, Chrome, etc) and make Google the preferred platform so they can protect their search and ad dominance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helenemartin.com/2010-05-computer-science-guest-speakers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
