This is the P2PU Archive. If you want the current site, go to!

Course list

P2PU has moved to a new home - please go to to see our current courses.

Here's a selection of completed courses previously run on this site:

Course Name Organiser Course Status
Alt Text & Universal DesignHow does a screen reader "read" a website? How do you add captions to web videos? What's Universal Design?Show more details
Go to the course page

We'll review the basics of Web accessibility as they relate to users who are blind and have low vision. We'll test drive screen readers to see what they do well and what really trips them up.

Then we'll dive into creating meaningful image descriptions for people who are blind, including complex images like charts, graphs, tables and illustrations. We'll discuss what makes good alt text, when to leave @alt empty, and when to go way beyond @alt with @longdesc and other methods. There will be lots of opportunity to write and review image descriptions.

We will discuss how people who are blind and visually impaired gather information about the visual world and how this understanding can help you create image description appropriate for the intended audience, whether it's young children, high-school students or marine biologists.

In addition, we'll talk about the ways in which good description practices can do more than satisfy an accessibility-compliance checkbox.  We'll also review lots of free resources available through NCAM, WebAIM and other organizations that will be of help after the course is over.

Finally, we will discuss the future of universal design and image description in light of changes coming to DAISY, ePub and HTML 5, as well as the work of the DIAGRAM Center, which is dedicated to rapidly increasing the availability of high-quality image descriptions through improvements to authoring tools and digital readers.

Bryan Gould
Bryan Gould's picture
AppceleratorHow to create mobile applications with Javascript, Html and CssShow more details
Go to the course page

Overview of Appcelerator
Creating sample apps with Appcelerator

Comeback Kid
Comeback Kid's picture
Beginning Game Development with HTML 5Use Javascript and HTML 5 to make a multiplayer game you can play with your friends in any browser.Show more details
Go to the course page

I have moved this course page to the new P2PU website. If you are interested, please follow me there. Thanks!

Jono Xia
Jono Xia's picture
Beginning Python WebservicesWant to learn about the protocol that runs the web (HTTP) and how to make web services with Python? #webcraft #p2puShow more details
Go to the course page

Python ( is a powerful, high-level programming language that is easy to learn and easy to make highly customizable web-sites and play with web technologies. While for many enterprise-class sites, a complicated stack of technologies and integrated web frameworks may be required to achieve complex goals, using python and WebOb ( -- a basic request/response object -- allows a first-principles approach to understand the HTTP protocol and making a wide variety of web sites in a flexible manner.

The course will center on using python and associated technologies to explore how HTTP and HTML works. Only the basics will be covered, but this should be enough to point newcomers with the predisposition towards making and debugging more complex sites. Students will create web services that include hosting static content, persisting data using the filesystem, middleware, generating dynamic server responses, and using a template language (genshi). The basics of REST and good architecture will be introduced covering the basics of how to view programming and good architectural design.


Course material:

Jeff Hammel
Jeff Hammel's picture
Creating a Firefox ExtensionDiscover resources and collaborate to create a Firefox Sidebar-type extensionShow more details
Go to the course page

A group in the Office of Assessment and Innovation at Washington State University has been experimenting with an idea we called "Harvesting Gradebook" and how it could be use by classes to get feedback from authentic communities.

We've expanded the idea to "Peer Review the Web" a means for learners to solicit feedback on any webpage. We made a couple mockups for a competition (one uses Google Sidewiki), and are offering this course to co-learn about creating extensions and in particular our application.

This course will be structured as a collaborative exploration. How do you learn best? How do you get feedback to advance your learning? Understanding these questions can help you in your learning, it can also help you critique the application we are exploring -- and will be the basis for our learning strategy together.

Key thinker: John Seely Brown. Key reading (give you a flavor of our thinking and who we read) Beyond the University

Nils Peterson
Nils Peterson's picture
Designers Tackling the WebYou're a smokin' designer... but web pages, how do they work? Tackle the Web. Learn basic HTML and CSS #webcraft #p2puShow more details
Go to the course page

Learn the basic steps of how to take gorgeous visual designs and translate them onto the web. The technical details of building a webpage or web application will be covered from HTML, CSS, different image formats, FTP, etc.

We'll peel back the skin and learn how to create the bones of a solid webpage. We'll layer on fat and muscle with web standards. We will reanimate your design, it's alive... alive!

We will cover common gotchas like translating your design into foreign languages, dynamic content, and other issues that great web designers have to understand when creating mockups and page designs.

Austin King
Austin King's picture
Designing For CommunitiesDesign Thinking When Designing Online CommunitiesShow more details
Go to the course page

Are you a Web developper, a Business man, a Designer, a Project Manager and are currently working on an Online Community? Are you building/thinking people's interactions, understanding what to do when users are misbehaving and need advice and guidelines?

This course is for you. It will help you adopt some basic design thinking to help you understand the structure of a community, the basic interactions between people, and the dynamic and tips for how to increase length of stay and other activities that could help sustain the community.

We will cover the basic understanding of communities using metaphors with the real world and offline communities. Draw some conclusions, prepare a set of questions to ask ourselves before building an online community. Setting people's goals, rewards and motivation. Setting business goals clearly. Setting branding goals. 

You will walk out of this course with a guide you will have built yourself that will help you doing a great job.

celine semaan vernon
celine semaan vernon's picture
Dive into PythonThis course closely follows Mark Pilgrim's "Dive into Python" book, and is designed for experienced programmers. Show more details
Go to the course page

This course is based on the book Dive into Python by Mark Pilgrim and is freely available.  You can either choose to download the .zip file containing the .pdf and associated files, or you can read the book online.  Please note for non-native speakers of English that the book may have been translated into your native language.  

Dive into Python is meeting on the forums only.  

M. Volz
M. Volz's picture
Django & Javascript for subtitling videoWant to improve your knowledge of Django and JavaScript on Universal Subtitles, an open source project to subtitle the world's videos? Show more details
Go to the course page

This course offers web developers an opportunity to improve their knowledge of web development in Django and JavaScript, by participating in a non-profit, free and open source project that's creating a space for collaboratively subtitling the world's videos: Universal Subtitles

Participants will be stepping into the middle of a development process with a 6 person team that's building: 1) a Django community site for collaboratively subtitling video and 2) a javascript widget for adding subtitles and translations to videos, based on Google Closure.   

You will work with us to choose tickets that offer the right level of challenge and/or require knowledge you'd like to acquire.  We can offer you pointers as you take on these tickets (e.g. links to resources, keywords to google, or an outline of how we'd approach the problem) and you can accompany your commits through our QA process and release to the production site.

The successful work you do in this course will benefit a non-profit free software project working to break down language barriers and make the internet more open and accessible.  The site is already home to hundreds of translations and thousands of submitted videos seeking translation, it's maintained by the non-profit Participatory Culture Foundation, and all code is available under an AGPL free software license.

Course meeting will take place asynchronously on a google group, to be created when we have a group of successful applicants, and on our main development list.

Holmes Wilson
Holmes Wilson's picture
Drupal Social Web ApplicationLearn to use Drupal to build a social web app that lets users collaborate on projects and ideas. #webcraft #p2puShow more details
Go to the course page

A thread about Open Hippel was started on back in April 2010 -

Course summary also on

Open Hippel is basically a Social Web App that allows anyone to form groups around their interests. It'll have tools to help people make decisions as a group, set criteria and milestones, and also have personal profile and history so people with skills can be connected with people needed those skills.

So far, TEDxTokyo Innovators Hub and K. International School are two of our biggest supporters, and Keio University had made it an official school project, which means students can be credited for working on it!

My plan is to open the development of this Open Hippel platform up as a course. We'll have hands on development classes, (we need some Drupal gurus from Acquia to help out on this!) The course work will be documented and with the help of Keio students, translated into Japanese. By the end of the course, the whole "book" will be available online under CC license.

In learning, it is far better to have a project that is real and has impact on the real world! Just like Stanford's project on Extreme Affordability products, students are far more engaged when they're working on real world projects. I think Open Hippel can similarly be that engaging project at P2PU.

Nicholas Wang
Nicholas Wang's picture
Embed External Content In P2PU PagesThis is just a course to demonstrate embedding of content within P2PU course pages.Show more details
Go to the course page

Please see the Course Documents for examples of embedding various external content within P2PU course pages.

There is no registration, signup task or syllabus for this course as it is just a demonstrion.

However, feel free to add comments to this page or contact me using my contact form if you have questions or feedback.

This feature should be available to course organizers and admins.

Dan Diebolt
Dan Diebolt's picture
Experiencias web con html5No construyas aplicaciones web , crea experiencias web con html5Show more details
Go to the course page

fuerza HTML

material course (works,lectures and code demos)released under CC. : )

