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

School of Webcraft - Welcome!

Mozilla and P2PU teamed and created the School of Webcraft, a powerful new way to teach and learn web developer skills. School of Webcraft courses are 100% free, globally accessible, and powered entirely by learners and mentors like you.

P2PU, the home of School of Webcraft is moving to a new platform. Check it out!

On the new site you can sign-up for open study groups and volunteer to help improve those which are under development. If you can't find the study group to suit your needs, you can create your own study group to run within School of Webcraft!

Some of the learners from the School of Webcraft's "Web 200" class last semester

 

Get involved:

Course list

P2PU has moved to a new home - please go to p2pu.org to see our current courses. If you want to see what courses were previously run on this site, here's a selection of completed courses:
Course Name Organiser Course Status
Experiencias web con html5No construyas aplicaciones web , crea experiencias web con html5Show more details
Go to the course page
Presentacion

fuerza HTML

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

go inside html5 webcraft.giweb.org  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
Completed
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
Completed
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
Completed
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
Completed
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
Completed
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.

Topics

* OpenStreetMap.org, 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.

* OpenLayers.org, 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
Completed
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
Completed
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
http://jqfundamentals.com/book/book.html

[2] An Intensive Exploration Of jQuery by Ben Nadel
http://www.bennadel.com/resources/presentations/jquery/video/index.htm

[3] jsFiddle by Piotr Zalewa
http://jsfiddle.net/

[4] FireBug by Joe Hewitt et al
http://getfirebug.com/

[5] Firebug Extensions
http://getfirebug.com/wiki/index.php/Firebug_Extensions

[6] TalkShoe
http://www.talkshoe.com/talkshoe/

Dan Diebolt
Dan Diebolt's picture
Completed
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
Completed
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
Completed
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
Completed
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
Completed
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 Groups.Drupal.org back in April 2010 - http://groups.drupal.org/node/59918#comment-248839

Course summary also on https://wiki.mozilla.org/Drumbeat/p2pu/courses/socialwebdrupal


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
Completed
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
Completed
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
Completed