Project Descriptions are located here.

CP3108 Independent Work (Mozilla) - AY 11/12 Semester 1

Academic Advisor & Evaluator:

  • Damith C. Rajapakse

Teaching Assistants:
  • Christopher Cai Guowei (Course coordinator, Mentor)
  • Daniel Le Duc Khoi Nguyen (Mentor)
  • Simon Teo Chang Chiew (Mentor)
  • Tian Beibei
  • Dam Tuan Long
  • Nguyen Hoang Duy

This course, CP3108B Independent Work with focus on the Mozilla Platform, is a 4 MC module offered to students in the School of Computing. It was first introduced in AY 08/09 Semester 1 and is a CS/CU module. (Complete Satisfactorily / Complete Unsatisfactorily)

Weekly Sessions

COM2/108, every Thursday, 6pm - 8pm GMT+8. Starts from official school week 1 to official week 12, excluding mid-term break.

Useful Links

  • Mozilla Developer Center
  • Bugzilla
  • Planet Mozilla
  • Build Documentation
  • Mozilla IRC - irc.mozilla.org, SSL port 6697 - Join the #nus channel among others (in this order), e.g. #firefox, #thunderbird, #developers, #shiretoko (Firefox 3.1 dev channel), #maildev (Thunderbird dev channel).
    • You should listen in to the latter channels to get a feel of the communications environment. Ask questions starting from #nus first, in that order.
  • Suggested ideas - Some possible ideas to work on, as already prioritized by Mozilla's development teams.
  • FAQ - Common questions one may face.
  • Other related links

Course Expectations

The course aims to offer students an insight into the ways and processes of the open source development community in Mozilla, by working on a Mozilla project of their own.

CP3108B Principles:

  • The work must contain significant computing content.
  • The student must take initiative, plan and document the work.

Students are expected to give a 5-10 min presentation at the mid-term (~6 weeks) and a final presentation after ~11 weeks, in addition to a final report of approximately 10 pages. Each should also maintain a blog regularly, describing their experiences and achievements / challenges faced in this course.

There are no prerequisites, but participation, enthusiasm, and independent learning are important aspects of the course. Students are free to decide which Mozilla project they want to work on.

Course Description

Mozilla.

A community of 400 million people.

Firefox. Thunderbird. Sunbird. XULRunner. Mobile. Gecko.

The possibilities are endless.

Every user is part of the community.

Write a patch. Test a build. File a bug. Use an open source application. Tell your friends about Open Source and Mozilla.

You can be part of the community too.

The Mozilla Platform powers many of the open source projects in the internet world today. From the Firefox browser, to the Thunderbird email client, and even the Flickr Uploader, these applications are used by many millions of users in the world today. With developers and users from all parts of the world and all timezones around the globe, Mozilla never sleeps. Here is your chance to collaborate with people all around the world to make improvements for hundreds of millions of users.

You can work on any aspect of the Mozilla Platform as you prefer, be it on the platform itself, including Javascript language, or on the application-level, such as Firefox or Thunderbird. Layout, canvas backend, XUL front-end hacking, or even creating an extension for any of these applications are possible.

There is a lot of independent learning involved in this course.

Module Schedule (To be updated)

A description of the course schedule, subject to minor changes along the way:

Topics to be covered:

  • What is Open Source? What is Mozilla?
  • Where are the developers? Who are they? Other members of the community?
  • Planet Mozilla, Mozilla Add-ons, Spread Firefox.
  • Tools of communication - Bugzilla, Litmus, IRC, Email, Mozilla Wiki, MXR, Bonsai, Pastebin etc.
  • Triage, QA testing process.
  • Read up on documentation on how to set up and then prepare build environment on Windows / Linux / Mac.
  • Tracemonkey demonstration video. (Edit: Gone?)
  • Demonstration of a debug build, hooking into a debugger.
  • Tools used - CVS, Hg, Komodo Edit, Visual Studio (Windows-only)
  • Checking out code, deciding on a .mozconfig.
  • Mozilla build system.
  • Building Mozilla from scratch. (Firefox / Thunderbird / Calendar)
  • Creating .diffs, patches.
  • and many more...