go inside html5  pass: p2pu (only in spanish).

La nueva generación de navegadores web  trae consigo una gran cantidad de nuevas características que abre las posibilidades del desarrollador y diseñador web. Nuevas propiedades para nuestras hojas de estilos, transiciones css, audio, video , relocalización, sockets , las extraordinarias bases de datos locales,  los nuevos motores de javascript, y posibilidades ilimitadas en cuanto a gráficos en nuestro navegador; cambiaran la forma en que interactuamos con la web.

En la época en que vivimos sin  limitaciones de ancho de banda y recursos físicos, el front-end de nuestra aplicación a mi parecer y dependiendo el enfoque de nuestra aplicación (para los escépticos), es tan importante como un gran back-end, es decir, las aplicaciones que tanto usamos actualmente tienen una lógica de presentación tan compleja que hace gran parte de la magia.

Encaminémonos en este mundo tan interesante donde tendré el honor de guiar a personas enfocadas y con animo de aprender e investigar en nuevas tecnologías para nuestro bien y el de nuestra sociedad.

dany bautista
dany bautista's picture
From GIMP to xHTML and CSSCreate a website in xHTML and css: make a design in GIMP, slice it, code it.Show more details
Go to the course page


A. Create a rough sketch of the design

B. Page layout and color scheme

C. Creating the design 

D. Slicing the design

E. Coding the webpage

Planning (subject to change)

Day 1: creating the assets (youtube videos 1 - 6, see Course Material)
Day 2: creating the design (youtube videos 7-12, Course Material)
Day 3: coding the design: structuring it
Day 4: coding the design: styling it - without the images
Day 5: styling it: applying the images to the design
Day 6: Using Web fonts from the Fontsquirrel library
Day 7: Answering questions and Course Review

Wouter Cox
Wouter Cox's picture
HTML & CSS from the beginning.Not quite sure how to make HTML & CSS work like you want it to? Fix that with this course.Show more details
Go to the course page

Brand new to HTML & CSS and can't quite get it do what you want it to? This course will help you change that.

We'll start at the very beginning, covering the important things you need to know before you dive deeper into the wholesome world of crafting beautiful web pages.

Please note that the course is currently full for May 2011. If you would like to join the September 2011 intake add your name to the waiting list > 

Jamie Curle
Jamie Curle's picture
HTML5Is HTML5 more than "just HTML" and can I actually use it to create a website today? #webcraft #p2puShow more details
Go to the course page

As reporters, analysts and programmers the participants will take part in the ongoing "HTML5 Browser Tournament" and create a report (website) on the state of HTML5 implementation at the time of Fall 2010.
During the week they will work on research and implementation of HTML5 features in different browsers. At the end of each week the team gathers together, using Skype or Tokbox, for a final review of results and achievements and a kick-off for the next assignement.
While working on their assignments they use agreed upon communication tools (e.g. email, mailing list, website, ...) to exchange status, to help each other on problems and share experiences. A central and open repository will contain the code that will be developed (github).

Themes we plan to cover:

  • Some history, facts and introduction to HTML(5)
  • New and deprecated elements and attributes
  • Forms
  • User Interaction and Web Applications
  • Audio and Video
  • Related specifications (Geolocation, Communication and Storage)

We therefore will use technologies like HTML (of course!), CSS3, SVG and JavaScript.

