Contents

  1. Tuesday, May 14
  2. Friday, May 10
  3. Tuesday, May 7
  4. Friday, May 3
  5. Tuesday, April 30
  6. Tuesday, April 16
  7. Friday, April 12
  8. Tuesday, April 9
  9. Friday, April 5
  10. Tuesday, April 2
  11. Friday, March 29
  12. Tuesday, March 26
  13. Friday, March 22
  14. Tuesday, March 19
  15. Friday, March 15
  16. Tuesday, March 12
  17. Friday, March 8
  18. Tuesday, March 5
  19. Friday, March 1
  20. Tuesday, February 26
  21. Friday, February 22
  22. Tuesday, February 19
  23. Friday, February 15
  24. Friday, February 8
  25. Tuesday, February 5
  26. Friday, February 1
  27. Tuesday, January 29
  28. Friday, January 25

Day 28. Tuesday, May 14: Final Presentations

Overview: Presentations
Activities: The Julia team will present first, after which the Mozilla Voice Web team will present.

What to do next

Today is the last class of the semester. You will have the last assessment on Monday, May 20 at 10:00 AM. The topics are posted on the course web page. If there are any final thoughts that you have you can put them into your Week 14 blog.

Day 27. Friday, May 10: Presentations

Overview: Presentations
Activities: The OSNY team will present first, after which the FreeCodeCamp team will present.

Assignment to be completed by Monday evening, May 13

  1. Work on your project presentation and blog posts.


Day 26. Tuesday, May 7: Presentations

Overview: Presentations
Activities: Assessment

Assignment to be completed by Thursday evening, May 9

  1. Work on your project presentation and blog posts.


Day 25. Friday, May 3: Git Collaboration Workflows Continued

Overview: An Assessment, Slide presentation on advanced workflow, and activity contrinued
Activities: Assessment
A tutorial on Collaboration Workflows
A self-paced activity to practice complex collaboration workflows on GitHub: Collaboration Workflow Basics

Assignment to be completed by Monday evening, May 6

  1. Work on your project presentation and blog posts.


Day 24. Tuesday, April 30: Merging, Rebasing, ... The Git Toolbox of Integrating Changes

Overview: Slide presentations and an activity on advanced workflow tools and techniques
Activities: A tutorial on Merging and Rebasing
A tutorial on Collaboration Workflows
A self-paced activity to practice complex collaboration workflows on GitHub: Collaboration Workflow Basics

Assignment to be completed by Thursday evening, May 2

  1. Read the article by Tom Callaway about business models in open source, Musings on Open Source Software Business Models.
  2. Start to plan your presentation and think about when you want to present. The schedule will be posted in the Wiki at the end of Friday's class.


Day 23. Tuesday, April 16: Humanitarian Free and Open Source Software

Overview: Computing for Social Good: Humanitarian Free and Open Source Software (HFOSS)
Activities: A presentation about HFOSS and computing for social good in general
Report-outs by groups

Assignment to be completed by Monday evening, April 29

  1. When we return from the spring recess, we will finally discuss the origins of open source and its history. Before that class, reread
  2. and read - Why Open Source Misses the Point of Free Software by Richard Stallman

    In your blog for the week ending Thursday May 2nd, explain (in your own words) the difference between software development following the cathedral model and software development following the bazaar model. Having spent some time now in the bazaar style of development, which of the two environments do you personally prefer?

  3. Prepare for a short assessment to be given on Tuesday April 30th, which will be a fifteen-minute quiz with questions about the Unix filters presented in the Linux Tutorial slide set, including regular expressions. This is exclusively about filters, not the other commands.


Day 22. Friday, April 12: Open Encyclopedias, Group Reports

Overview: We begin with group reports, and then have a short lesson about open encyclopedias.
Activities: Discuss the Linus Torvalds interview.
Group reports in depth
Open encyclopedias

Assignment to be completed by Tuesday evening, April 16

  1. Make at least two non-trivial edits to one or more Wikipedia pages. In your blog, post the URLs of the pages in which you made the edits and describe how you decided on which edits to make. A trivial edit is correcting a spelling mistake or a typo. Non-trivial edits include fixing citations and bar eURLs, content changes, grammar changes.

  2. The goal is to make at least five edits before the end of the semester, but for Tuesday two are a start.


Day 21. Tuesday, April 9: Unix Tutorial, Part 4

Overview: Filters and Regular Expressions
Activities: The tutorial on Unix/Linux continues, covering
more filters, regular expressions, and bash
We will review the weak spots in the assessment from Friday.

