<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8423871612080324271</atom:id><lastBuildDate>Thu, 21 Apr 2011 19:49:25 +0000</lastBuildDate><category>python</category><title>UMBC CMSC 691p Spring 2009</title><description>Teaching CS1 in Python</description><link>http://cmsc691p.blogspot.com/</link><managingEditor>noreply@blogger.com (Tim Finin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/UmbcCs1InPython" /><feedburner:info uri="umbccs1inpython" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-2969246430870997589</guid><pubDate>Wed, 04 Feb 2009 00:33:00 +0000</pubDate><atom:updated>2009-02-03T16:56:08.976-08:00</atom:updated><title>Project Euler: a good source of programming problems</title><description>&lt;a href="http://projecteuler.net/"&gt;Project Euler&lt;/a&gt; might be a good source of programming problems for a CS1 course.&lt;br /&gt;&lt;blockquote&gt;"Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems."&lt;/blockquote&gt;The project was started in 2001 and now has 230 problems.  Each one has a short description and can be solved by a computer program that runs in a minute or less on a modest computer. Here's an example of one of the problems (&lt;a href="http://projecteuler.net/index.php?section=problems&amp;amp;id=5"&gt;#5&lt;/a&gt;):&lt;br /&gt;&lt;blockquote&gt;"2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.What is the smallest number that is evenly divisible by all of the numbers from 1 to 20?"&lt;/blockquote&gt; The site shows statistics (if you register) that show the programming languages used by people who have submitted solutions.  Python is second only to C/C++ in the ranking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-2969246430870997589?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/02/project-euler-good-source-of.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-6065751991881912784</guid><pubDate>Tue, 03 Feb 2009 03:36:00 +0000</pubDate><atom:updated>2009-02-02T19:38:13.694-08:00</atom:updated><title>Berkeley online study guide for learning Python</title><description>Berkeley has resources for "self-paced" study, including a course on learning &lt;a href="http://inst.eecs.berkeley.edu/~selfpace/class/cs9h/"&gt;Python&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;This uses the online version of &lt;a href="http://openbookproject.net//thinkCSpy/"&gt;How to think like a computer scientist&lt;/a&gt; and has programming assignments, sample quizzes and quizzes.  I found the site to be very slow to serve up pages for some reason.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-6065751991881912784?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/02/berkeley-online-study-guide-for.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-1670849226216172370</guid><pubDate>Sun, 01 Feb 2009 21:54:00 +0000</pubDate><atom:updated>2009-02-01T14:03:14.898-08:00</atom:updated><title>Use emacs as your Python IDE</title><description>Committed emacs users might take a look at a post by Ryan McGuire,  &lt;a href="http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/" rel="bookmark" title="Permanent Link to Emacs as a powerful Python IDE"&gt;Emacs as a powerful Python IDE&lt;/a&gt;, where he suggests how to set up your emacs environment for python hacking.&lt;br /&gt;&lt;blockquote&gt;"A lot of people, for whatever reason, don't feel that Emacs is an IDE at all. I don't personally care what you define it as — the fact remains — Emacs is a powerful Python environment and despite being over 32 years old has proven to be just as modern as any IDE today, and remains THE most configurable editor (operating system?) ever."&lt;/blockquote&gt;The key enablers seem to be &lt;a href="http://pymacs.progiciels-bpi.ca/"&gt;Pymacs&lt;/a&gt;,  &lt;a href="http://rope.sourceforge.net/"&gt;Rope&lt;/a&gt;, and &lt;a href="http://rope.sourceforge.net/ropemacs.html"&gt;Ropemacs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-1670849226216172370?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/02/use-emacs-as-your-python-ide.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-6107656943708619754</guid><pubDate>Thu, 29 Jan 2009 16:56:00 +0000</pubDate><atom:updated>2009-01-29T09:37:23.033-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><title>Python cheat sheet</title><description>If you are learning a programming language it's often useful to have a cheat sheet with a concise list of key information.  You can find many on the Web for Python, but I think that the &lt;a href="http://users.physik.fu-berlin.de/%7Egoerz/blog/wp-content/uploads/2008/09/python_refcard.pdf"&gt;Python Refcard&lt;/a&gt; done  by &lt;a href="http://users.physik.fu-berlin.de/%7Egoerz/blog/2008/05/python-refcard/"&gt;Michael Goerz&lt;/a&gt; is one of the best.&lt;br /&gt;&lt;blockquote&gt;'It contains: variable types (numbers, sequences, sets, strings and regular expressions), basic syntax, object orientation and modules, exception handling, system interaction, input/output, standard library"&lt;/blockquote&gt;It is intended to be printed on one piece of paper (double sided) and is formatted for &lt;a href="http://en.wikipedia.org/wiki/ISO_216"&gt;A4&lt;/a&gt;, but Adobe manages to shrink it to print on letter size paper and the source is available in &lt;a href="http://users.physik.fu-berlin.de/%7Egoerz/blog/wp-content/uploads/2008/09/python_refcard.odt"&gt;ODT&lt;/a&gt;, if you want to fiddle with it.&lt;br /&gt;&lt;br /&gt;We might consider creating one or more one-page cheat sheets for use in CMSC 201 next Fall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-6107656943708619754?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/01/python-cheat-sheet.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-3420455108377032051</guid><pubDate>Wed, 28 Jan 2009 14:18:00 +0000</pubDate><atom:updated>2009-01-28T06:19:43.809-08:00</atom:updated><title>Club ShowMeDo videos on learning Python</title><description>Club Showmedo videos on learning Python&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://showmedo.com/"&gt;showMeDo&lt;/a&gt; site has a series of short screencast videos on &lt;a href="http://showmedo.com/club"&gt;learning Python&lt;/a&gt;.  Access to most of these required a $60/year subscription fee, however.&lt;br /&gt;&lt;blockquote&gt; "Are you learning Python? To keep the site running clean and ad-free we've started Club ShowMeDo. The club will allow you access to some special videos we're making to pass on programming skills we consider important to the development and enjoyment of Free Open Source Software (FOSS).&lt;br /&gt;&lt;br /&gt;The focus at the moment is on developing with the Python programming language, one of the backbones of the FOSS movement with a huge number of included and third-party libraries."  &lt;/blockquote&gt;I'm not sure how effective these screencasts are, but we might experiment with the idea for teaching cmsc201.  Screen casts with narration are easy to do and could be a good way to augment lectures.  We could have the instructors and TAs produce some and might accumulate a good collection over the years.  These could be shared with colleagues at other Universities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-3420455108377032051?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/01/club-showmedo-videos-on-learning-python.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-1719283578569339790</guid><pubDate>Wed, 28 Jan 2009 13:21:00 +0000</pubDate><atom:updated>2009-01-28T05:25:10.163-08:00</atom:updated><title>Crunchy frog python tutorials</title><description>&lt;a href="http://code.google.com/p/crunchy/"&gt;Crunchy&lt;/a&gt; is a Python system that "formats and delivers html-written Python tutorials inside a browser window, adding interactive elements and snazzy navigation."  The name, crunchy, is a &lt;a href="http://en.wikipedia.org/wiki/Crunchy_Frog"&gt;Monty Python&lt;/a&gt; reference.&lt;br /&gt;&lt;br /&gt;Once you have downloaded and installed crunchy on your local computer, you can view HTML pages that have special crunchy-tags that will interact with crunchy and Python.  One of the most useful features is that you can embed a Python interpreter window in your HTML presentation.  If you are using this as an instructor, you can immediately demonstrate Python concepts from your browser.  If you are a student, you can do this and then explore variations on your own.&lt;br /&gt;&lt;br /&gt;Security is one potential issue with crunchy.  Since an HTML file can invoke python from the browser, you need to trust its source.  The authors have clearly thought about this and put in place various mechanisms to help.  But, AFAIK, Python does not have a "sandbox" mechanism like Java's, so some risk remains.&lt;br /&gt;&lt;br /&gt;If we want to use crunchy for teaching and have students install crunchy on their own computers, we'll have to look carefully at the security issues to ensure we understand and minimize the risk.&lt;br /&gt;&lt;br /&gt;If you want to learn more about crunchy, the best way is to install it and view the crunchy tutorial that comes with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-1719283578569339790?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2009/01/crunchy-frog-python-tutorials.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-4028015858862030694</guid><pubDate>Sun, 07 Dec 2008 02:58:00 +0000</pubDate><atom:updated>2008-12-06T19:04:05.604-08:00</atom:updated><title>Guido van Robot</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sNtTniRDkUc/STs8ffV1BoI/AAAAAAAAACk/LB6jpWBWLUE/s1600-h/Gvrobot.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_sNtTniRDkUc/STs8ffV1BoI/AAAAAAAAACk/LB6jpWBWLUE/s320/Gvrobot.png" alt="Guido van Robot" id="BLOGGER_PHOTO_ID_5276877900081333890" border="0" /&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Guido_van_Robot"&gt;Guido the Robot&lt;/a&gt; is a simulator designed to teach people the rudiments of programming in Python.  It's based on the earlier &lt;a href="http://en.wikipedia.org/wiki/Karel_%28programming_language%29"&gt;Karel the Robot&lt;/a&gt;.  It's probably too simple for CMSC201, but might be useful for an initial exercise of perhaps for CMSC100 or CMSC104.  Students write simple programs in a subset of Python to control a robot as it moves around in a city consisting of a rectangular grid of streets (left-right) and avenues (up-down). The system is open sourced, available on &lt;a href="http://gvr.sourceforge.net/index.php"&gt;sourceforge&lt;/a&gt; and still being developed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-4028015858862030694?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2008/12/guido-van-robot.html</link><author>noreply@blogger.com (Tim Finin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_sNtTniRDkUc/STs8ffV1BoI/AAAAAAAAACk/LB6jpWBWLUE/s72-c/Gvrobot.png" height="72" width="72" /><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8423871612080324271.post-2929260143834992404</guid><pubDate>Sun, 30 Nov 2008 15:15:00 +0000</pubDate><atom:updated>2008-11-30T07:17:15.134-08:00</atom:updated><title>What is this blog?</title><description>This public blog is for the Spring 2009 UMBC Computer Science class &lt;a href="http://csee.umbc.edu/691p/"&gt;CMSC 691p, Special Topics: Teaching Computer Science in Python&lt;/a&gt;.  The instructors and students will use it to share information, ideas, and comments as well as to carry on discussions.  Visitors are welcome to participate by adding comments to the posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8423871612080324271-2929260143834992404?l=cmsc691p.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://cmsc691p.blogspot.com/2008/11/what-is-this-blog.html</link><author>noreply@blogger.com (Tim Finin)</author><thr:total>0</thr:total></item></channel></rss>