Dennis Riedel
Dennis Riedel's picture
Interactive Open Video with PopcornJoin hackers and filmmakers in re-inventing video on the web - more details
Go to the course page

Whether you're a developer, a video blogger, or a frequent visitor to YouTube, open video is a compelling new technology.

This course helps you break into the WebMadeMovies and Popcorn.js projects.

  • Share your own videos with new depth and context
  • Join PBS, Rebellious Pixels, and high school media labs, who use Popcorn.js to make videos interactive
  • Learn about cutting-edge uses of the HTML5 <video> tag, such as chroma key and object tracking -
Nick Doiron
Nick Doiron's picture
Intro to Design and UsabilityWhy is web design important? What is Usability and what does it mean to my site design?Show more details
Go to the course page
This is a basic introduction to usability and design fundamentals for absolute beginners. Designing for the web is all about presenting your content so it works best within a relatively fixed environment, such as an HTML/CSS document, and usability is all about making it work well for users who have fairly fixed expectations of how to navigate a website, so they enjoy using your site and stay to use your content.

The goal of this course is to get you thinking about design from the point of view of the audience, not the designer, and not the client. The focus of this class will be on understanding design and introductory usability concepts for people who already have some very basic HTML skills. We will look at what constitutes typical user behavior; eye tracking and how designing to typical behavior means certain layouts are more usable; why contrast, text sizes, type styles, choice of graphic elements, and color choice are important; and a basic overview of what user experience is and why it's important for any page. We will also cover what copyright means to you as a designer and where to get images and content legally, as well as looking at freely available online tools.

We will be using the publicly available work of Vincent Flanders and Jakob Neilsen as our main resources.

Copyright vs. creative commons resources:

B. Maura Townsend
B. Maura Townsend's picture
Introduction to Contributing to LernantaLearn how to contribute to the open source project that powers the new #P2PU. #opensource #python #djangoShow more details
Go to the course page

This is an introduction to contributing to the open source platform that P2PU runs on: Lernanta. Lernanta is based on (also referred to as a fork of) Mozilla's Batucada project and is a Python/Django web application whose code is on GitHub.

We'll walk through the whole process together from getting the code, running it locally, finding a bug to fix, fixing the bug, and contributing the fix to the Lernanta project.

This activity will be occuring on the new P2PU site:

Please sign up or follow there!

Jessica Ledbetter
Jessica Ledbetter's picture
Introduction to DrupalThis is a pilot test of a Self-study Course: Introduction to Drupal. Admissions are closed for the testing phase.Show more details
Go to the course page

Summary: Free 6 week self-study course to learn about Drupal. Week- by-week emails to help motivate you and organize your learning experience. Think of it as a book-club for free learning materials about Drupal.


Funding of the development of this course is provided by Acquia to faciliate learning in the Drupal community. This course is part of P2PU's School of Webcraft organized by the Mozilla Drumbeat: Web Enabled are supporting this course by providing an easy to use learning sandbox in their hosting environment. Numerous Drupal community members have created the open education resources which will be used in this course, they will be credited in the respective lessons.

What is this course about?

Problem: What is Drupal? What can it do? Drupal is peculiar, the features which make it powerful and different from other systems, also make it difficult to grasp. There are excellent resources out there, but a novice user can get google-itis from searching through material which isn’t at the right level, shows out dated practices, or is not up to date. This course will be a self-study introduction to take people on a rolling basis through the course.

How it works: Each week, you login to the site which contains 2-3 hours of selected self-study videos, tutorials and materials to work through. You will also get access to a recorded webinar* discuss the materials. Login to to discuss each weeks materials with fellow students. Acquia partner Web Enabled are offering a push-button hosting environment as an option for new users to learn on and try out some advanced features of Drupal.

* The first time it is run, a LIVE webinar is held so guest guides can answer learner questions- “What kinds of problems and questions did they find?” to talk about that weeks learning materials. These are recorded, and when students work through the course later, they watch the recorded webinars.

Each week:

  • Mondays: Students receive weekly email
  • Wednesdays: Pilot course: participate in live online session (in future,Watch recorded session)
  • Pilot course live session times: 9 AM PST/ 10 AM MT/ 11 CT / 12 EST. Information sent via email.
  • During the week:
    • Do learning activities (for example, watch a Dojo session, or other video, complete activities)
    • Participate in online discussion
Heather James
Heather James's picture
Introduction to PHPAre you ready to take the leap from static pages to dynamic content generation?Show more details
Go to the course page
"If you threw a dart at a wall filled with the top websites from around the world, chances are excellent you'd hit one using PHP."

This is a quote from a favorite XtraNormal video of mine. And, although I think many would find large chunks of the video to be objectionable, the statement above rings largely true. PHP tends to get picked on from time to time (Ruby on Rails, I'm looking at you), but for all the negative press, PHP has proven itself time and time again for the greater part of the last decade. PHP developers are widely sought after, and some knowledge of PHP is nowdays an essential tool for any aspiring web developer.

This course is about programming in PHP. It's about exploring PHP's strengths and its flaws. It's about why PHP has remained remarkably resilient, while many web application frameworks have come and gone in the time it's taken PHP to become and remain a major web scripting language. It's about learning to leverage the tool that is the PHP language, so that you build the website you've been dreaming about.

Topics Covered:  PHP Programming Fundamentals, Dynamic Webpage Content Generation, Best Practices for PHP Server Programming

Target Skills: 1) design and implementation of simple dynamic webpages using PHP, 2) utilization basic PHP programming structures, 3) basic tenets of good PHP application design, and 4) the basic components of PHP web security

Course Timeframe: 1) January 26 - April 6 (10 Weeks), 2) 1 one-hour weekly meeting (chat-based) (exact time TBD, based on participant and coordinator availability) 3) the one-hour weekly meeting may or may not include small group assignments (voice conference chat, Skype, when available) (If you do not have a mic or high speed internet connection, do not worry!  Your small group will accommodate you!) 4) approximately 1-2 hours of readings and programming assignments scheduled per week

