<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"        http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000"><div class="gmail_quote">Richard Enbody &lt;enbody@cse.msu.edu&gt; wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

    <tt>We do it that way. Use lots of methods for strings, lists and
      dictionaries effectively "use objects first".&nbsp; Later we teach how
      to build classes.&nbsp; We switched our CS1 to Python back in 2007 and
      that approach has worked well to prepare our students for CS2 in
      C++.<br>
      <br>
      -rich<br>
      <a class="moz-txt-link-abbreviated" href="mailto:enbody@cse.msu.edu">enbody@cse.msu.edu</a><br>
      "The Practice of Computing using Python" by Punch &amp; Enbody<br>
    </tt><br>
    On 7/15/11 12:00 AM, Carl Cerecke wrote:
    <blockquote  cite="mid:CALhq9rxuzKimXSmM5Qc4cKUhNQfLDUkvjkW4x5MnDeJxnVmFZw@mail.gmail.com"        type="cite">To the 'Pfff, but python sucks. It's too simple'
      crowd, you can pretty much ignore them - that or get some code off
      <a moz-do-not-send="true" href="http://code.activestate.com">code.activestate.com</a>
      that does something gnarly to show off. I've even got a recipe on
      there, but it's probably not the best one for Java programmers (or
      python programmers, come to think of it :-)<br>
      <br>
      As for teaching programming, I recommend staying away from classes
      at the start, but introducing objects early. Students can easily
      understand the idea of objects and methods before learning about
      classes, because lists, strings, dicts, etc are objects with
      methods. Once they are familiar with built in classes/types, then
      you can introduce custom types (classes) to them.<br>
      <br>
      I've just had the first week of a semester teaching python to
      stage 1 Computer Science students, and that's how we're doing it
      (and have done it in the past) with reasonably good success.<br>
      <br>
      Cheers,<br>
      Carl.<br>
      <br>
      <div class="gmail_quote">On 15 July 2011 15:20, Corey Richardson <span            dir="ltr">&lt;<a moz-do-not-send="true"              href="mailto:kb1pkl@aim.com">kb1pkl@aim.com</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0            .8ex;border-left:1px #ccc solid;padding-left:1ex;">
          <br>
          I was discussing programing with some peers at an MIT summer
          program, and<br>
          many of them came from the "JAVA AND OOP!" type of places to
          the point that,<br>
          when the opportunity came up for them to learn the basics in a
          seminar, a<br>
          few said "Pfff, but python sucks. It's too simple". Is it just
          me, or should<br>
          simplicity be a Good Thing? &lt;/rant&gt;<br>
          <br>
          But, my real question to you educators is, which paradigm do
          you use when<br>
          first teaching programming, and why? My peers cite OOP
          because, frankly,<br>
          it's the only thing they've learned and have heard that e.g.
          procedural<br>
          programming is bad. Personally, I like to use procedural (this
          is in<br>
          Python, of course) for as long as possible. I don't even
          mention objects<br>
          for a while, they aren't necessary or even desirable in many
          instances.<br>
          I love using games as a project, and that's when I swoop in
          and bring up<br>
          objects. My segue are usually the monsters of a text based
          game. I don't<br>
          have them design an object for everything because it
          introduces complexity<br>
          without benefit. Of course, it's not as flexible/correct a
          program as it<br>
          could be, but it's a nice slow ease into OOP. But it certainly
          isn't the<br>
          ONLY paradigm out there, and certainly not the most useful for
          everything.<br>
          <br>
          Any other insights?<br>
          <font color="#888888">--<br>
            Corey Richardson<br>
            &nbsp;"Those who deny freedom to others, deserve it not for
            themselves"<br>
            &nbsp; &nbsp; -- Abraham Lincoln<br>
          </font><br>
          _______________________________________________<br>
          Edu-sig mailing list<br>
          <a moz-do-not-send="true" href="mailto:Edu-sig@python.org">Edu-sig@python.org</a><br>
          <a moz-do-not-send="true"              href="http://mail.python.org/mailman/listinfo/edu-sig"              target="_blank">http://mail.python.org/mailman/listinfo/edu-sig</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Edu-sig mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Edu-sig@python.org">Edu-sig@python.org</a>
<a class="moz-txt-link-freetext" href="http://mail.python.org/mailman/listinfo/edu-sig">http://mail.python.org/mailman/listinfo/edu-sig</a>
</pre>
    </blockquote>
  </blockquote></div><br clear="all">We have a year of Python and Discrete Math using SAGE as an intro to programming. We follow this with AP Computer Science and Java. In Computer Math we don&#39;t address objects. In Computer Science we do &quot;objects first!&quot;<br>
Thanx,<br>
A. Jorge Garcia<br>
Applied Math and CompSci<br>
<a href="http://shadowfaxrant.blogspot.com">http://shadowfaxrant.blogspot.com</a><br>
<a href="http://www.youtube.com/calcpage2009">http://www.youtube.com/calcpage2009</a><br>
Sent via DROID on Verizon Wireless</body>
</html>