In my short time working for Clarkson University, I've realized what a huge impact this small university is making on the open source world. Our 4,300 student-strong science and technology-focused institution, located just south of the Canadian border in Potsdam, New York, hosts the Clarkson Open Source Institute (COSI), dedicated to promoting open source software and providing equipment and support for student projects.

While many universities offer opportunities for students to get involved in open source projects, it's rare to have an entire institute dedicated to promoting open source development. COSI is part of Clarkson's Applied Computer Science Labs within the computer science department. It, along with the Internet Teaching Lab and the Virtual Reality Lab, is run by students (supported by faculty advisers), allowing them to gain experience in managing both facilities and projects while still undergraduates.

True to the collaborative nature of open source, COSI is open to anyone who is interested in participating, so there's no formal membership list or requirements. As a development environment and meeting space for students involved in open source projects, COSI offers many opportunities to lead projects and participate in weekly meetings, workshops, and tutorials. It's also used for teaching computer science and is open for public use during much of the work week.

Open source projects at COSI

Since its founding in 2001, the several hundred Clarkson students who've been involved with COSI have created numerous open source projects, both big and small, and won several major contests, including the IBM Linux Challenge, the VMware Appliance Challenge, and the Unisys Tuxmaster contest.

Some of the more interesting projects COSI students have developed include Robigalia, a Rust-based operating system using the SeL4 microkernel. Our students have also developed a system to use an EEG headset to control robots (mind-controlled robots, if you will). Another fantastic project is the ITL Chorus, which takes in an audio file, splits up all the instruments, and sends the tracks to different computers. This way you can play music on an entire lab full of computers, with each computer playing a different instrument.

clarksoncosi.jpeg EEG headset and robots by Hunter Bashaw and Andy Mahoney at COSI. Photo by Hunter Bashaw.

Other COSI projects in development include:

Scheduler: A simple web app that reads from a CSV of classes and determines a schedule for the semester

DataRange: A VR game created in the Unreal engine for Hack Potsdam; a simple shooter game

Stark: A robot operating system teleoperation program written in Python using the Leap Motion

Librfat: A Rust FAT filesystem library

Language: An interpreter for a COSI student-designed functional programming language

COSI RPG: A non-violent roleplaying game written in Haskell

Sol: A scripting language that aims to take the best of Lua and Python and look a little bit like JavaScript

Many of COSI's projects are hosted on students' personal GitHub pages, but you can find some projects, as well as other information about COSI's operations, on the lab's GitHub and GitLab pages.

COSI's mirror

One of COSI's biggest projects is its public mirror, which is used by people all over the world to download open source software. On January 5, 2018, we crossed an exciting milestone: more than 1PB of data has been downloaded from our mirror. Recently we've become official mirrors for projects like LibreOffice and Blender—in fact, we are the only official Blender mirror in the Western Hemisphere. It can become difficult to become an official mirror for some software, and everything we mirror has different requirements.

Our mirror, like all our services, is maintained by student volunteers. The general cycle goes from people who know nothing, to people who are learning, to people who are teaching the skill to the next person.

Learning always involves solving challenges, and a big one we had to overcome a few years ago was when our mirror decided to update all the software we were hosting at one time. Because there was no bandwidth cap, the server took all the bandwidth in the area—effectively taking down the internet in the town of Potsdam for a few hours. We solved this by putting a cap in place for how fast it can sync all its software.

Community outreach

COSI students also have opportunities to get involved with local organizations outside Clarkson, doing activities to promote computer science, such as Hour of Code presentations at libraries and Python workshops at schools. For the second consecutive year, we've co-hosted the annual Hack Potsdam hackathon with the SUNY Potsdam Association for Computing Machinery (ACM).

Our computer science outreach program has taught many high school students about programming, web development, networking, and more. We've partnered with Google's IgniteCS program to run workshops and an introductory computing series for local schools. Sometimes we host high school students in our lab for these events, but we also travel to teach them using mobile computing kits we created that include Raspberry Pis, small screens, keyboards, mice, various networking hardware, and collections for breadboards, wires, lights, and switches.

Building a strong organization

The COSI community is its strongest asset. We regularly have COSI alumni stop by to see what the labs are up to these days. Companies where alumni work come directly to the labs looking for new employees, and we also often have upperclassman refer underclassman to employers. Employers and alumni come back to the labs and give talks, bring hardware or software for us to try, or bring us treats to eat. They also regularly offer advice, which we appreciate, or even help us with projects.

Good communities are a fragile thing, and it's important to always make sure that our organization is headed in a positive direction. It takes a long time to build up resources and expertise, and it's easy to let a community break down.

COSI's guiding principles help ensure we have a clear vision and understanding of our goals and what we're trying to accomplish. One principle is: "Everyone should be learning and teaching. When a task becomes routine for you, look for someone to teach it to and transition the role to them. Then find a new apprenticeship opportunity for yourself."

It is also important to make sure to hear the opinions of all those involved. If the members of your organization feel like their views can have an impact, then people take on a personal pride, integrity, and responsibility for caring for the community.

Contribution credit goes to the following students who helped with this article:

Abigail Matthews is a Junior Computer Science Major / Mathematics Minor from Massena, NY

Hunter Bashaw is a Sophomore Computer Science Major / Mathematics Minor from Fort Covington, NY