Signup Period
: January 8 - January 22 at 1:00 PM Hawaii Standard Time.  I will close the course to new signups at that time.  Selected participants will be notified by 1:00 PM HST January 23.

Matthew Buscemi
Matthew Buscemi's picture
Introduction to Ruby and RailsLooking for a web framework that's optimized for programmer happiness and sustainable productivity? Learn Ruby and Rails! #webcraft #p2puShow more details
Go to the course page

Ruby is a fascinating object-oriented language suited for many purposes.  Rails is a popular web framework for Ruby.

This course will introduce the Ruby programming language, focusing on those features and concepts that will be important when developing web-based, database-backed Rails applications.

Course participants will learn with freely available web resources and by completing small assignments.  Participants will also create a simple web application individually or in small groups.

Because this course will cover a lot of ground, it will be completed over 10 weeks.

Andy Lindeman
Andy Lindeman's picture
Javascript 1-2-3Qué puedo y qué no puedo lograr con #javascript en la web de hoy. Qué debería saber y qué sería mejor no hacer. #webcraft #mozillaShow more details
Go to the course page

ECMAScript (más conocido como Javascript) es el lenguaje de programación interpretado de manera nativa por los navegadores de Internet (browsers) y se ha convertido en un elemento indispensable del desarrollo de sitios web. En este curso aprenderemos las bases, la sintaxis y las principales construcciones del lenguaje, su interacción con la ventana del navegador y con el documento HTML, o más específicamente, con el Modelo de Objeto del Documento (Document Object Model o simplemente DOM). Esto constituirá la base para avanzar posteriormente a las complicaciones adicionales que introduce su empleo para hacer actualizaciones asíncronas de las páginas web (lo que también se conoce comúnmente como AJAX).

David Suárez
David Suárez's picture
Javascript 101***THIS COURSE IS NOW RUNNING ON more details
Go to the course page

The basic process of learning and participation will be as follows:
1. Watch a video and study materials explaining certain Javascript concepts.
2. Reflect on what you learned and record your notes/reflections. If you have the time read the notes and reflections of other participants and engage them in a technical conversation.
3. Homework which may be a quiz and/or small programming assignments.
4. Upload programming assignments to your site.
5. Write posts to describe how you approached the assignment, what doubts you had while doing the assignment, and anything related to the assignment.
6. In this entire process of you have any questions, technical, or otherwise, please post them on the forum.
7. Along with asking questions, please also try and answer other participant's question whenever you can. Remember teaching is a great way to learn.


Maya Incaand
Maya Incaand's picture
Javascript: 101This course will cover basic concepts of Javascript programming and the DOM (document object model)Show more details
Go to the course page

Update: We have created a course website to organize this course over the next 6 weeks.

Javascript began as a language to program web pages, but now it has become much more than that. There are server side frameworks for creating entire applications in Javascript, and testing frameworks which allow us to write scripts in Javascripts, and the original intent of creating dynamic web pages with Javascript as well.

The course content will consist of a series of video talks delivered by Douglas Crockford on Javascript programming. I have orgamized these videos in the form of a course on this website.

The basic process of learning and participation will be as follows:
1. Watch a video which explains certain Javascript concepts
2. Reflect on what you learned and blog your notes/reflections. If you have the time read the blog post of one or more other participants and engage them in a technical conversation.
3. Do the homework which may be a quiz and/or a small programming assignment
4. Upload the programming assignment to any open source repository
5. Write a blog post to describe how you approached the assignment, what doubts you had while doing the assignment, and anything related to the assignment.
6. In this entire process of you have any questions, technical, or otherwise, please post them on th forum
7. Along with asking questions, please also try and answer other participant's question whenever you can. Remember teaching is a great way to learn.

The blog posts and assignments uploaded on open source repositories will become your "proof of learning".

Course Schedule:

Week 1:

Week 2

Week 3

Week 4

Week 5

Week 6

  • Backlog and recap
Parag Shah
Parag Shah's picture
jQuery - The fundamentalsA beginners course on jQuery, with a look at AJAX and plugin development.Show more details
Go to the course page

This course has been recreated at the new P2PU site


You will be able to follow this group.

jQuery is fast becoming a must-have skill for front-end developers and for those who have decided to learn the language but have found the jargon to confusing....then this course is for you. The purpose of this course is to provide an overview of the jQuery library and to explain the fundamentals in an easy and understandable way possible. And to offer real world projects to get your teeth stuck into.

When you're done with the course, you should be able to complete basic tasks using jQuery, and have a solid basis from which to continue your learning.The best way to learn is by doing, so this course will be very much hands on.

We are going to be following along with Rebecca Murphy's jQuery Fundamentals online book and using the offline learning kit supplied by Addy Osmani. And in edition i will be using my own tutorials and towards the end of the course we will be visiting some of my favourite tutorials, which will be fun and should snap everything into place. I will say that even though i know jQuery, i am no way an expert so i will also be learning as we go.

neil pearce
neil pearce's picture
jQuery ~ For the Love of DollarIntermediate Level Course Covering jQuery API, Open Source Tools and jQuery Community ResourcesShow more details
Go to the course page

jQuery is a cross-browser JavaScript library that simplifies client-side scripting of HTML (HyperText Markup Language) pages using CSS (Cascading Style Sheets) based selectors to select, style and manipulate page elements. jQuery additionally offers superb support for DOM traversal, event handling, visual effects, animation, AJAX (Asynchronous JavaScript and XML) and much more. With a vibrant community for support, jQuery also has an enormous plugin repository for added functionality and a fantastic user interface library of widgets which can be simply inserted into your web page and easily configured.

This course will use Rebecca Murphey's open source ebook "jQuery Fundamentals" [1] and Ben Nadel's video series entitled "An Intensive Exploration of jQuery" [2] as our primary learning resources. For examples, demos and assignments we will use collaborative tools such as jsfiddle [3] and FireFox browser add-ons such as FireBug [4] and FireBug extensions [5]. Rather than extensively covering every aspect of the jQuery API and plugins, the course will have a emphasis on learning jQuery in a participatory environment using jQuery community resources and free tools such as jsfiddle and FireBug. Although the majority of the course communications will take place through group email, we will attempt to use a conferencing tool such as TalkShoe [6] (participate via dial in or client software) to hold a few live conferences. 

