From Teaching Open Source
This is the schedule for POSSE RIT/2011 and is subject to change.
Contents |
[edit] Schedule-at-a-Glance
| Time | Sunday | Monday | Tuesday | Wednesday | Thursday | Friday |
|---|---|---|---|---|---|---|
| 8 AM | Breakfast get-together | |||||
| Morning I (9 am - break) | Introduction to Community-Based Open Source | The Practice of Open Source | Guided Dive | Personal Dive, Continued | Teaching Open Source | |
| Morning II (break - 12:00) | Community & Communication | Working with Build Systems | Plans for Teaching Open Source | |||
| Afternoon (1:00 - ~4:30) | Collaborative Online Communication Lab | Commarch Project | Personal Dive | Commarch Project Presentations | Heading home!
| |
| Evening (Homework!) | 8 PM - Gather for drinks at the Lovin' Cup Bistro (Google map). | Overnight Deliverable: Get Online | Overnight Deliverable: Commarch Project | Overnight Deliverable: Personal Dive and Commarch Project | Graduation Dinner |
[edit] Sunday
Gather for drinks and introductions at the Lovin' Cup Bistro - Google map.
[edit] Monday
[edit] Breakfast get-together
We'll start Monday with a light breakfast.
[edit] Introduction to Community-Based Open Source
- What is Open Source? (Dave)
- Definitions
- History of Free Software and Open Source
- Early computing: Publishing and sharing of public domain programs
- Early days of microcomputers/personal computers: Public Domain software
- Free Software: Richard Stallman and the FSF
- Open Source: the OSI
- Commercialization of Open Source
- Current status and trends of Open Source
- Distinctive qualities of Open Source projects
- Community-based
- Old/large codebases
- Organic architecture
[edit] Community & Communication
- Face to Face, Synchronous, and Asynchronous Communication and related Communication Tools
- Synthetic Third Culture (CT)
- Learning plan for the week
[edit] Collaborative Online Communication Lab
This lab introduces participants to various online communication and collaboration methods, including:
- IRC (irc://irc.freenode.net/teachingopensource-posse)
- Wikis and wiki-markup (Teaching Open Source wiki: http://teachingopensource.org)
- Pastebin (http://pastebin.mozilla.org, http://fpaste.org)
- URL shorteners
The goal of the lab is to collaboratively create wiki pages for all course participants, documenting:
- Web pages, blogs, or other URLs related to this person
- Courses they teach and where
- Areas of technical specialization
- Open Source software communities in which they are involved, or hope to become involved
- Personal interests
Participants are not permitted to edit their own page during the lab (after it is over, any additions or corrections can be made). Instead, participants must collect information through online interviews or conversations--no direct face-to-face communication is permitted.
[edit] Overnight Deliverable
Get Online
- Update this wiki (http://teachingopensource.org)
- Correct and fill-out your personal wiki page from the afternoon's lab
- Create a wiki page to design your Open Source course outline. Update this page through the week and be prepared to present it on Friday.
- Create a blog account (WordPress, Blogger, LiveJournal)
- Create a blog post describing your experience working collaboratively online. For example, what did you find hard vs. face to face communication? how accurate was the final result? what did you learn that you didn't know before?
- Add your blog to the TOS Planet (use a tagged feed if appropriate) by inserting your feed information in the Planet Feed List,
- Check that your blog post appeared on the planet (may take up to 30 minutes)
- Use IRC to communicate with and support the other participants
[edit] Tuesday
[edit] Status Check
- Blog review
- Feedback
- Missed Topic: Synthetic Third Culture
[edit] Plan for the Remainder of the Week
- Review Learning Plan
- Tuesday: The Practice of Open Source
- Wed-Thu: Deep Dive (Guided, Personal)
- Friday: The Teaching of Open Source
- Planning through the week - On your POSSE Plan page
- Plans for Getting Involved in Open Source
- Plans for Teaching Open Source
[edit] Teaching the Practice of Open Source
- The Value of Open Source in Teaching
- Real experience
- Visible processes
- Open to contribution
- Prerequisites
- Students
- Solid core skill-set
- Professor
- Involved in the Community
- Students
- Teaching the Practice of Open Source
- Communication
- Project Selection
- Learning How to Build
- Tools and Methodologies
- Meeting the Community
- Releases
- Contribution to Other Projects
[edit] The Practice of Open Source
Open source is about community, but in order to collaborate with a community there are some basic processes we need to learn.
- Obtaining Source
- Tarballs
- Revision control
- Original source code management systems (SCCS, RCS)
- Legacy central-server model - CVS
- Modern approaches: Mercurial (hg) and Git
- Using Git (documentation, book, FAQ)
- Generating and using Patches
- Build Environments
- Finding and Installing build dependencies
- Example: Mozilla Build for Microsoft Windows
- Example: yum development groups in Fedora
- Using MacPorts, etc.
- Operating systems, cross-platform builds
- Virtualization
- Machine requirements
- Fast I/O, lots of RAM (for linking)
- Tools
- Libraries
- Settings
- Environment variables, PATHs
- Finding and Installing build dependencies
- Build Tools
- Introduction to Makefiles
- Basic structure
- How to write them
- How to read them
- Example Makefile - PuTTY on Windows
- Example Makefile - wget
- End to end Example Walkthrough
- Get code
- Look at what we got
- configure
- make
- Look at end result of what we built
[edit] Commarch Project
- See Commarch Project
[edit] Overnight Deliverable
- Continue work on the Commarch Project
- Build Firefox in preparation for Wednesday morning
- Blog about your experience
[edit] Wednesday
[edit] Guided Dive
A guided dive into fixing a bug in an open-source project.
- Getting the source.
- Using the community's version control system
- Finding the code related to the bug.
- Using code navigation tools.
- Fixing the bug
- Testing the fix
- Preparing a patch
[edit] Personal Dive
Here's where the rubber meets the road: the opportunity to directly contribute to an Open Source project.
- Select a project from this list.
- Solve it.
- Post your contribution back to the project, in whatever form is appropriate (such as a test result on a mailing list, a wiki edit, or a patch).
[edit] Overnight Deliverable
- Continue with your Personal Dive project
- Finish Commarch Project
[edit] Thursday
[edit] Personal Dive, Continued
- Wrap-up of Personal Dive from Wednesday
[edit] Commarch Project Presentations
- Brief presentations by each participant (Dave)
[edit] Graduation Dinner
- Dinner out with the other POSSE participants
- Details TBA
[edit] Friday
[edit] Teaching Open Source
- The Water's Warm, Come on In vs. Push from the Edge
- Pre-open source vs. community-involved open source
- Case studies
[edit] Plans for Teaching Open Source
- Roundtable Discussion
- Getting involved in open source
- Incorporating open source into our courses
[edit] Resources
- Student Project Blogging Guide - http://sububi.org/2009/07/27/the-busy-students-guide-to-project-blogging/
- Student Participation in Open Source - A Professor's Perspective - http://opensource.com/education/10/11/professors-perspective-landscape-academic-participation-open-source-projects
- BLOG post "The Commercialization of an Open Source Project - http://buytaert.net/the-commercialization-of-a-volunteer-driven-open-source-project