667
edits
Changes
DPS909
,Updated DPS909 for current term
==[http://cs.senecac.on.ca/index.php?outline=DPS909 Subject Description]==
This course introduces students to the technological, social, and pragmatic aspects of developing open source software through direct involvement in a real open source the Mozilla project/projects. Students will learn to use the tools, techniques, and strategies of OS open source developers. This is a project-based programming course. The particular Mozilla project has been chosen as an example of an open source project(s) to be studied will vary with each offering because of its maturity, breadth and be announced at the beginning depth of the semestertechnology, and strong community.
==Graded WorkMajor Project==
This is a project course, and the majority of each student’s mark will come from work done on a real Mozilla development project. The primary goal of this project is to get students involved in the Mozilla development community and codebase. Through this experience students will learn about the processes, tools, and practices involved in developing software as part of a large open source community. ===Philosophy=== Many of the practices inherent in open source development will seem to go against the structures often set in place for similar course work. For example, students are typically forbidden to collaborate with peers, to copy from the web, etc. However, these rules must be re-evaluated in the context of proper and pragmatic open source development practices. First, consider the typical rules around cheating and plagiarism. In this assignment, students are encouraged to work within the set of best practices natural to open source development. Open source developers do not write from scratch what already exists and is freely available for use. Students should be thinking in terms or code reuse. It is acceptable for students to use code from other open source projects, so long as the license is amenable to the use. Second, consider the typical restrictions on peer-collaboration. In this project students are encouraged to work together, to help one another, to look at each other's code, etc. Open source collaboration is about leveraging the collective knowledge of a community to help solve the problems of the individual. Third, consider the sharp dividing line between student projects in most programming courses. For the most part, students are evaluated on their ability to do a particular project or to solve a particular problem on their own. The outcome is measured against peer outcomes. However, in this course students are not in competition with their peers; rather, they are all working on one large project (i.e., Mozilla) with many sub-projects within it. As a result, there is no clean line to divide one student’s work from another, or even student work from that of the Mozilla community. This means that collaboration between students and even other members of the Mozilla community is acceptable practice. To summarize, students should: * Help each other, contribute to one another’s projects * Work with and within the Mozilla community * Give others encouragement and credit when they offer help * Use existing open source code whenever possible * Be open to helping others and to being helped Details* 10% – Each student must pick a project from the list of proposed projects, or have another project idea approved by the instructor. * Create a project page based on the [[Assignment 1Sample Project|template in the wiki]] . If someone has already created a page for a project you want to work on, speak to that person to see if you can join him/her. If s/he says yes, add your name to the Project Leader(s) section; otherwise pick another project and become a Contributor instead (Build Firefoxsee below). * Become a Contributor to one or more other projects. This is something that will just happen as you interact on IRC or in class. As people need help, you can choose to get involved with things. For example: helping to debug something, doing research into a problem, writing some tricky code. Over time your list of contributions to other peoples’ projects should grow. Keep track of this in your personal page. * 50Keep your project page updated. Add technical information to the Project Details section as you get a better understanding of the problem, and keep track of your project status in the Project News section. You should be updating this page at least once per week. Remember that the more you write on your page the easier it will be to get help from other people: it is easier for people to understand your question with supporting documentation on the web. ==Intellectual Property== Given that this course is focused on open source development, and given that we students working on real pieces of the Mozilla codebase, all student work will become open source. The particular license used will be determined based on the other parts of Mozilla with which you are interacting. ==Grading== Detailed grading information will be discussed later in the term.* 60% – [[Assignment 2]] - Final Project Deliverables (Major Projecte.g., code, documents), marked in terms of quality, quantity, etc. Your project will be marked at three milestone releases, the number and values being:** 15% - 0.1 Release * 20* 15% – [[Newsgroups Summaries]]- 0.2 Release* 5* 30% – [[Symposium Report]]- 0.3 Release* 15% – Quizzes (- Project Wiki Page and Blog. You will be marked on your project and personal page's quality, depth of explanation, frequency of update, etc. * 20% - Contributions to other projects. You will be marked on the quantity and quality of your contributions to other groups.* 5% - FSOSS Paper. You will be announced)marked on a paper to be written in response to [http://fsoss.senecac.on.ca FSOSS]. '''NOTE:''' You must attend FSOSS in order to complete this assignment, which means [http://fsoss.senecac.on.ca/2007/register.php registering]. Students receive a discount, and volunteering Seneca students can get in for free.
==Resources==
* [[Project List]]
* [[Course Software Setup]] == Exercises == * [[Using LXR]]* [[Mozilla Technologies]]* [[Firefox Testday]]* [[Reflections http://zenit.senecac.on .ca/~chris.tyler/planet/ Open Source Development]@Seneca Planet]
== Archives ==
* [[DPS909-Fall2006|Fall 2006]]