[1] jQuery Fundamentals by Rebecca Murphey

[2] An Intensive Exploration Of jQuery by Ben Nadel

[3] jsFiddle by Piotr Zalewa

[4] FireBug by Joe Hewitt et al

[5] Firebug Extensions

[6] TalkShoe

Dan Diebolt
Dan Diebolt's picture
Learn Python the Hard WayThis course closely follows Zed Shaw's "Learn Python the Hard Way" book, and is designed for new or inexperienced programmers. Show more details
Go to the course page

This course is an introduction to programming for the complete beginner.  If you already can code in another language, this course will probably drive you insane, because it is extremely basic.  The text for the course is Learn Python the Hard Way by Zed Shaw and is available for download for free.

This course will be primarily meeting on the forums.  After joining the course you will be added to the group.  Then you will be able to post messages to the group either by going to the group link and posting to the forums, or by e-mail.

M. Volz
M. Volz's picture
Learning Web UI AutomationLearn how to automate web applications by driving real browsersShow more details
Go to the course page

This course will give a good grounding on using the Selenium Web Application Testing Framework. Selenium is a popular tool used by the top web companies like Google, Mozilla, Microsoft and many more.

By the end of the course, participants will have the confidence to automate most web applications. This will then give you the confidence that your application works as it is intended.

David Burns
David Burns's picture
MediaWiki appropiationHow to use, install and customize MediaWiki for nice open knowledge projects Show more details
Go to the course page

This course is for MediaWiki beginners, planned for acquiring different essential skills around the tool: editing, installing, administrating and customizing it. Each part is designed to address a topic and increases in complexity, from edition basics and tricks to having one wiki ready for your own collaborative purposes.

So be ready to navigate through some practical instructions (mainly video resources, but also some detailed HowTos), to get your hands dirty editing wikis and, specially, to upload stuff and check URLs (and then all over again) until your wiki looks and works as you want it to.

The course is basically asynchronous, except for a couple of weekly office hours. The process will be based on weekly discussions, then activity, then wrapping up. Participants are expected to work in the course related tasks around 3-5 hours minimum per week on average.

There will be an activity goal for every week, with a previous discussion about it and about the resources/knowledge needed. Before going to the next activity we should evaluate outputs together and troubleshooting if needed. Note that after the second week activities will take place mainly at each participant's MediaWiki installation.

:: Week #1
General info about the tool (example of Wikipedia and other potential uses): What's MediaWiki? What's a wiki by the way? What's the connection with Wikipedia? Other examples? > Activity: benchmarking wikis

:: Week #2
Editing MediaWiki (basic stuff but also some advanced things): How does it work? Which are its basic features? How to use HTML there? What can be done with it? What not? > Activity: MediaWiki editing

:: Week #3
Installing MediaWiki and basic features (design): How to install MediaWiki? Which are the basic admin features and privileges? How to change design and CSS? > Activity: installing and basic customization

:: Week #4
Extensions (exploring basic ones and some on demand): What's an extension? Which interesting ones are out there? How to install and customize them? > Activity: adding extensions

:: Week #5
Semantic MediaWiki (general info and creating a basic form): What's semantic MediaWiki? Which are its basic features? How to create a basic form? > Activity: semantic installing and form creation

:: Week #6
Wraping up and IAQ: How do we communicate around a wiki? How do we connect it with Social Media? What to do in case of vandalism? > Activity: polishing our wiki and final questions

For all this activities each participant will be involved into testing and/or checking some other participant's activity, and in some occasions reporting to the group (while all of them should report to the course facilitator when needed). So the whole process of peer-to-peer learning here depends on each participant doing a minimum activity for creating their stuff (writing, uploading, modifying code) plus paying attention to some other person activity (checking what he does, or being its beta tester).

Enric Senabre Hid...
Enric Senabre Hidalgo's picture
Old Page more details Maya Incaand
Maya Incaand's picture
Online Maps with OpenLayersHow do free and open maps compete with companies such as Google? Make maps and design geo-mashups with HTML and JavaScript.Show more details
Go to the course page

Online maps are a rapidly growing technology.  The unique connection of maps to real world information has given open and crowdsourced maps some advantages over even the best-funded companies.

A Map Making and Programming Class

Course participants will add part of their community to the global OpenStreetMap, learn the basics of creating interactive online maps with OpenLayers, then research and design their final application.


*, a free and open "Wikipedia of maps," has time and time again proven the usefulness of open data.  In early 2010, responders to the Haiti earthquake turned to OpenStreetMap for the most detailed and up-to-date maps.

*, a free and open source JavaScript library, will be used to explore the basics of adding maps to web pages.  This experience gives you the know-how to use map APIs from Google, ESRI, Microsoft, or CloudMade (these alternatives will be part of a group discussion)

* Applications of maps, including open source solutions for business, disaster response, open government, and the environment, will be discussed.   Participants choose a research topic.

* A final 'interest project', chosen by the participant, will be a web map which displays real-world data and produces an informative, interactive, artistic, and/or persuasive online experience.

Nick Doiron
Nick Doiron's picture
PHP to objects and beyondDo you know what $this->means(); ?> Would you like to know more about it?Show more details
Go to the course page

Object-oriented revolution caught up with PHP long time ago. With more and more code produced that way, you need to jump the OO wagon as soon as possible.

This course will provide the basics of object-oriented programming in PHP and dive right in techniques and design patterns.

Design patterns that will be covered are:

  • Observer, NULL object (behavioral)
  • Singleton, Factory, Builder (creational)
  • Adapter, Decorator, Facade (structural)
Luka Muzinic
Luka Muzinic's picture
Programando web con PHP¿Te animas a empezar a programar con el lenguaje más popular en la web? aprendamos juntos #PHPShow more details
Go to the course page