Assignment to be completed by Thursday evening, April 11

  1. Prepare for Friday's class. There will be reports from every group on progress made on the issues.
  2. The majority of the class is behind in the blog posts. Take the lack of a reading assignment to finish and catch up.


Day 20. Friday, April 5: Unix Tutorial, Part 3

Overview: Filters and Regular Expressions
Activities: The tutorial on Unix/Linux continues, covering
filters and regular expressions.
The third assessment will take place as well.

Assignment to be completed by Thursday evening, April 11

  1. Read this interesting article about Personalities in Open Source Projects ), and write your comments on it in your blog for the week ending on April 11.
  2. Read 25 Years Later: Interview with Linus Torvalds. It is 25 years since Linux was "distributed". Write your take-away about this interview in your blog.


Day 19. Tuesday, April 2: Unix Tutorial, Part 2

Overview: Introduction to Unix Basics (continued)
Activities: The tutorial on Unix/Linux continues, covering more commands,
filters, I/O redirection, regular expressions.

Assignment to be completed by Thursday evening, April 4

  1. Reminder: there will be an assessment on Friday April 5th. It will have questions about git (through page 148 of the Pro Git book ), and about material from the Unix/Linux tutorial through what we covered in class on Friday March 29.)


Day 18. Friday, March 29: Unix Tutorial 1

Overview: Introduction to Unix Basics
Activities: Brief updates on what each team has done.
Tutorial on Unix/Linux

Assignment to be completed by Thursday evening, April 4

  1. You get a break in readings. Instead make sure you catch up on all missing blog posts, and make sure you are familiar with the materials we have discussed in class. There will be an assessment on Friday April 5th.


Day 17. Tuesday, March 26: Working on Contributions

Overview: Making Progress on Contributions
Activities: Class will work in teams on their projects. Everyone, not just teams, will give a very brief update on what they are doing.

Assignment to be completed by Monday evening, April 1

  1. Next week we will discuss Wikipedia, and your goal will be to make contributions in the form of edits. Therefore, as a start, it is time to read Contributing to Wikipedia and A Primer for Newcomers. This is just a start. It is important to know about the Discussion pages, formally called Talk pages, but reading about them can wait a few days. If you are interested to read about them start with Help:Talk.
  2. Rummage around in Wikipedia looking for pages that you think you might be able to edit. In your weekly blog, write about what you find, or what you discovered and what was hard. In addition, update your progress on the issues you have isolated in your project.


Day 16. Friday, March 22: Collaborative Brainstorming on an Issue

Overview: We start with a brief discussion about Communities of Practice and their importance and then will work collectively to solve an issue that we will first see in class.
Activities: What is a Community of Practice?
Brief project updates.
The class will collectively brainstorm on a single issue from the Blockly project.

Assignment to be completed by Thursday evening, March 28:

  1. Patrick Masson talked about communities of practice during his presentation. In your blog, write your understanding of what a community of practice is and what role this concept plays in a community built around an open source project. You might want to look at a few of the following links:
  1. In your weekly blog, update your progress on the issues you have isolated in your project.


Day 15. Tuesday, March 19: Open Source Licenses and Issue Exploration

Overview: A review of license essentials; finishing up the GitHub workflow activity, and class exploration of issues
Activities: Those groups that did not finish the GitHub workflow do that first; others can work on their projects until everyone completes the activity.
Summary of open source licenses and Tom Callaway's license video.
Brief reports on each project and exploration of potential issues.
Common Voice group should download development environments if not done already.

Assignment to be completed by Thursday evening, March 28

  1. It is time to read Chapter 5 of Pro Git book, Distributed Git. It describes various workflows when working in a distributed way, such as how you are all working in teams. It is pages 111 through 148.
  2. In your weekly blog, write which issues you have isolated in your project, and what your action plan is. If you have not reached this point, then explain what the problems are.

Day 14. Friday, March 15: More on GitHub Workflow, and in-Class Work on Projects

Overview: An assessment on licenses and Mozilla; a lesson about GitHub workflow, and project work
Activities: The second in-class assessment
Slide presentation about the GitHub workflow
Finishing the GitHub Workflow activity started last week, working on your group projects, and brief reports on each project.

Assignment to be completed by Thursday evening, March 21

  1. Patrick Masson's presentation was packed with information and advice. We are fortunate that he has made these slides available for review. Reread the slides, with a focus on two ideas:
    • communities of practice in open source software development and how they differ from traditional in-house development practices
    • the maturity model
    We will discuss these ideas again on Friday, March 22.
  2. Back to licenses. There is more that you need to understand about licenses, and Tom Callaway has a good presentation about it on YouTube, here. Watch (and listen to) this video before Tuesday's class on March 19.
  3. In your weekly blog, write a detailed progress report on what you did this week on your group project. Have you narrowed down issues, where do you stand in terms of understanding the code, have you made contact with the community at all?

