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

SUBSCRIPTIONS ARE CLOSED! THANKS!

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

Acknowledgements

Funding of the development of this course is provided by Acquia http://acquia.com/ to faciliate learning in the Drupal community. This course is part of P2PU's School of Webcraft organized by the Mozilla Drumbeat: http://www.drumbeat.org/p2pu-webcraft Web Enabled http://webenabled.com/ 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 P2PU.org 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
Completed
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
Completed
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.

 

http://new.p2pu.org/en/groups/jquery-the-fundamentals/


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
Completed
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. http://bit.ly/c4AYU4Show 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
Completed
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
Completed
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: http://new.p2pu.org/en/groups/introduction-to-contributing-to-lernata/

Please sign up or follow there!

Jessica Ledbetter
Jessica Ledbetter's picture
Completed
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
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