Education/ComputerScience

From MozillaWiki
Jump to navigation Jump to search

Overview

Mozilla is a big project. There is code for the rendering engine, networking, document parsing, the JavaScript language interpreter, image and codec decoders, unit testing frameworks and more. Whatever your interest or abilities, there is almost certainly an opportunity for you to contribute.

Mozilla Platform

Firefox, Thunderbird and many more applications are built on a common Mozilla platform. This is where you can find the rendering engine, document parsers, JavaScript interpreter and cross platform methods of interacting with the local operating system.

Mozilla Applications

Firefox is only one of many applications built on the Mozilla platform. The list of Mozilla based applications is quite long. If you want to build you own application on the platform, consider using XULRunner.

Extending

Mozilla based software is extensible through four types of add-ons: extensions, plug-ins, themes and now Jetpack. Learn how you can change the behavior of a Mozilla application without changing the code.

Embedding

Parts of Mozilla code can be separated from the platform and used inside your own applications. For instance, the Gecko rendering engine. For embedding basics and instructions visit the Embedding page at MDC.

Build and Release engineering

A big part of getting a product like Firefox to market is the infrastructure for building and releasing the code. Unfortunately, there isn't much documentation at MDC describing the process, but changing that is a goal of Mozilla Education.

Testing

Unit testing is essential to a project as large as Mozilla. If you hope to make a contribution to the core platform, you will need to learn to create a unit test that will prove it works and warn developers if someone else breaks it. Mozilla uses a variety of testing frameworks for different types of code.

Tools used by Mozilla

Learn how to use the tools that Mozilla developers use. Using only a browser, it is possible to:

  • browse and search source code for all Mozilla projects
  • see older versions the Mozilla source code
  • track bugs reports and submit patches
  • see the status of the latest patches to the Mozilla source code
  • share snippets of code

Research

Mozilla Education expects that many visitors to this site will be academics and students looking for research opportunities. Mozilla has a wealth of data that it is willing to share. What is needed is to connect research that academics want to do with research Mozilla may find useful. Mozilla wishes to support research that is open, collaborative and advances the goal of building an open web. Please join #Education or the weekly status call if you wish to discuss research opportunities.

Survival skills

How to get help from the community

Learn how to get help directory from other Mozilla contributors using

  • Wikis
  • Mailing lists
  • Blogs and Planets
  • IRC
  • Mentors

Essential Development Skills

You can't do anything with Mozilla if you can't download and compile the source code. For many, Mozilla may be the largest project they have ever built. Start here for the essential skill set:

  • getting the source code
  • compiling the source code
  • navigating the source code
  • debugging
  • creating patches

Language reference

Tutorials and reference for C++ and JavaScript, the languages of the Mozilla platform.

Finding a good student project

List of bugs with "student-project" keyword

Project Suggestions

Collecting ideas for student projects. Developers who have ideas for projects that they would like to share with student may add them here.