Programming to Connect The Web and Second Life, a Course
This course will be offered free to both to CDS and Cedar Island residents. The course will cover Python programming and LSL (Second Life) scripting with a focus on the development of external (web) applications that interact with Second Life scripted objects. Please IM me if you wish to take part.
The course will continue for ten weeks, meeting once a week beginning 12 April, tentatively on Saturdays at 1 PM SLT. In addition to homework assignments for the first five weeks, students will be expected to implement a web-based application of their own choosing. Some ideas:
1. The course focuses on teaching the basics of programming in the Python environment. In my opinion this is easier to approach than LSL (Second Life) scripting. Once a student has the conceptual background, learning to apply it to LSL scripting will be easier.
2. The course aims to bring students quickly to the point where they can start writing applications for the web, goes from there into scripting SL objects, and then doubles back to cover more difficult topics in web programming.
In order to complete this course you should know how to use the command line interface on your computer (Terminal on OS X, DOS prompt on PCs, Bash shell on Linux) and how to edit files using a text editor. Having some experience with programming of some sort is helpful.
Preliminary syllabus, by week:
1. Using Python as a calculator. Defining functions. How to use doctest to write automated tests.
2. Fundamental control structures: if, for, and while statements. Introduction to lists, tuples, and dictionaries.

3. Object oriented programming. The ADT idea, class definitions, introduction to inheritance.

4. Simple web applications. We will look at MVC object publishing frameworks (we will use CherryPy since it is very easy to get started). Also a quick introduction to CGI.

5. Basic LSL scripting. Controlling position, rotation, texture, and illumination of SL objects. Responding to clicks. Menus.

6. Writing a LSL scripts to get data from and send data to a web application.

7. Processing and generating text. Regular expressions, basic file IO, template engines. (we will use Mako.)

8. More advanced use of built-in data structures. List, tuples, and dictionaries. Introduction to relational database concepts though building a simple relational table using these structures.

9. Databases and object persistence. Practice with simple database queries using SQLite. Introduction to ORMs.

10. Final project workshop and demonstrations.
The Instructor
Jon Seattle (Jonathan Smith) hold a MS in Computer Science from New York University and a MA in Geography from University of Washington. As software architect, he currently heads a software group at Northwestern University devoted to developing web-based teaching and learning and content management applications. His former jobs included: Principal Software Engineer at Cognitive Arts (developing advanced educational systems), Principal Engineer at Avid (developing video and special effects software), Principal Member of Technical Staff at Sprint (international telecommunications). He is the founder of the Cedar Island community in Second Life http://cedar-island.org/ , founder and former Secretary of the CDS New Guild, and one of the people who started the CSDF http://cds-social-democrats.org/ .