Skip to content
D. Joe edited this page Mar 20, 2020 · 15 revisions

Syllabus: The RIT Humanitarian Free/Open Source Software Development Course

IGME-582 2195 Spring 2020 COVID-19 addendum

So, as things have developed, I'm rethinking a lot of what I thought we might try to do. This is an update both to the syllabus and to my March 18 emails.

Class meetings

Starting Monday, March 23, I will resume holding class meetings in IRC at 9am EDT/1300 UTC. These will be logged as usual. Attendance is not strictly required, but this will be one of your options for your required check-ins.

If we have a full agenda and good attendance, we might use all the time. If attendance is sparse and I've added what I think is necessary already into the meeting log, I'll maybe only hang around until, say, 9:30am. If you'd like to attend but know you'll be late and would like to make sure I'm in channel past 9:30, please let me know by email or IRC at least 15 minutes before class starts.

Journals

I will no longer be requiring the 4 journal entries per week rate, but we will continue the option of using the journal. I encourage you to continue using the journal because it remains a very flexible way to let me know not just what you are doing, but even that you are doing it. See check-ins below in which using the journal is one option.

GitHub

Because a great deal of GitHub remains proprietary and centralized, I try not to rely heavily on many of its features and workflows that depend on those features and can't be used readily outside of GitHub.

That said, if I'm going to use a proprietary, centralized web service for renote collaboration, I'd pick the you-can-use-it-even-once-you-graduate GitHub any day over various of the heavily localized and restrictively-licensed learning management systems.

So, I'll be looking to immerse us further into the ways of GitHub to support our collaborative work on the final projects. Stay tuned.

Check-ins

We need some way to stay in touch and to get feedback from each other in terms of how we're doing. I will look for at least as many check-ins from you as there would have been regularly scheduled class times. That is, in a full week of classes, at least 3 check-ins.

A check-in is one of the following:

Attendance at a synchronous IRC meeting,

a substantial journal entry about progress on your work and any questions or concerns, or

an email either directly to me or to the floss-seminar mailing list with substantive commentary on your progress and with any questions or concerns.

Grading: The journal and attendance points will be combined and distributed across these check-ins.

Office hours

We'll be holding virtual FOSS Hours Thursday evenings from 5pm to 6pm (2100-2200 UTC) using videoconferencing. I may also hold videoconferencing office hours at other times, by arrangment. I expect we'll have enough bandwidth to do simultaneous voice and text chat, we'll have to see how well the video works with the constraints of everyone's bandwidth. There will be no required videoconferencing or video production required by students.

Bugfix

Additional bugfixes accepted by upstreams continue to count as pure extra credit (eg, increasing the numerator "points earned" without also increasing the denominator "points possible").

Meetups

Meetups are clearly not going to happen anymore. Meetup points will be removed from the default final grade tally. I will try to figure out how to include as additional assignments any meetups you've already done (you can still report meetups you've done, if you haven't already). If you have or will report meetups already done, points earned and total points possible will both go up. They aren't pure extra credit.

Projects

We will complete the two remaining projects, but in modified form. See COVID-commarch for the pending project. I will continue to work towards something for the final project, but plan to have further discussion and to gather further feedback about that once class begins again.

Syllabus: The RIT Humanitarian Free/Open Source Software Development Course

  • Instructor - D. Joe Anderson [email protected]
  • Office: Magic Spell Studios (MSS)-3190 (conference room)
  • Office Hours: Thursday 5:00-7:00pm or by appointment
  • 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. They will be added to the resources page or in the library for your use.

Purchase of a textbook is not required.

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 SugarLabs community (or other humanitarian projects) by creating content and software for free distribution to students and teachers around the world. The SugarLabs project is driven by a world-wide community–one of which successful students in HFOSS will become a part.

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. As a student of the class you have a right to fork the upstream repositories for this syllabus and other course content (library, wiki), 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).

Licensing

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.

Similarly, the essence of this course entails your doing significant collaborative work in public, the results of which will remain public. If you do not wish to make your work public in this way, please contact the instructor during the first week of class to make other arrangements.

Schedule

Please continue to refer to this living schedule which should be updated throughout the semester.

Week 1

Introduce the course: syllabus, grading, schedule

Instructor and student introductions

Assign: firstflight

Begin using IRC

Begin using email mailing list

Begin working with course GitHub repo

Introduce writing exercises: journal and blog

Introduce bugfix & bugfix XC

Introduce lightning talks (LT)

Introduce meetup requirement

Assign first reading: Constructionism

Week 2

It's all text

Introduce version control, forges, git history.

Using git 1

Assign bugfix

LT

Week 3

give pedagogy lecture

introduce sugar project

sugar web page

sugarizer

Using git 2

first reading due: Constructionism

Assign second reading: Tatham bug reports

Using git 3

LT

Week 4

second reading due: Tatham bug reports

Assign third reading: curriculum

install vms

Rights, restrictions, and licensing (rrl): History

Using git 4

LT

Week 5

third reading due: curriculum

Assign fourth reading: Parrish

FOSS collections

rrl concepts

Python environments

LT

Assign commarch

Commarch brainstorm

Week 6

Assign fourth reading due: Parrish

Commarch teams

License types

LT

Week 7

Bugfix due

Review commarch progress

Week 8

Review commarch progress

Week 9

Brainstorm final project ideas

Commarch presentations

Open Culture

Week 10

Form team, make repo, begin work: Final project

Week 11

Discuss work-in-progress

Week 12

Demonstrate proof of concept

Week 13

Demonstrate prototype with significant functionality

Week 14

Final projects due

Week 15

final class and final exams

LT, discussion of bugfixes and meetups. Contingency date for final project presentations.

Topics

Additional topics might include

  • topic: FOSS & security
  • topic: FOSS & privacy
  • topic: FOSS, inclusivity, privilege, diversity

Attendance

Attendance is mandatory. Unexecused absences accrue a loss of points & a penalty of 5% off the total grade.

See the attendance page for details.

Grading

Please see grading policies and this example table of full-semester grades

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 First Flight). All blog posts are syndicated to the blog aggregator HFOSS Planet.

You must make at least one blog post per week (up to 12) to receive full credit. 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.

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.

All students will do at least one lightning talk. You will receive +10 extra credit points towards your final grade for every subsequent 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 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.

Accomodations

RIT is committed to providing reasonable accommodations to students with disabilities. If you would like to request accommodations such as special seating or testing modifications due to a disability, please contact the Disability Services Office. It is located in the Student Alumni Union, Room 1150; the Web site is www.rit.edu/dso. After you receive accommodation approval, it is imperative that you see me during office hours so that we can work out whatever arrangement is necessary.

Academic Integrity

RIT Honor Code

RIT Academic Integrity Policy

Clone this wiki locally