Day 13. Tuesday, March 12: Visit and Presentation by Patrick Masson, OSI

Overview: Patrick Masson's presentation on Working in Open Source
Activities: This class is entirely dedicated to the presentation and a question-and-answer session about working in open source.

Assignment to be completed by Thursday evening, March 14

  1. We will have a short assessment at the start of class on Friday March 15. The topics will be
  1. In your weekly blog, update what you have done so far on your project- give details. Also add any comments or thoughts about things you learned from Patrick Masson's talk.

Day 12. Friday, March 8: A Project Callout; GitHub Work Flow

Overview: Class begins with every team giving a brief description of what state their project is in, followed by a presentation about the GitHub work flow, and then a team-based GitHub activity
Activities: Every team must confirm that the development environments are installed on each team member's local computer.
I will give a lesson in a common GitHub Workflow, followed by the class breaking into teams to do the classroom activity GitHub Workflow 01.
Teams will be created in class.

Assignment to be completed by Monday evening, March 11

  1. In preparation for the presentation and classroom visit by Patrick Masson, General Manager of the Board of Directors of the Open Source Initiative, take a look at his Linked-In Profile, and refresh your memory about OSI. Then, knowing that he will talk about "Working in Open Source": how people and organizations in open source work effectively (skills, teams, communications, etc) and differently from proprietary shops, add a question in the organization's wiki: Questions for Patrick Masson. Instructions for contributing to the wiki are in the wiki itself in the Home page.
  2. In your weekly blog, update what you have done so far with the three issues that you identified in the previous week's blog post.

Day 11. Tuesday, March 5: A Bit About Licenses, and Starting Project Work

Overview: Review of License Concepts; Starting Project Work
Activity: Review of key concepts of software licenses as described in Kevin Fleming's talk.
Starting the projects:
* forming teams
* downloading and installing development environments on local machines

Assignment to be completed by Thursday evening, March 7

  1. If you did not succeed in getting the development environment working in class, then do so as your next assignment.
  2. Identify three issues in your project that you think you can fix. In your weekly blog, describe them, put links to them, and explain your reasoning in choosing them.

Day 10. Friday, March 1 No Class

Overview: Software, Licenses, and Ketchup
Activity: Watch the YouTube video A Crash Course in Open Source Licensing by Kevin Fleming. It is one and one-half hours long, so you might need to watch it in more than one sitting.

Assignments to be completed by Monday evening, March 4

  1. See the assignments from Day 9.

Day 9. Tuesday, February 26: Visit and Presentation by Christos Bacharakis

Title: Changing Your Life, One Commit at a Time!
Summary: In this session, we are going to talk about Open Source, makers, university students, businesses, coffee, technology in general, history, airplanes, and design.
We will also explore how Open Source is the engine that powers innovation and Mozilla’s efforts for keeping the web open and accessible to everyone.
Last but not least, we are going to find out how Open Source can help you advance your skills, get experience in the areas you are interested in and thrive.

Assignments to be completed by Monday evening, March 4

  1. Because on Friday, March 1, the class will not meet, your assignment for that time slot is to watch the YouTube video A Crash Course in Open Source Licensing by Kevin Fleming. It is one and one-half hours long, so you might need to watch it in more than one sitting. In your blog for the week ending March 6, explain your understanding of what a copyright is, what a patent is, and what the purpose of a software license is. Explain how copyright works when people contribute to projects. What is the role of ketchup in this talk? Summarize the major points of this presentation.
  2. Put your choice of project to work on into the Class wiki page. Final decisions and commitments must be made so that on Tuesday, we can organize the teams.
  3. Make sure that the team project evaluation activity is complete.

Day 8. Friday, February 22: Project Evaluation and Analysis

Overview: A short assessment, presentation by Jessica, report on the Meetup and moving forward on the project, and a short project evaluation activity.
Activities: 15-minute quiz.
Jessica will give a brief presentation on her group's experience in contributing to an open source project.
In-class project evaluation activity: We will split up into teams and each team will complete a short project evaluation activity found here

