[CentralOH] Most important Python techniques?

davelist at mac.com davelist at mac.com
Tue May 15 20:36:30 CEST 2012


Jay,

We've been using Python in CS1 for about 10 years at Capital. We then use a mixture of Python and C++ in the rest of the curriculum so students also get a better understanding of some of the lower-level details that Python hides such as memory management and an understanding of pointers. The combination has worked very well for us and our students. We can do more interesting assignments in CS1. The students can focus more on problem solving/algorithms and less on syntax issues. Companies that hire our students tell us they are happy with the solid foundation our students have and that they are quickly able to learn whatever language or concepts they need to on the job.

We use John Zelle's book in CS1 and then John and I co-wrote a CS2 book that starts with Python and then transitions to C++ about half way through the semester. Now the students can focus We then cover the rest of the book in a third course. The only downside I would say is because we spend more time learning a new language, students don't develop design skills as early as I would like. We do a project-based software engineering course so we spend more time on design there.

Here's the two books we use:

http://mcsp.wartburg.edu/zelle/python/

https://fbeedle.com/content/data-structures-and-algorithms-using-python-and-c

There's a Python CS1 book by a MSU professor that also looks good:

http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php

David M. Reed
Professor of Computer Science
Capital University


On May 15, 2012, at 1:59 PM, Brian Costlow wrote:

> Jay,
> 
> As someone with a physics background who self-taught himself to program, SICP was pretty invaluable.
> 
> While you want the students to write Pythonically, that is use the preferred language idioms, a grasp of CS basics is, I think, more important to take away from a CS 1 course. 
> 
> MIT replaced their old SICP/Scheme-based CS Intro course with a similar Python based one, and that course is mostly replicated as part of MIT's OCW offering.
> 
> You might want to take a look there as inspiration.
> 
> http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/
> 
> On Tue, May 15, 2012 at 1:31 PM, Jay Shaffstall <jshaffstall at gmail.com> wrote:
> Hi all,
> 
> We're experimenting with offering our Computer Science I class in
> Python rather than Java next year at Muskingum University.  I'm super
> excited, because I don't get enough opportunity to play in Python and
> this gives me a great excuse.  I also think students will be able to
> get to do more fun stuff than we could in Java.
> 
> I'd like to get suggestions from people who know Python better than I
> do about the most important Pythonic techniques to learn.  Keep in
> mind I only have one semester, so there will be a limit to what I can
> do.  But if you were teaching someone new to Python, what would you
> make sure you taught them above all else?
> 
> Thanks in advance,
> Jay



More information about the CentralOH mailing list