From Teaching Open Source
Contents |
[edit] SYLLABUS
4080.445.01-Humanitarian Open Source Software
[edit] What You'll Do
This course will introduce students to the concepts of open source development and open source rights. The software produced will be humanitarian software, built using an open source process.
The software will be educational software designed to run on the OLPC, for free distribution. Students will contribute to existing projects or create their own, under a open source license. Students are expected to present reports on their work to the rest of the class, and potentially to other participants in the open source community.
Students finishing this course will have the basic experience needed to join and contribute to most open source projects, and the critical reasoning to understand the impact of their computer code on themselves and others.
[edit] Books
Producing Open Source Software (POSS) by Karl Fogel • O'Reilly Media, Inc. (October 7, 2005) ISBN: 0596007590 or http://producingoss.com/index.html
The Open Source Way, Edition 1 (TOSW) by The Red Hat Community Architecture Team • (2009) http://theopensourceway.org/book/index.html
[edit] Assignment Weights
- Student Class Participation = 15%
- FOSS Community Participation & Student Online Wiki = 25%
- Team Peer Assessment = 20%
- Completed Project* = 20%
- Final Presentation = 20%
The "Completed Project" is evaluated on meeting documented project milestones. Any unmet milestones need to be documented, along with what was done to mitigate the problems. Students are expected to reach out to other open source groups for assistance if problems arise, when possible, and document that experience.
Course and Grading Emphasis:
Literacy and fluency in written American English is a requirement for this course. This course assumes these skills and will not teach them. Any and all work done for this class should be of the quality that you would be proud to show a prospective employer on a job interview. If it wouldn't get you a job, it won't get you a decent grade.
Students are also expected to interact with other classmates, in person and online. Students also participate in lightning talks and an end-of-quarter presentation of the group project. A significant portion of the course grade comes from these interactions. Students should be comfortable with public speaking, online and off.
Academic Dishonesty: In the Open Source world, building on the work of others is the rule, and also in this class (as far as the software projects go) all deliverables submitted probably won’t be all your own work. What came from elsewhere, and what is your own, must be clearly documented in the code. Research, blog postings, wiki entries and blogs must cite sources and media when external. Plagarism will earn you an "F" for the course.
Office hours and assistance
Ryan Brown: 12 noon to 2 PM Monday/Wednesday, 1PM to 3:30 PM Tuesday/Thursday in the FOSSBox.
Remy Decausemaker: 1-6 PM Monday-Thursday in FOSSBox
Also available: the FOSSbox online schedule.
IRC: unpredictable.
Email: Slowest but eventually works.
Grades of "Incomplete":
May be awarded to students who
- 1. have been doing high quality work since the beginning of the quarter, and
- 2. due to documentable circumstances beyond their control, (Health, Death of a Family Member, etc.) are unable to complete the quarter.
Extra Credit: There is an opportunity for extra credit in this class, tied to attendance and participation in a separate community event, Bar Camp Rochester and/or NASA Space Apps Challenge. . To get extra credit you need to, at minimum, attend the event and blog about it in on top of your regular blog posts. Additional credit can be earned by presenting at the event and then blogging about it.
[edit] Quarter Schedule
| Week | Tuesday class plan | Thursday class plan |
|---|---|---|
| 1 | March 5: Syllabus, course structure, open source, OLPC, Sugar, Lightning talks. After class: Summer undergrad research fellowship. | March 7: Google Summer of Code experience, XO Distribution, RIT/Labs OLPC Smoke test |
| 2 | March 12:
Guest Lecturer Remy Decausemaker, Open Source Hacktivist, on FOSS Tools and Processes, Git intro In-Class Exercise: IRC 5 on OLPC practice |
Discussion: Contributing to Open Source without the source, Project list |
| 3 | March 19th: Team selection, project selection. Teams then discuss division of labor. | March 21st: In-class: set up project pages. In-class project planning. Trouble warning signs discussion |
| 4 | March 26: Lecture "RIT OLPC Kids". In-Class Activity: Sugar on a Stick Smoke Test. | March 28: Pycon postmortem/presentation. Teams Present project plan with division of labor and milestones |
| 5 | April 2: Guest speaker, TBA | April 4: Team Formal progress reports. Lecture: "RIT OLPC Lesson Plans" |
| 6 | April 9: Lecture: Mashups | April 11: Work time |
| 7 | April 16: Rochester Pythonistas meeting instead of class. | April 18: Walter Bender presentation/talk. Tentative discussion: Documentation for Users, Administrators, and Developers. Group documentation planning. Talk about BarCamp and NASA Space Apps Challenge. |
| 8 | April 23: Work time. | April 25: Work time. |
| 9 | April 30: Work time | May 2: Presentation rehearsals/work time |
| 10 | May 7: Discussion: Walking away from a project. Final goal checks. Work time | May 9: Final project presentations |
| 11 | Return machines during scheduled final exam period, peer evaluations |
[edit] Homework Schedule
| Week | Due date | Homework |
|---|---|---|
| 1 | Due March 7, Thursday | Set up a Blog connection to TOS Planet (create a blog first if you don't have one). See Planet_Feed_List for setup. Next, check out the list of existing activities at Sugar Labs Activities. |
| 2 | Due March 12, Tuesday | Install IRC 5 and Git on your OLPC Laptop. If you need tech support, send TA e-mail during office hours.
|
| 2 | Due March 14, Thursday | Reading: |
| 3 | Due March 19 | Students need to research & choose projects that they would like to work on. Know enough about the projects you are interested in to be able to discuss an initial plan with your classmates.
Reading:
|
| 3 | Due March 21 | POSS: Chapter 6 Install Virtual Box from Sun on your personal computer. Mac, PC and Linux versions are available. |
| 4 | Due March 28 | Weekly Progress on wiki - Experience of working in a team and planning as a group.
Presentation of project plan with division of labor and milestones |
| 5 | Due April 4 | Weekly Progress on your project blog
|
| 6 | Due April 11 | Weekly Progress on blog
|
| 7 | Due April 18 | Weekly Progress on blog
|
| 8 | Due April 25 | Weekly Progress on blog Feedback on last week's trips/visit. |
| 9 | Due May 2 | Weekly Progress on blog Summarize project experience |
| 10 | None | None (final projects due for presentation) |
[edit] Lightning talks schedule
Please put the date, your name, and the lightning talk topic here. No more than 3 talks per class session, please.
- March 14
- Dan Fuhry | Yubico's Yubikey (conditional on my Yubikey NEO arriving by then. It should -- it shipped Monday, March 4.)
- March 19 (Tuesday)
- Casey DeLorme | Xen Hypervisor
- Wyatt Winters | Tor
- March 26
- Jared Stroud | Vim
- March 28
- RemyD | FOSS@RIT Cross-Country Spring Tour: Tales from PyCon and LibrePlanet
- April 4
- Kevin G | Software as a Service, OwnCloud, and You!
- April 9
- Jenn | Osirix
- April 11
- Caleb Coffie | snort
- April 23
- April 25
- Matt Gambogi | webOS
- Ryan Stush | Sifteo SDK
- Dan Fuhry | Garlic Aioli
- April 30
- Alex Buie | Internet Archive
- May 2
- Alex Buie | git-annex (If time permits)
[edit] Project pages
format: Project name, linked, followed by group member names.
- SweeterMail, Alexander Buie, Kody Hogg, Wyatt Winters
- SkyTime, Jenn Kotler, Ian Furry, Ryan Stush
- TamTam, Dan Fuhry, Liz Ferrao, Dan Wang, Jared Stroud
- Sugar, William Orr and Matthew Gambogi
- OpenVideoChat, Caleb Coffie, Kevin Granger, Casey DeLormne, and Ryan Reich