Start with the standard_slides.odp presentation open. (To save time, I usually include this presentation's slides in with the intro slides & later slides for the event.) Introduce the lecture however you feel comfortable.

Advance to the "Free vs Open Source Software" slide and cover:

The term "Free Software" was created in the 1980s by Richard Stallman as software was becoming more proprietary

To be free software, software must meet the "four freedoms": the freedom to run a piece of software for any purpose; the freedom to understand and change it; the freedom to share copies of the software; and the freedom to share changed or modified copies.

"Open source" was coined in the late 90s to appeal to businesses and is now the more popular term, but they mean pretty much the same thing.

Advance to logos slide:

Activity: Ask attendees to identify logos they recognize. If an attendee just gives a name, such as "Firefox", ask them what the software is/what it does.

When joining a project with multiple mailing lists, check to make sure it's the right one, either by reading descriptions of the list or reading through past posts to get a feel for what it’s usually used for.

The next tool is IRC.

Talk about what IRC is:

Stands for "Internet Relay Chat".

A distributed system: no one person or organization hosts it. Instead, individuals can host "Networks", and there can be users and channels on each network. Users can connect to networks via

clients such as XChat, Quassel, or irssi.

Activity: Join IRC

Ask students to join you in #openhatch on the network Freenode.

Students may have missed laptop setup or simply not successfully installed an IRC client. Remind them how to get to the laptop setup page [bit.ly/laptop-setup bit.ly/laptop-setup]. Tell them that if they're having trouble, to raise their hands and mentors will come and help them.

Once you've said the above, go to IRC yourself, and demonstrate:

how typing "/me does a thing" prints out a specially formatted line that looks like "username does a thing"

how someone using your nickname in a channel causes that line to be highlighted and, usually, notifications to occur

how you can start a direct message with someone by typing "/msg", the users name, and then the message

how going to the wrong network will bring you to an empty channel. I usually look for #openhatch on OFTC.

The next tool is the issue tracker. I open up several issue trackers for us to browse through. You can use any examples - the video uses OpenStates, GNOME, OpenHatch]

Basic structure: a dashboard where you can click through to details about a specific issue. Fields on most trackers: unique ID, brief summary, last update.

Important field: "Status":

"Closed": don't work on it because the issue has been fixed or dismissed.

"new" or "unconfirmed": be wary, it means no one has yet reproduced the problem, and/or no maintainer has looked at it and decided the issue is worth addressing.

"Accepted": the best! It means an issue has been accepted as needing fixing, but it hasn't been addressed yet.

"In Progress": Also good. See if you can help, or perhaps said progress has stalled and you can pick it up.

Many projects have custom fields. I often demo this with OpenStates' states column.

You can often find descriptions of how a particular issue tracker is configured, for instance by going to links labeled 'Documentation', 'Instructions', or 'Help'.

How do you read a particular issue?

Activity: Bug Comprehension Handout

You should have a printed handout corresponding to this page. Hand it out, one to every pair of students, and tell them to tear it in half. Explain that each person will read over one of the two issue threads and attempt to answer the questions given. If they're confused, they can ask the mentors or their partner for help. Once they think they understand, they should try to explain what was happening to their partners. After 5-10 minutes, the group will come together and discuss the issues.

You can find the detailed answers to those questions in the transcript. If you have any questions, contact OpenHatch before the event and we can talk with you in more depth about what the heck was up with those bugs.

Going back to the research paper - what if you were writing a research paper wthl millions of friends and strangers? What if this research paper spanned millions of different topics and sub-topics? Such a research paper does exist. We call it Wikipedia.

Demonstrate the 'compare revisions' functionality. Point out that the older version is on the left and the newer on the right, and that removals are beige and additions blue. Point out that each change should have an associated 'commit message' summing up the changes.

I like to find fun changes in the host school's wikipedia page, such as this one from Purdue & Indiana.

Go back to the slide show, and go to the "version control chart" slide. Explain:

At the top level, there are different version control systems.

Below, you can see different hosting services. These are all websites with servers that will store copies of projects. Some of them, like Github, only host projects using one kind of version control system - git. Others host more.

Within Github, there are multiple users. For instance, OpenHatch, which is actually a special user called an organization.

And users - organizations or individuals - can own repositories. Users can have multiple repositories, and repositories can have multiple contributors, although each repository is "owned" by a single user.

We're introducing students to Git and Github because they are the most widely used.

Before finishing, stress that repositories can hold many things besides code, such as:

Gesetze, an effort by German citizens to record all the laws passed by the German government, which is called the Bundestag, hence the name of the user.

You can also search Github for poetry and resumes and other terms (feel free to ask students to suggest terms to search for).

And that's it! Feel free to do a summary here. If you're doing this as part of a standard Open Source Comes to Campus event, this will lead naturally to the next activity, the Git Mini Projects.