PHP es hoy el más popular de los lenguajes de programación en la web, fácil de aprender y altamente productivo, lo que lo ha convertido en la base de miles de sitios masivos en Internet - por ejemplo Wikipedia, Facebook - y decenas de proyectos de software libre programados en PHP, como Wordpress, Moodle, Drupal, Mediawiki, Joomla,

World wide web. Arquitectura cliente-servidor. Páginas estáticas y dinámicas.
Instalación de entornos de programación y prueba. Programación web: HTML y su interacción con PHP.
Sintaxis del lenguaje. Variables y funciones.
Tipos de datos. Estructuras de control. Arrays.
Acceso a bases de datos. Aplicaciones web.
Programación Orientada a Objetos en PHP: Clases. Atributos. Métodos.

Martin Olivera
Martin Olivera's picture
Programming Visual MediaCan you learn to code the same way you learned to paint? Intro to programming, studio-style. #p2pu #webcraftShow more details
Go to the course page
Can you learn the fundamentals of programming with art, fun, and games? We'll show you how using Processing.js, an open-Web version of the Processing visually-oriented programming language.  This P2P introduction to programming is designed as a series of programming projects, each of which will be shared, discussed, and critiqued as part of the class. By the end of this class, you'll build an interactive game of your own design, and add it to a growing portfolio exhibiting your webcraft. 

What does a visually-oriented introduction to programming look like on the real-time web? We'll be working with Studio Sketchpad, a website that builds on the Processing.js open programming language for creating animations and interactions for the open web, and the Etherpad collaborative text editor allowing people to work together online in "really real-time". 
This class is highly collaborative, so we strongly encourage you to take this course with a friend or two. 
Ari Bader-Natal
Ari Bader-Natal's picture
Reading CodeGet comfortable reading other peoples' code, from big open source projects to small standalone apps. #p2pu #webcraftShow more details
Go to the course page

In the Open Web world, we are often working with other peoples' code. Reading code helps to us to appreciate that there's no magic black box around "other peoples' code"; that it all comes down to logic; that every program has errors; and that sometimes reading the code is the best documentation.

This course will remind us that there is no magic-- only logic. We will dive into the mini universes of open source projects and learn techniques for getting oriented in projects large and small, debugging, stack traces, and simply getting comfortable reading code.

Each week we will plan to cover one open source project. During the week, participants will read specific code sections on their own, and there will be an ongoing chat room, (possibly with people signing up to be present during specific hours) to support discussions and questions outside of class time. Coursework will involve contributing to the public online documentation for each of these projects.   

We will try to cover a variety of project types and languages (javascript, php, python, ruby), and for each project and/or language, information about tools for reading, debugging or understanding the relevant "stack" will be introduced. 

During the weekly course meetings, a different person will lead each session and together we will go over the section of code assigned for that week, discussing our understanding of what is happening, techniques employed, and areas we found difficult to understand. At the end of the in-virtual-person session, the next week's subject matter will be introduced.

Initial list of proposed projects (balancing languages, familiar/popular frameworks, newness (older and cruftier or well developed vs new code))-- this list will be refined with course participants based on experience and interest as appropriate:

  • Drupal or wordpress (php)
  • Django or tornado (python)
  • Jquery, NodeJS or Protovis (javascript)
  • Mongodb (c++) or one of the mongodb language drivers (ruby/python)
  • Need a Rails project
  • Erlang? Haskel?
  • Browser extension firefox s3:// extension (ec2/s3)

Language/framework inspection and debugging tools

  • Print statements
  • Firebug/Chrome developer tools (javascript)
  • strace
  • server log files
  • ... more here (add your suggestions!)

What you can Expect to Learn

  • Code Reading comprehension
  • Exposure to different languages
  • Debugging tools for different environments and languages

What you Might Learn if you Work Hard

  • You might end up submitting a patch if you come across bugs or have ideas for enhancements

Thing we won't Cover

  • Writing code

  • Installation and configuration of these tools, although it will probably be helpful to have them installed (to tweak/explore/break them!), and there will be indirect/informal support via the chat room for doing this.

Jessy Cowan-Sharp
Jessy Cowan-Sharp's picture
Scripting 101Web Monkeys or command line junkies, join, learn to hack and make a better world! #webcraft #p2puShow more details
Go to the course page

The KISS Principle of "Keep it Simple, Stupid", is the main intention of the whole scripting world. You could be Web Monkeys or command line junkies, scripting is the most important ingredient.

The below is just an outline of the course, which would be covering the major CLI based scripting side of shell, perl, ruby and python

  • Why scripting ?
  • Getting Started.
  • The Variables.
  • Conditionals Execution.
  • The Loops.
  • Redirections.
  • Pipes and Filters.
  • Traps.
  • Functions.
  • Interactive Scripts.

What types of things will the scripts be doing?

Everything from simple automation to heavy data crunching, depending on the class, it could start with basics and then go for advance levels say like GUI with scripts. If all in an intermediate level, basics can be skipped.

How will knowing these skills make someone a better web developer?

As a web developer it's always better for anyone to know how to deploy his app on an engine, there are many web programming languages available, consider the booming once like Ruby on Rails and Django, if would be easier and more better if the user who is interested to work on those, if he knows the fundamentals of the Ruby or Python or in fact PHP for that matter.
When it comes to automation and quick and dirty jobs, simple scripts have proven to be very powerful.

About the command line :

