Comp 312-01E/412-001, Open Source Computing, Spring 2025

Peter Dordal, Loyola University Chicago Dept of Computer Science.

Class meeting: MW 12:35-1:25. Mondays: Institute for Environmental Sustainability 122, Wednesdays usually online. We will normally not meet Fridays, but the last week we may have an online session Friday to accommodate everyone's team presentation.

Comp 271/400B is a minimum prerequisite.

The main goal of the course is to participate in some open-source project, as part of a team. We will divide into teams the first week or two. I'm going to have you post brief introductions on Sakai to help you find teammates.

You will have to be prepared to communicate with your team regularly. This would usually mean asynchronous communication or, at most, online meetings. If you have less background in software development, there will still be plenty to do in terms of documentation, architecture planning, use-case development, and testing.

This is not a software-engineering course; grading will be based more on effort than results. That said, results do matter, and if you don't achieve them then there should be some legitimate reason (like your project was just a little too ambitious).

There will be some readings from the open textbook  Producing Open Source Software, by Karl Fogel (local copy here). There may also be readings from Lawrence Lessig's Code.

My general course groundrules are here. Do not submit as your own work content that you did not create. You are, of course, submitting a project that originated elsewhere; the important thing is to make it clear to me -- in the code -- what features your team added.

In addition to the project, we'll also look at bug finding, bug reporting, and presentations about how projects are put together. There will be some kind of final exam, covering the factual material presented. The project counts most, but if that doesn't quite work out as planned then the other things (like the exam) will be used to bring your grade up. 

There will be a final exam, on Sakai, on basic open-source facts. I'll make a study guide available beforehand.

The primary course outcome is to become familiar with how to implement projects involving free and open-source software and how to participate in open-source projects effectively as part of a team. A secondary outcome is to understand some of the issues surrounding open-source licensing.

Accessibility: contact the Student Accessibility Center if you have an issue.
Title IX: I am required contractually and legally to report certain kinds of current misconduct. More here.



Starter Open-Source Projects

I'll begin with a list of sites that suggest good open-source projects for getting started. You are also free to create your own project.

In addition to "first-time" projects, there are also plenty of "portfolio-builder" projects out there on Github, that you can adopt to contribute to. For an example, see github.com/odellmac4/bike_club_2311 (which is probably an assignment for some class somewhere).

Here are some projects that have been successful in the past.

And here are some recent entrants:

Some Python examples

Try searching, if this is what you're interested in.



Course calendar


Week 1: Jan 13,15
Week 2: Jan 22
Week 3: Jan 27,29
Week 4: Feb 3,5
Week 5: Feb 10,12
Week 6: Feb 17,19
Week 7: Feb 24,26
Week 8: Mar 10,12
Week 9: Mar 17,19
Week 10: Mar 24,26
Week 11: Mar 3, Apr 2
Week 12: Apr 7,9
Week 13: Apr 14,16
Week 14: Apr 23


Other notes

Overview and History of Open Source

Git

Licensing

Linux History

bash and LibreOffice

The Cathedral v the Bazaar

Open Source Security

Android

Open Source Management

Making Money with Open Source