Assignment to be completed by Tuesday, February 26

  1. Since Christos Bacharakis, from Mozilla, will be talking to the class next Tuesday, your first assignment is to add a question in the organization's wiki: Questions for Christos Take a look at Christos's LinkedIn Profile. Instructions for contributing to the wiki are in the wiki itself in the Contributing To This Wiki document.
  2. It is time to narrow down the search for a project to which you want to contribute. People who are not interested in the Open Source NYC project should prepare before Tuesday by investigating which projects they are interested in, and they should come up with a list of at most three projects. Put your ideas about this into your blog for the week ending Thursday February 28. The people who want to work on the Open Source NYC project must do some preliminary work:
    • Look up 24 Pull Requests and Hacktoberfest. These are both websites that need to pull down GitHub statistics and there is a chance that much can be re-used from their open source repositories.
    • Assess your strengths and weaknesses and make some decisions about what role(s) in the project you would consider. For example, are you interested in coding the back-end, the web interface, writing documentation, designing the visuals, managing the group, being a maintainer? Put your ideas about this into your blog for the week ending Thursday February 28.

Day 7. Tuesday, February 19: Open Source Project Anatomy and Evaluation

Overview We continue the discussion of project evaluation and project anatomy, and explore a few projects.
Activity We will discuss the projects that you evaluated as part of your assignment last week and compare them:
OpenFoodFacts Server
Netflix Conductor
DOxygen
Although it is highly unlikely that we will have time for it, we will also discuss the articles that you read for today:
Four Types of Open Source Communities
The Beginner's Guide to Contributing to Open Source Projects
7 Things That Make a Great Open Source Contribution

Assignment to be completed by Friday, February 22

  1. Prepare for an Assessment. We will have a short (15 minute) assessment of basic git skills (through Chapter 2 of Pro Git), project anatomy and structure, key features of open source projects (such as what Kevin Fleming talked about, what was contained in Producing Open Source and the GitHub Guide to Contributing).
  2. Continue reading the blogs of other people in the class. You can go to the organization's wiki to see the full list of webpage URLs. If you find any problems or improvements to suggest, such as configuration, formatting, factual errors, and so on, report these as issues in the person's blog repository and add the list of reported issues to the list of contributions on your own blog (make the link to the issue you reported).
  3. For your blog for the week ending Thursday February 21, comment on your experience with the project evaluation assignment. For example, was it useful? Was it very time-consuming? How would you assess the activity level of a project? Can you propose other ways of doing this? Try to back up your ideas with some reasons.
Background Reading for Tuesday February 26

Day 6. Friday, February 15: Open Source Project Evaluation; Skype with Jessie Contour

Overview We continue the discussion of how to evaluate a project for its suitability as a project to which to contribute.
Activity Jessica will give a brief presentation on her experience in contributing to an open source project.
Jessie Contour will talk to the class about Open Source NYC and the upcoming Meetup.
If time permits, we will continue the project evaluation activity. In particular we will discuss the projects that you evaluated as part of your assignment last week and compare them:
OpenFoodFacts Server
Netflix Conductor
DOxygen

Assignment to be completed by Tuesday, February 19

  1. Background Reading:
  2. Start reading the blogs of other people in the class. They are public and anyone can read them. Be sure to read the webpage versions of them. You can go to the organization's wiki to see the full list of webpage URLs. If you find any problems or improvements to suggest, such as configuration, formatting, factual errors, and so on, report these as issues in the person's blog repository and add the list of reported issues to the list of contributions on your own blog (make the link to the issue you reported).
  3. For your blog for the week ending Thursday February 21, comment on your experience with the project evaluation assignment. For example, was it useful? Was it very time-consuming? How would you assess the activity level of a project? Can you propose other ways of doing this? Try to back up your ideas with some reasons.

Day 5. Friday, February 8: Evaluating Open Source Projects

Overview How to decide whether a project is a good match for you; what to look for; how to interpret all that metadata in the project's web presence.
Activity YiZong will give a brief presentation on his experience in contributing to an open source project.
We will then evaluate a project in class together.

Assignment to be completed by Friday, February 15

  1. Background Reading:
    • No background reading this week!
  2. Project Evaluation : Everyone has been given a repository in which to do this assignment. Your repository is named GitHub-account-name-project-evaluation-01, where GitHub-account-name is to be replaced by your actual GitHub username.
  3. For your blog for the week ending Thursday February 14, consider the following question. What things do you feel you need to learn the most to be able to contribute to open source projects? What are the weak points that you want to strengthen?

Day 4. Tuesday, February 5: Repository Structure and a Git Activity

Overview Discussion of a simple git workflow
The contents of a repository: what files must always be present.
The purpose of CONTRIBUTING, LICENSE, CODE OF CONDUCT, and README files.
Activity Git Activity 1. The instructions are on GitHub in git-activity-01.
Team assignments are in a table in that repository.