Yes undoubtedly let it be a MAC user [ after all it's base is Free BSD ] CLI makes things easier but how might be the question, lets take a simple example of regularly updating a git repo and backing up in there server on the common tasks, which can be a piece of cake on the CLI.

hemanth hm
hemanth hm's picture
User Experience Design | ENG PT ESPHow to improve human-computer interaction and accessibility using UX and Interaction design principles?Show more details
Go to the course page


[EN] Welcome to User Experience Design! This course will be run in English, Portuguese and Spanish simultaneously. Please read the "Sign-up Task" for more information about the selection process.
[PT] Bem-vindo a Design de Experiência de Usuário! Este curso será realizado em inglês, português e espanhol simultaneamente. Por favor leia a Tarefa de inscrição para maiores informações sobre o processo seletivo.
[ES] Bienvenidos al Diseño de Experiencia de Usuario! Este curso se llevará a cabo en Inglés, portugués y español simultáneamente. Por favor, lea la "Sign-up task" para obtener más información sobre el proceso de selección.


[EN] This course is focused on exploring basic concepts and definitions of User Experience & Interaction design. Discussions and reading recommendations, together with analytical and practical activities will be used as a methodology. Due to the intrinsic multidisciplinary characteristic of the Design field, all kinds of professionals and students are welcomed. Also, as a recommendation of this semester's Webcraft program, some Accessibility concepts will be discussed.

[PT] Este curso se orienta a explorar conceitos e definições básicas acerca de Design de Experiência de Usuário e Interação. Discussões e recomendações de leitura, junto a atividades analíticas e práticas serão usadas como metodologia. Devido a característica multidisciplinar intrínseca ao Design, todos os profissionais e estudantes são bem-vindos. Também, por recomendação do programa deste semestre da escola de Webcraft, alguns conceitos de Acessibilidade serão discutidos.

[ES] Este curso se orienta a explorar los conceptos básicos y definiciones del diseño de Experiencia de Usuario y de Interacción. Como metodología de aprendizaje se llevarán a cabo debates y recomendaciones de material de lectura, junto a actividades prácticas y analíticas. Debido al carácter multidisciplinar intrínseco del campo de Diseño, son bienvenidos todos los profesionales y estudiantes. A su vez, como recomendación del programa Webcraft de este semestre, se discutirán algunos conceptos de Accesibilidad.

João Menezes
João Menezes's picture
UX: Design para a EducaçãoQueres aprender a desenvolver ambientes de experiência de usuário a serem aplicados a vários sistemas? #webcraft #p2puShow more details
Go to the course page

O design instrucional é um campo de estudo que está diretamente relacionado às ciências cognitivas e comportamentais. O principal objetivo é maximizar a experiência de ensino-aprendizagem em ambientes especiais. Este curso tem foco em AVAs (ambientes virtuais de aprendizagem). Muitos dos AVAs que temos hoje são apenas sistemas de armazenamento de arquivos ou listas de discussão. Nossa missão então é desenvolver interfaces, baseadas em conceitos de Ergonomia e Estética, que são fáceis de usar, visualmente atrativas e que motivam os usuários (não apenas estudantes, mas professores também) a participar de uma maneira ativa, e não passiva.

O curso inicia com uma introdução do Infodesign, Design focado no ser humano e Princípios de Gestalt e Cognitivismo, para que cada solução proposta possa ter bases comprovadas.

Antes de efetivamente propor soluções para diferentes cenários de aprendizagem, alguns exercícios baseados em Personas serão feitos, para que o designer possa se colocar no lugar do usuário.

Depois de conhecer o público-alvo, exercícios em grupo acontecerão ao redor de algumas questões específicas: como o design instrucional pode fazer com que a interação entre alunos, professores e colegas lembre aquela que eles tem em metodologias convencionais? Como os princípios básicos da Gestalt e ciências cognitivas podem formar caminhos mais fáceis? Como trabalhar com padrões abertos de internet e acessibilidade? Como explorar conteúdo multimídia?

O curso termina com conceitos livres transformados em mock-ups ou protótipos, que são analizados rigorosamente por ferramentas de design thinking.

O estudante que frequentar este curso poderá desenvolver ambientes de experiência de usuário a serem aplicados a vários sistemas.

João Menezes
João Menezes's picture
UX: Designing for EducationHow to develop user experience designs that can be applied to various systems? #webcraft #p2puShow more details
Go to the course page

Instructional Design is a field of study that's directly related to cognitive and behavioral sciences. Its main objective is to maximize the experience of teaching and learning on special environments. This course is focused on VLE (Virtual Learning Environments). Many of the VLEs we have today are just file storage systems or discussion boards. Our mission then is to build interfaces, based on Ergonomics and Aesthetics concepts, that are easy to use, visually attractive and that motivate the users (not only students, but teachers as well) to participate on an active manner, not a passive one.

The course starts with an introduction to Infodesign, Human-centered design and Gestalt and Cognitive principles, so that every solution proposed can be coherently reasoned.

Before effectively proposing solutions to different learning scenarios, some "Personas-based" exercises will be done, so that the Designer can put him/herself into the role of the user.

After knowing the target audience, group exercises will happen around some specific questions: how can Instructional Design make the level of interaction among students, teachers and classmates to resemble the one they have when on conventional teaching methodologies? How can the basic principles of Gestalt and Cognitive sciences build the easiest path to things? How to work with open web standards and accessibility? How to explore multimedia content?

The course ends with rough concepts made into mock-up or prototypes, that are thoroughly analyzed via multi design thinking tools.

The student that attends this course will be able to develop user experience designs to be applied to various systems.

João Menezes
João Menezes's picture
Web 200: Anatomy of a RequestWhat happens when you click go in the browser? Find out in "Web 200: Anatomy of a Request" at #p2pu. more details
Go to the course page

In this six week course we'll do a deep dive into what happens when you click go in your browser. That's the entire focus of the course. Participants will be given reading assignments and videos to watch in advance of weekly synchronous meetings. In the meetings we'll answer questions and discuss the way things work.

The most fundamental concept in this course is that the web is abstracted into layers, we're going to learn how and why.

John Britton
John Britton's picture
Web AccessibilityMaximize your audience through inclusion and non-discrimination by using accessible design. #webcraft #p2puShow more details
Go to the course page

You will become aware of the top ten barriers in websites and how to recognize and avoid them. You will learn that accessibility reaches beyond blind people as there are many aspects of disabilities and perspectives to keep in mind. Checklists and add-ons help, but you will also get some first-hand insights in using (open source) screen reader software, and above all, to care about the people. Because beyond checklists you're touching their lives.

I'm planning to hold a weekly one hour telephone conference & chat via Skype for initial short presentations and discussion. We can exchange ideas and discuss assignments on the Wiki.

Martin Kliehm
Martin Kliehm's picture
Web Browser Extension Dev.Would you like to know how to develop a web browser extension?Show more details
Go to the course page

They will learn how to build packages (web browsers) from source. Participants will be involved in various project, such as UI enhancement and protocol integration. In addition, as part of their work, they will individually create an extension or work on existing issues/bugs. Although participants can use their choice browsers, explanations and practical examples will be based on the Mozilla Framework.

What you can expect to learn

To mention a few, there include the followings.

  • Building blocks of a web browser
  • Technologies, tools and available supports for extension development
  • Applications using the Mozilla Framework
  • Using XUL to extend the Firefox browser UI.
  • Performance and Security Best Practices
  • Setting up extension development environment

micadeyeye's picture
Web Design 101: Study GroupHow are webpages made? Work with other to learn how to create your own. #webcraft #p2pu #html #learning #drumbeatShow more details
Go to the course page

This community is working together to explore core principles of developing standards compliant web pages. By following the readings and working on recommended activities you'll begin to  learn how to define your page structure and content in the Hypertext Markup Language (HTML) and how to add style to your page using Cascading Style Sheets (CSS).

Please Note: This is not a facilitated course. This space acts a place to ask questions around a shared set of materials and activities. Courses for P2PU and School of Webcraft will begin again in January 2011.

To take best advantage of this community you will need to engage with each other: ask questions! give advice! be supportive!

It's recommended that you find a study partner from within the community and work together with them to develop a study plan for the readings and activities. Having a study partner will keep you motivated.

The learning materials shared in this study group cover the core principles of developing standards compliant web pages. They are intended to help you learn how to define your page structure and content in the Hypertext Markup Language (HTML) and how to add style to your page using Cascading Style Sheets (CSS).

Topics covered:

  • How is a webpage constructed?
  • What are web standards?
  • What are the basic tools required to build a simple web site?
  • How can I fix mistakes in my website code?
  • How do I make my site visible on the web?

Participants should aim to  create simple websites (6-8 pages) containing text, images and hypertext links and can use this as a foundation for more advanced skills they can continue to develop in the School of Webcraft.  Course participants will learn about the importance of open web standards, will test their code on different browsers and will validate their code to guarantee it conforms to web standards.  Participants will also document techniques and code using a wiki - this will be used as a learning resource for future courses.

Please Note: only open web technologies will discussed during this course - proprietary formats such as Flash are not taught in the School of Webcraft.

Pippa Buchanan
Pippa Buchanan's picture
Web Development 101Web Development 101: Learning open and standards based development for the web. #p2pu #webcraft #drumbeatShow more details
Go to the course page

This course will cover the core principles of developing standards compliant web pages. You'll learn how to define your page structure and content in the Hypertext Markup Language (HTML) and how to add style to your page using Cascading Style Sheets (CSS).

Questions we'll cover:

How is a webpage constructed?
What are web standards?
What are the basic tools required to build a simple web site?
How can I fix mistakes in my website code?
How do I make my site visible on the web?

Participants will create simple websites (6-8 pages) containing text, images and hypertext links and can use this as a foundation for more advanced skills they can continue to develop in the School of Webcraft. Course participants will learn about the importance of open web standards, will test their code on different browsers and will validate their code to guarantee it conforms to web standards. Participants will also document techniques and code using a wiki - this will be used as a learning resource for future courses.

Please Note: only open web technologies will discussed during this course - proprietary formats such as Flash are not taught in the School of Webcraft.

The initial meeting for the group will take place on the video channel Tokbox ( and communication will take place via mailing list and on a wiki. Participants will be able to communicate with the course organiser via Skype - the use of Skype between participants is also encouraged.

Pippa Buchanan
Pippa  Buchanan's picture
WordPress DevelopmentWant to learn all about WordPress Development including plugins, widgets, WordPress as CMS, Custom Post Types and Custom Taxonomies?Show more details
Go to the course page

WordPress has been gaining on the CMS marketshare and even won the Overall Best Open Source CMS Award in 2009. It has a great community behind it (and a growing one as well) and there is a lot of interest and enthusiasm on how to leverage WordPress on different scenarios.

Course Modus Operandi

Each week:

   * Monday: Students receive by email the assignment for the week.
   * Wednesday: Meet on for discussion. I will be there to answer any questions most of the day and other folks will also help if you ask nicely. We will log the conversations and post them on-line as a recording of what happened.
   * Sunday: I will post the results of the assignments (if you passed or failed). <------- Assignment Results

At the end of the course I will post how many challenges you did and how you did on each one.

Good luck and enjoy!

Nuno Morgadinho
Nuno Morgadinho's picture
Wordpress Website 101    Let's build simple and easy-to-maintain websites using wordpress.Show more details
Go to the course page

* (Jan 26 2011)
Hi guys,

Thanks for signing up. :)

I wasn't entirely familiar with p2pU system so I admit that all the process wasn't too smooth. A lot of waiting and no email reply from me.. 


So as for the course, everybody that sees their name in the course home are enrolled. Congratulations!


A lot of people sent me interesting applications so it's a shame that everyone is not in. But all the coursework will be freely available online so please feel free to come by. (For those of you whose status say pending or not accepted are not officially part of the course due to the small class size. I am really sorry about that)


There were a few considerations I took in to decide course members.

1. It's first time for me to organize a coursework so I wanted to keep the size small enough for me to be able to deal with. 

2. There might be a few advanced people in the course I believe but most people who are enrolled are more or less beginner level in wordpress so that they can take something out of this experience.

3. A lot of people showed interests for e commerce sites. But I felt that e commerce site development should be an independent subject. This course will cover more general topics regarding wordpress. Hopefully, we can organize something for that specific subject in the future.


I will send a separate email to course members for the week1 schedule.


Once again, Thanks a lot, everyone!


- t


Wordpress is a useful platform for people without much programming knowledge to build a decent website. By utlizing freely/inexpensively available reseources (themes, plugins) and customizing its designs and functions, we can expand what our website can offer.  
We're going to start from how to install wordpress on the server, how to customize themes and styles to suit our own needs, to how to well maintain the site.  

Tomato Sea
Tomato Sea's picture