667
edits
Changes
DPS909
,→Resources
=Topics in Open Source Development=
==[http://cswww.senecac.onsenecacollege.ca/index.phpcgi-bin/subject?outlines1=DPS909 Subject Description]==
This course introduces students to the technological, social, and pragmatic aspects of developing open source software through direct involvement in the Mozilla projectlarge open source projects. Students will learn to use the tools, techniques, and strategies of open source developers. This is a project-based programming course. The Mozilla project has been chosen as an example of an open source project because of its maturity, breadth and depth of technology, and strong community.
==Course Outcomes==
* Describe the history and philosophy of an open source project
* Choose between the various open source licenses understanding the implications for users, developers, and the software community in general
* Use the communication modes particular to the open source world through participation in such things as mailing listsGitHub, IRCSlack, wikis, etc.
* Use the tools of open source development, for example: distributed revision control; documentation tools; automated build and test systems; debuggers; source code utilities; tracking systems; on-line resources, etc.
* Work with a pre-existing large source code base
* Write software that integrates and interacts with the Mozilla project’s codeexisting open source systems. For example: add-ons; bug fixes; new features; etc.* Work collaboratively with fellow students and members of the Mozilla open source community.
==Major 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 open source development community and codebaseits codebases. Through this experience students will learn about the processes, tools, and practices involved in developing software as part of a large open source community. Students will also have the opportunity to contribute their own code to real-world software projects, thereby gaining important experience.
===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 assignmentcourse, 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 of 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 (ie.eg., 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 open source community. This means that collaboration between students and even other members of the Mozilla open source community is acceptable practice.
To summarize, students should:
* Help each other, contribute to one another’s projects
* Work with and within the Mozilla open source 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=Intellectual Property==
==Intellectual PropertyGrading==
==Resources==
* [[DPS909 & OSD600 Fall 2007 Weekly Schedule2020]]- Weekly Course Notes and Links* [[Project List]]* [[Potential Projects]https://seneca-open-source.slack.com Seneca Open Source Slack]- Our main communication platform is Slack. You can sign-up with your @myseneca.ca email address.* [httphttps://zenittelescope.senecaccdot.on.ca/~chris.tyler/planetsystems/ Telescope Open Source@Seneca PlanetBlog]- All student open source blogs are aggregated here in our custom blogging software
== Archives ==
* [[DPS909-Fall2006|Fall 2006]]
* [[DPS909 Fall 2007|Fall 2007]]
* [[DPS909 Fall 2008|Fall 2008]]
* [[DPS909 Winter 2009|Winter 2009]]
* [[DPS909 Fall 2009|Fall 2009]]
* [[DPS909 Fall 2011|Fall 2011]]
* [[DPS909 Fall 2012|Fall 2012]]
* [[DPS909 Fall 2013|Fall 2013]]
* [[DPS909 Fall 2015|Fall 2015]]
* [[DPS909 Winter 2017|Winter 2017]]
* [[DPS909 Fall 2017|Fall 2017]]
* [[DPS909 Winter 2018|Winter 2018]]
* [[DPS909 Fall 2018|Fall 2018]]
* [[DPS909 Winter 2019|Winter 2019]]
* [[DPS909 Fall 2019|Fall 2019]]
[[Category:DPS909]]