EuroPython 2012 Tutorial
========================

Time, date and location
-----------------------

This tutorial will take place on Wednesday, 4 July 2012, from 14.30 to
18.30 (2.30pm to 6.30pm) in Training Pizza Margherita.


Installed software
------------------

Participants should bring with them a laptop computer with the
following installed:

1.  The Firefox web browser, with the Firebug add-on.

2.  A programmer's editor, preferably with a JavaScript mode.

3.  A command line JavaScript interpreter.

    * For Linux I suggest Rhino.

         .. code-block:: bash

             $ sudo apt-get install rhino   # Ubuntu

    * For Windows and Mac I suggest JSDB, from
      http://www.jsdb.org/download.html.  It also works on Linux.

4.  This documentation, downloaded from
    `Bitbucket downloads <http://bitbucket.org/thesheep/javascript-for-python-programmers/downloads>`_.

5.  The Python documentation, download from
    `Python docs site <http://docs.python.org/download.html>`_.


Timetable
---------

We start at 14.30 prompt, with software already
installed if possible.

I hope to run seven sessions, each about 30 minutes long.  They'll be
about 20-30 minutes for breaks, as we need then.  I hope each session
will be 15 minutes of me talking followed by 15 minutes of
programming. The topics I'm intending to cover are

1. Demonstration and discussion of the counters example application.

2. JavaScript gotchas.

3. Objects and inheritance, class basics.

4. JavaScript's *this* pseudo-variable (including *call* and *apply*).

We'll certainly have a break here.

5. Closures, modules and memory leaks.

6. Delegation.

7. Review of counters example application.

8. JavaScript and Python objects and classes compared.

We finish at 18.30.


Is this tutorial for me?
------------------------

This tutorial aimed at Python web developers who already know a bit of
JavaScript, and who need to understand JavaScript better.

The tutorial has two related objectives. One is a good understanding
of the counters example.  The other is a good understanding of the
things that make JavaScript so different from Python (apart from
JavaScript being the only language supported by web browsers).

If you're thinking of taking this tutorial take the :doc:`gotcha-quiz`
and read through the :doc:`counters-example`.  If you understand
what's there a bit, and would like to understand it more, then this
tutorial is for you.
