• 2016-01-25 — 2016-05-13
  • Mon,Wed,Fri 9:00AM - 9:50AM
  • IGME58201.2151
  • Orange Hall (ORN)-1380
  • deejoe@mail.rit.edu


The RIT Humanitarian Free/Open Source Software Development Course

  • Instructor - D. Joe Anderson <deejoe@mail.rit.edu>
  • Office: 70-3450
  • Office Hours: Thursday 3:30-4:00pm
  • Teaching Assistant - Mike Nolan (Nolski) <me@michael-nolan.com>
  • IRC - irc.freenode.net, #rit-foss
The source for this syllabus can be found at https://github.com/ritjoe/hfoss

Text Books

There are a number of textbooks we’ll be referencing throughout the semester. You can find these books/texts/articles here on the resources page

Purchase of a textbook, then, is not required. However, you will need to have at least one USB keychain flash drive, 8GB capacity or better, USB 2 or 3, completely empty to start with. Be prepared to turn that over to your instructor or TA by the 2nd week of class.

What You’ll Do

This course will introduce students to the Free and Open Source Software (FOSS) and Open Content movements, to the open source development process, and to the open questions of the efficacy of technology in the classroom.

Students will learn FOSS process and Tools with class projects that support the One Laptop Per Child community by creating content and software for free distribution to students and teachers around the world. The OLPC project is driven by a world-wide community–one that students in HFOSS will become part of.

For this course students will be expected to attend and make final presentations to the RIT and Rochester FOSS communities via the regular Rochester Pythonistas meet-ups and local or regional hack-a-thons when possible. Students will also become members of the Sugar and OLPC international communities. Local FOSS community members may join us in class sessions as well. Treat them as you would another instructor, but they’re also your peers in moving this innovative project forward.

The spirit of the course

While still a course where you will receive a letter grade, the spirit of the course is intended to be both open and fun.

An open course – students will have access to the ‘document source’ for the syllabus. While you are reading the syllabus right now, as a student of the class you have a right to fork the upstream repository, make modifications, and submit patches for review. Barring a troll festival, this can create a fun, dynamic environment in which the course curriculum can develop by the very same mechanism being taught during the semester (community-driven).


All code developed by students in the course must be licensed (by the student) under any one of the licenses approved by the Open Source Initiative.

Code that you write is your code, with which you can do what you will; true. However, if you’re unwilling to license code you write for an Free/Open Source course with a Free/Open Source license, you may be in the wrong course.


Week Day Topic Assigned Due
1 1 01/25

Welcome, intro, Syllabus, RTFM

litreview1: What is Open Source? by Steve Weber

Watch FSF 30th Anniversary Video

2 01/27

First Flight

Homework - First Flight

3 01/29

It's All Text

2 1 02/01

Formal Introductions to Git and Github

grok litreview.txt

NB: Drop/Add deadline

grok litreview.txt

*** 02/02

Interlock Rochester

Interlock Rochester

2 02/03

Work session: Git and Github

3 02/05

Writing for HFOSS

Homework - First Flight

3 1 02/08

Rights, Restrictions, and Licensing: GNU/FSF

litreview Discussion: What is Open Source?

litreview1: What is Open Source? by Steve Weber

2 02/10

litreview Discussion: What is Open Source?

3 02/12

Rights, Restrictions, and Licensing: Open Source

$7 Unix history

Homework - Bugfix

4 1 02/15

OLPC Distribution & Smoke testing


Smoke Tests

Smoke Test

*** 02/16



2 02/17

Intro to OLPC, Sugar, Python

3 02/19

IRC-only Class (instructor travel)

*** 02/20

Linux Workshop @ Interlock

Linux Workshop @ Interlock

5 1 02/22

Homework - Team Proposal

Commarch Report

Homework - Bugfix

2 02/24

COMMARCH project: Git-by-a-bus and CCF: Callaway Coefficient of Fail. COMMARCH: Reporting and analysis using GBAB et al

Smoke Test

3 02/26

6 1 02/29

*** 03/01

Interlock Rochester

Interlock Rochester

2 03/02

Work session: Sugar-on-a-Stick

3 03/04


Homework - Team Proposal

*** 03/05



7 1 03/07

2 03/09

SJ: Playtesting, FOSS minor, FOSS@MAGIC.

Work on commarch

3 03/11

8 1 3/14

Commarch reports

NY & MA 4th Grade Curriculum

Commarch Report
*** 03/15



2 03/16

Commarch reports

EDU: Curriculum Exploration.

NY & MA 4th Grade Curriculum

3 03/18

*** 03/19

Linux Workshop at Interlock

*** 03/19

LibrePlanet, Boston

9 1 03/21


2 03/23


3 03/25


10 1 03/28

Creative Commons & Free Culture

Team formation
2 03/30

3 04/01

*** 04/01


11 1 04/04

2 04/06

Quiz 2 Team Proposal 2
3 04/08


*** 04/09

Hack Upstate

Hack Upstate, Syracuse

12 1 04/11

2 04/13


2 04/15


13 1 04/18

2 04/20


3 04/22


*** 04/22

Game demonstrations for 4th graders

*** 04/22-04/24

NASA SpaceApps Challenge

BSidesROC 2016

14 1 04/25


2 04/27


3 04/29


15 1 05/02


2 05/04

3 05/06

Projects completed
16 1 05/09


2 05/11

Final presentations

3 05/13

Last day of class -- Final presentations

17 1 05/15

POSSIBLE EXAM SLOT Final presentations


Attendance is required for this course. Students are allotted 2 excused absences per semester.

Subsequent absences will result in a 10% reduction of your final letter grade for each class missed.


Assignments are due at 8:59am of the day they are marked as due, to be useful in class.

Late submissions will be deducted 10% per day they are late.

Your final grade for the semester will be derived from the following weights.

Component Weight
In-Class Participation 10%
Quizzes 10%
Literature Reviews 10%
Team Peer Assessments 15%
Project Presentations 15%
Completed Project 20%
FOSS Dev Practices (Blog posts, commits, tickets, IRC) 20%

Blog Updates

Students are required to keep a blog to which they post updates about their investigations, progress, success, and pitfalls. This blog can be hosted anywhere, but must be added to the course participant page (there are instructions on how to do this in Homework - First Flight). All blog posts are syndicated to the HFOSS Planet, a blog aggregator that shows all students' posts on a rolling basis.

  • You must make at least one blog post per week to receive full credit. This is in addition to any assignments that are posted to your blog for that week. A week ends on Sunday at 11:59pm.
  • You must participate regularly in the course’s IRC channel: asking and answering questions.
  • Contributions to the course curriculum, syllabus, and rubric are factored in here as well.
  • Blogging is good for you and good for the FLOSS community at large.

    Team Projects

    There are two team projects in the course: A community architecture project and a final project.

    The details for the final project can be found at Final.

    Lightning Talks - Extra Credit

    Every Friday for the first portion of class, any student has the opportunity to give a lightning talk on a topic of their chosing. Your lightning talk must be less than 5 minutes in length and must be at least remotely related to the course material.

    You will receive +1 extra credit points towards your final grade for every lightning talk you give. Only the first 2 lightning talks offered will be allowed during a given class. Talks will be chosen from among those offered by students on a FIFO basis.

    Bug Fix - Extra Credit

    You can earn extra credit by successfully fixing a bug in a FOSS project.

    You will receive +1 extra credit points towards your final grade for every pull request accepted by an independently-maintained project against a pre-existing bug (eg, fixing new bugs you found, or even generated don't count!).

    Send an email to the instructor with sufficient detail to confirm your bug fix was accepted.