Using Python as the "CS 1" programming language

I was out at Michigan State University discussing a faculty appointment last week, and we continued to talk about using Python for an introductory Computer Science class.

Two questions came up and I'm hoping to get an answer to both via the LazyWeb:

Does anyone have personal experience with using these to teach? Please either e-mail me or post a comment -- thanks!

Legacy Comments

Posted by Manuzhai on 2006-10-09 at 00:32.

Not really a book as such, but you should be aware of what Greg Wilson
has done with Software Carpentry (

Posted by Peter Christen on 2006-10-09 at 00:35.

Hi,    I'm a lecturer at the Australian National University in
Canberra. We have recently (2005) started a new course which uses
Python as a first programming language in the framework of media
computation (manipulating pictures, sounds, Web sites etc). The course
Web site is:    <a href="">http:
//</a>    The course is based on the
excellent book:    Introduction to Computing and Programming with
Python: A Multimedia Approach by Mark Guzdial, Prentice-Hall, 2005,
ISBN 0-13-117655-2.    More on this approach can be found at:    <a
teach"></a>    Cheers,

Posted by Seo Sanghyeon on 2006-10-09 at 01:19.

This is worth collecting somewhere. Random Google search turned up <a
cs135tutorial/</a> which is CS 135 Introduction to Programming Logic
at Bethune-Cookman College.

Posted by Seo Sanghyeon on 2006-10-09 at 01:28.

This wiki page is quite comprehensive:  <a href="http://wiki.python.or

Posted by Seo Sanghyeon on 2006-10-09 at 01:31.

A201 Introduction to Programming I at Indiana University. <a href="htt

Posted by Floris Bruynooghe on 2006-10-09 at 06:07.

The University of Southampton uses it as the first language in it's
engineering courses (mechanical, aero, ship, ...) nowadays afaik.  You
may be interested in asking this question on the edu-sig mailing list
( as I think the course
organiser lingers around there.

Posted by Ray Hernandez on 2006-10-09 at 08:24.

Not sure if you are looking for an academic text but  I see Dive Into
Python recommended alot. I think it is a very thorough text. It has an
ink and paper version as well as the academically sexy online version:
<a href="">
/</a>    As an employee of MSU I know that Python has slithered it's
way into some different places around campus. You may also want to try
some of the mailing lists that MSU has to offer to see what others
might think.

Posted by Atanas Radenski on 2006-10-09 at 13:23.

A partial list of schools using Python is posted here: <a href="http:/
m/comp/mod/glossary/view.php?id=2835</a>    At the same site, you can
find links to schools using a 'Python First' digital pack. A link to a
paper that advocates the benefits of Python as CS1 language is posted
here:    <a href="

Posted by rbp on 2006-10-09 at 13:23.

Senac's university centre in Sao Paulo (Brazil) currently teaches
Python as the first programming language, for Comp. Sci. and
Information Systems courses.

Posted by Michael Dillon on 2006-10-10 at 11:29.

Wilfrid Laurier University in Waterloo, Ontario, Canada, has just
switched their first year Computer Programming courses from C to

Posted by Vladimir Zanev on 2006-10-10 at 13:20.

I am a professor in Computer Science at Columbus State University,
Columbus, GA. We are teaching a CPSC 6106 Fundamentals of Computer
Programming for returning graduate students without background in
Computer Science. It a remedy course covering topics of CS1 and CS2.
We have decided to use the approach of Python first, Java second
language. We have adopted and we are using the Study Packs available
at <a href=""></a>. The
textbooks and slides are available online, there are quizzes (multiple
attempts), and lab work with each topic. Below I am copying some
excerpts from student feedback about the Study Packs and Python as a
first language.    "With this class being 1 of three online classes
that I have take so far in my Master studies, this online course has
been the best so far.  The CMS that StudyPack is using is great and
makes Vista look like a 1,000 lb gorilla.  The material is just right
for a intro, online class, for returning students that may not be
initially comfortable with online learning."  "Hi Dr. Zanev.  You
asked for feedback on the course thus far, specifically with respect
to using Python as a first language.   I had never used Python before,
but I've discovered that I really like it.  It is fully featured,
modern, sophisticated, yet elegantly simple.  I can easily create
short quick programs that would just be too much bother in a
traditional compiled language such as Java or C/C++. I know a bit of
Java, and I believe the two are complementary, especially in the
manner in which Study Pack has prepared the Python course (using
parenthesis around conditional expressions, using semicolons at the
end of each statement, etc., make the transition to Java easier)."
" I was very pleased with the Python course and hope to see similar
course formats in the future.  Python seemed to me to be very
intuitive; however, my programming experience is, for the most part,
limited to some introductory programming courses 20+ years ago, so I
don't have much with which to compare.  I really appreciated that the
course was very structured and that student workload was predictable.
I found that the quantity of material was a challenge at times and
that your estimate of 18 hours per week for time required was accurate
for me."    "I like Python as an introductory language. Much easier
than jumping straight into Java. Just looking at the first Java
assignment has already convinced me of that. It may not be harder, per
se, but it looks harder and would be very intimidating.  I think
Python is a lot friendlier, and the IDLE interpreter color coding
makes it easier for novices to see what's going on."

Posted by Nick Efford on 2006-10-11 at 15:40.

We've used Python in the first year of our degree programmes at the
University of Leeds in the UK for three years now.  Indeed, it was,
for a couple of years, the first language encountered by our students
on single-honours programmes.    Unfortunately, for reasons
administrative and political, we've not been able to continue like
this, but I've managed to keep Python as part of our first-year
single-honours teaching, in the form of an open-ended, project-based
module.  We've also introduced this year an elective module in
programming aimed at students studying something other than computing,
and this, too, will use Python.    Our students generally love Python,
and increasing numbers of them are using it in their final-year
project work.

Posted by Mark Guzdial on 2006-11-14 at 21:51.

I keep a list of schools that I've found using our media computation
Python text at <a href="

Comments !

(Please check out the comments policy before commenting.)