<div dir="ltr">See below for comments.<br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 28, 2018 at 4:18 AM, Aivar Annamaa <span dir="ltr"><<a href="mailto:aivar.annamaa@ut.ee" target="_blank">aivar.annamaa@ut.ee</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  

    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>Hi!</p>
    Let's say my students are able to write programs like this:
    <blockquote><tt>name = input("name")<br>
        <br>
        if name == "Pete":<br>
            greeting = "Hi"<br>
        else:<br>
            greeting = "Hello!"<br>
        <br>
        print(f"""<br>
        <html><br>
        <body><br>
        {greeting} {name}!<br>
        </body><br>
        </html><br>
        """)</tt></blockquote>
    <p>I'd like to allow them start writing web-apps without introducing
      functions first (most web-frameworks require functions).</p></div></blockquote><div><br></div><div>input() and print() *are* functions.  And they are not even the simplest possible functions as they require arguments. Since input and print are not normally used that way in web apps, I would use the appropriate functions from a web framework.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
    <p>It occurred to me that it's not hard to create a wrapper, which
      presents this code as a web-app (<tt>input</tt> would be patched
      to look up GET or POST parameters with given name).</p></div></blockquote><div><br></div><div>Python's input() function is something that interactively prompts the user for input, generally asking a question and expecting the user to enter an answer. If you patch it to use a GET or POST, you transform it into something that is no longer interactive, but passively read from some other source. </div><div><br></div><div>Brython (a web-based Python implementation) uses a javascript prompt()  as a hook for Python's input - thus reproducing the intent of the input() function.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
    <p>This approach would allow simple debugging of the code on local
      machine and no extra libraries are required in this phase.<br>
    </p>
    <p>Any opinions on this? </p></div></blockquote><div>My first impression is that wanting to have students write web apps as their introduction to Python is needlessly complicating things for them as it tries to do too much all at once. My preferred approach is based on Pattis's Karel the robot which *starts* with simple functions, requiring no arguments, and build from there.  (See <a href="http://reeborg.ca/reeborg.html">http://reeborg.ca/reeborg.html</a> for an example; tutorial at <a href="http://reeborg.ca/docs/en/">http://reeborg.ca/docs/en/</a>.)</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><p>Has this been tried before? <br></p></div></blockquote><div>Not that I aware of.</div><div><br></div><div>Best of luck,</div><div>André </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><p>
    </p>
    <p>best regards,<br>
      Aivar<br>
    </p>
  </div>

<br>______________________________<wbr>_________________<br>
Edu-sig mailing list<br>
<a href="mailto:Edu-sig@python.org">Edu-sig@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/edu-sig" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/edu-sig</a><br>
<br></blockquote></div><br></div></div>