Assignment to be completed by Friday, February 8

  1. Background Reading:
    • Read GitHub's How to Contribute to Open Source, through the end of Section 4. This is very important reading! I will be asking you very soon to evaluate a few open source projects based on the criteria in the guide.
  2. Technical Reading :
    • Read the rest of the Git Branching chapter in the Pro Git book, up to but not including Rebasing, which starts on page 80. If you need to reread the earlier part of this chapter, this is a good time to do so.
  3. For your blog for the week ending Thursday February 7, answer the following questions.
    • What do you think should be your first contributions to an open source project? Bear in mind the various ways that someone can contribute, and refer back to the webpages that discussed this if you need to.
    • What kind of project would be your ideal project to support? For example, a humanitarian project, a game engine, a part of a big application like Gnome or Firefox? Try to be realistic; given how much time you have during this semester, what is your goal?

Day 3. Friday, February 1: Open Source Ideas, Version Control, and Online Repositories

Recap What are the "four freedoms"?
Discussion What are the significant points made in Kevin Fleming's talk from the YouTube video:
Fleming's YouTube video
Technical Discussion "Mentors" will instruct the class on git basics, including the basic commands: init, clone, add, commit, status, and log.

Assignment to be completed by Tuesday, February 5

  1. Background Reading:
  2. Technical Reading (for those taking the course for the first time):
    • Read the rest of the Git Basics chapter in the Pro Git book, after the section, Recording Changes to the Repository and read the beginning of Git Branching through the end of Branching and Merging. All together these are pages 48 to 69. You may "skim" the sections on customizing the output of the log in the section on Viewing the Commit History.
  3. For mentors only:
    • Each mentor will prepare a five to ten minute overview of the project that he or she worked on in the fall and what the outcome was, with visuals as needed. The order of presentations will be decided on Tuesday, but one person needs to commit to present on Tuesday.

Day 2. Tuesday, January 29: Overview of Open Source and First Contributions

Housekeeping Resolve any technical issues with blog posts and user accounts, including editing blogs, markdown questions, blog content questions, and so on.
Discussion Play the video we did not play last class:
How to jump start a career in open source
What is the "take-away" from this short video?
Discussion How do the Open Source Definition and the Free Software Definition differ?
What are the four freedoms? Is one definition more restrictive than the other?
Hands-On OpenStreetMap editing. The class will form seven teams of three students each, with each team having exactly one "mentor" (a student who took the prequel in the fall). Who is on each team will be found in a file posted in class. The team will follow the instructions in Editing OpenStreetMap, found on the course webpage.
These instructions ask you to do the interactive Learning to Edit Walkthrough. You will not need to do that in class if your mentor remembers how to edit. If he or she does not, then the three of you can do the walkthrough together.
The goal is to make at least five contributions in class. If you do not, this will be part of your homework for the next class.

Assignment to be completed by February 1

  1. If necessary, finish the OpenStreetMap editing activity on your own, or with your teammates if you choose. That activity asks you to make entries in the blog. These go into the first week blog (even if you finish them on February 1).
  2. If you need to, re-watch because we will talk about the ideas he presents on Friday.
  3. Read the Getting Started chapter in the Pro Git book, skipping the section on installing Git, and read the second chapter, Git Basics, up to and including the section, Recording Changes to the Repository. If you have already read this part of the book (because you are a "mentor" in the class), then be prepared to explain this material in class on Friday.

Day 1. Friday, January 25: Course Introduction

Overview Explanation of the structure and content of the course: role of blogs, grading, assessments, assignments, and so on.
Housekeeping Everyone who has not done so already creates their GitHub, OpenStreetMap, and Wikipedia accounts in class, and that they update the Etherpads:
* Etherpad for GitHub Names
* Etherpad for OpenStreetMap Names
* Etherpad for Wikipedia Names
Discussion Openness: open data, open hardware, open software, open government, open education. Find examples. Work in teams of a second-termer and a first-termer.
Activity Ask the class to identify open source software that is used in our daily lives.
* Make a list
* Discuss why they think it is open source
Discussion What is Open Source all about?
Play two videos:
* What is Open Source
* How to jump start a career in open source
Revisit the question: What is Open Source?

Assignment to be completed by January 29

  1. Read about how to set up and use your blog posts by following the instructions in the link on the course web page Your Blog Journal and in the GitHub repository referenced in that page.
  2. Read and explain in your blog post what the difference is between these two definitions.
  3. Watch and be prepared to discuss it in class.

Valid CSS! Valid HTML 4.01 Transitional