COMP 312-412 is an undergraduate and graduate (combined) course offered at Loyola University Chicago in the Department of Computer Science. This course has been offered since the early 2000s by Dr. George K. Thiruvathukal, who has written on FOSS and developed software (programming frameworks, tools, and libraries) under FOSS licensing, most often under the GPL or Apache License.

About the Course

This is a seminar for those who want to learn about Free and Open Source Software. This course is a mix of philosophy, system configuration/installation, software development/hacking, and computer science.

The course is run as a seminar, so you should assume that there is much self-directed effort required in this course. There will be lectures; however, the lectures are designed to be general and motivate student project work, which is a required component of the course (40% of your grade).In this summer offering, there are Monday and Wednesday lectures. The general plan is for there to be lecture on Mondays and guest speakers/group work on Wednesdays. Teamwork is required as part of this summer work. FOSS is all about community and working with others to get stuff done. If you don’t enjoy teamwork and collaborating with others, this course is not recommended for you.


This course will be taught by George K. Thiruvathukal. There will be a number of guests who do work with FOSS (or are experts in various technologies associated with it). Past guests have included Brian Fitzpatrick (Google), Matt Bone (former student, Coupon Cabin), and Joe Kaylor (former student, QRM).

Grading Scheme

20% Participation in class activities and discussion group (a Google Group)
40% Project
40% Dissemination (code site, documentation, and technical report)


This is just a sample of topics, based on a 16-week format. The summer program will likely include only a subset of these topics.
  • Culture/Philosophy of FOSS
  • Project Hosting (e.g. GitHub, Bitbucket, Google Code, etc.)
  • Version Control
  • Projects in Need of Help
  • Protecting Projects from Toxic People
  • Documentation Tools (LaTeX, LyX, OpenOffice, DocBook, TEI)
  • Linux and FOSS from the ground up OSs
  • Turning your Mac or Windows box into a FOSS environment
  • The Languages of FOSS (e.g. Perl, Python, Ruby, C/C++, Haskell). These choices reflect my personal preferences and take nothing away from other good languages (e.g. Java, C#, and languages based on them). You may use any language you like in this class.
  • Virtualization
  • Code Walkthroughs
  • Collaboration Technologies
  • Project Management
  • Continuous Integration
  • Cloud Hosting
  • Packaging (jars, eggs, etc.)
  • Automatic Building (autoconf/make, Python setuptools, Ant, Maven)
  • Project Ideas