Contents

  1. Thursday, December 19
  2. Thursday, December 12
  3. Monday, December 9
  4. Thursday, December 5
  5. Monday, December 2
  6. Monday, November 25
  7. Thursday, November 21
  8. Monday, November 18
  9. Thursday, November 14
  10. Monday, November 11
  11. Thursday, November 7
  12. Monday, November 4
  13. Thursday, October 31
  14. Monday, October 28
  15. Thursday, October 24
  16. Monday, October 21
  17. Thursday, October 17
  18. Wednesday, October 16
  19. Thursday, October 10
  20. Monday, October 7
  21. Thursday, October 3
  22. Thursday, September 26
  23. Monday, September 23
  24. Thursday, September 19
  25. Monday, Sept. 16
  26. Thursday, Sept. 12
  27. Monday, Sept. 9
  28. Thursday, Sept. 5
  29. Thursday, August 29


Day 29. Thursday, December 19: Presentations and an Assessment

Overview: Presentations
Activities: Students will give presentations about the contributions thay made to their selected projects, after which there is a final assessent.

The presentation order will be, using GitHub usernames:




Day 28. Thursday, December 12: Presentations

Overview: Presentations
Activities: Students will give presentations about the contributions thay made to their selected projects.

The presentation order will be, using GitHub usernames:


Assignments

There are no assignments.



Day 27. Monday, December 9: Presentations

Overview: Presentations
Activities: Students will give presentations about the contributions thay made to their selected projects.

The presentation order will be, using GitHub usernames:


Assignments

  1. There are no new assignments for next week.

Blog Week 14 (ending 12/11):

  1. This is the last blog post that you will write for this class. This is a chance to reflect on what you did. Go back to your first two blog posts. They asked you to write about

Did the course meet your expectations? What was different than you expected? How would you change what you wrote with respect to the last two questions (from Blog Post 2?)



Day 26. Thursday, December 5: Presentations

Overview: Presentations
Activities: Students will give presentations about the contributions thay made to their selected projects.

The presentation order will be, using GitHub usernames:


Assignments

  1. There are no new assignments for next week.

Blog Week 14 (ending 12/11):

  1. This is the last blog post that you will write for this class. This is a chance to reflect on what you did. Go back to your first two blog posts. They asked you to write about

Did the course meet your expectations? What was different than you expected? How would you change what you wrote with respect to the last two questions (from Blog Post 2?)



Day 25. Monday, December 2: Open Source Business Models and a Bit More Linux

Overview: A presentation about the business of open source, followed by a but about grep and sed
Activities: Working on projects with the time after the presentations

Assignment due by December 2

  1. Continue preparing the presentation that you will make to the class about your work on issues in the open source project(s) that you selected.

Blog Week 13 (ending 12/04):

  1. There are no new blog requests for the week ending 12/04. Make sure to chronicle your progress, and update your contributions.


Day 24. Monday, November 25: An Assessment Followed by a Work Sprint

Overview: A short assessment on selected aspects of Git and some Linux, followed by work on issues and contributions
Activities: Teams work on their contributions together.
Report-outs toward the end of class.

Assignment due by December 2

Prepare the presentation that you will make to the class about your work on issues in the open source project(s) that you selected.

The Presentation Content

Blog Week 13 (ending 12/04):

  1. There are no new blog requests for the week ending 12/04. Make sure to chronicle your progress, and update your contributions.


Day 23. Thursday, November 18: More Linux Followed by a Work Sprint

Overview: Learning more about filters in Linux, followed by work on issues and contributions
Activities: We spend a short while on Linux filters.
Teams work on their contributions together.
Report-outs toward the end of class.

Assignment due by November 25

  1. Prepare for an assessment on Monday November 25 on the Linux commands and filters covered in the tutorials through November 21. The assessment will also review some Git commands that are fundamental to the Git workflow such as merging, rebasing, pulling, fetching, and so on, and basic concepts of branches.
  2. Read the article by Tom Callaway about business models in open source, Musings on Open Source Software Business Models.
  3. Also read 8 advantages of using open source in the enterprise.
  4. Everyone will be giving a presentation in the class about their contributions. Presentations will span three days starting the Thursday after Thanksgiving break. Start to plan your presentation.

Blog Week 13 (ending 12/04):

  1. Write your comments about Tom Callaway's blog post.
  2. The second article is intended to convince CIO's about the importance of open source for companies. What are your reactions to this article?
  3. Would you want to work in a company that only produced open source software? Why or why not? What would your dream job be? How would you like to see the business of software production in ten years?


Day 22. Monday, November 18: 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
Reports about Wikipedia contributions
If time permits, a bit more Linux

Assignment due by November 25

  1. Read this article: https://opensource.com/tags/humanitarian, and browse the projects listed there. Pick one that interests you and write about it in your blog post for Week 13.

Blog Week 12 (ending 11/20):

No new blog requests.



Day 21. Thursday, November 14: Discussions and a Work Sprint

Overview: Some initial discussions followed by work on contributions
Discussion: Wikipedia contributions
Open source firmware: reactions to System76 introduces laptops with open source BIOS coreboot and to Open Firmware by Jessie Frazelle.
Activities: Everyone will work on their projects. Everyone will give a very brief (2 minute) report-out on what they have accomplished or not.

Assignment due by November 20

  1. Read this article: https://opensource.com/article/19/9/voting-fraud-open-source-solution? and write your thoughts about it in your blog for Week 12.
  2. Make two more edits, however large or small, to Wikipedia.

Blog Week 12 (ending 11/20):

Continue to chronicle your progress on your project contributions.



Day 20. Monday, November 11: Getting Proficient in Linux

Overview: Continuation of the Linux Tutorial
We continue the tutorial on Linux commands.

Assignment due by November 18

Do all of the exercises from the slide Exercises 1 in the Linux Tutorial. I have created private repositories on GitHub for each of you, named with your username and linux-activities. Within that repository, put your solutions in the directory linux_hwk1. Name the file in that directory exercise-set-1.

Blog Week 11 (ending 11/13):

  1. Nothing more to add to this week's blog post.


Day 19. Thursday, November 7: Our Third Guest Speaker

Overview: Kevin Fleming, Member of the CTO Office at Bloomberg LP, will speak about Open Source at Bloomberg

Kevin Fleming works with various teams in Bloomberg to help produce and support its open source software, used by its customers and partners to integrate with the Bloomberg Professional service.


Assignment due by November 13

  1. Make two contributions of any size to Wikipedia, and document them in your Contributions page, with appropriate links.
  2. Read
  3. and in your blog for Week 11, explain the significance of this. Not required, but strongly suggested before you start to write anything is to read by Jessie Frazelle, to understand the issue more clearly. To quote the author, "The goal of this article is to provide some insight into what is being built with open source firmware and why making firmware open source is so important."

Blog Week 11 (ending 11/13):

  1. Write about the visit by Kevin Fleming. What did you learn? Contrast what he had to say about Bloomberg LP's involvement with what Bill Reyner described about FactSet's involvement.
  2. Continue to chronicle your progress on the issue(s) you ar eworking on.


Day 18. Monday, November 4: Open Encyclopedias and Linux

Overview: The Largest Open Source Project in the World, followed by a Linux Tutorial
Two slide presentations:
* a short one on open encylopedias
* a longer one that we will continue over several class periods, a tutorial on Linux commands.

Assignment due by November 6

  1. Kevin Fleming is visiting our class on Thursday, November 7. There is a page in our organization's wiki to which you can add questions: Questions-for-Kevin-Fleming.
  2. Although it is not necessary, if you are curious about Kevin, there is a link to a YouTube video of his presentation at CppCon 2015 on the Intellectual Property Rights page in the course website: Kevin Fleming's YouTube Video

Blog Week 10 (ending 11/6):

  1. Nothing more to add to this week's blog post.


Day 17. Thursday, October 31: A Work Sprint

Overview: Making Progress on Contributions
Activities: Everyone will work on their projects. Teams will be created so that students can help each other. Everyone will give a very brief (2 minute) report-out on what they are doing.

Assignment due by November 6

  1. Next week we will spend some time on Wikipedia, and your goal will be to make contributions in the form of edits. Therefore, as a start, it is time to read

and

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.

  1. Rummage around in Wikipedia looking for pages that you think you might be able to edit.

Blog Week 10 (ending 11/6):

  1. Write about what you find, or what you discovered and what was hard while investigating Wikipedia's pages.
  2. Update your progress on the issues you have isolated in your project. Be detailed and be specific. Provide links to issues, to Pull Requests, to the project. If relevant, provide links to your forked copy of the project if it is in the class organization, or even in your own GitHub account, if that fork has commits or files that pertain to what you are writing. Give a timeline of your progress.


Day 16. Monday, October 28: Collaboration Workflow, Assessment, Tutorial on Linux

Overview: A Mixed Bag, so to speak

In-Class Activities

First the assessment.

Then, the activity started on Thursday, whose instructions are on GitHub in the repository https://github.com/hunter-college-ossd-fall-2019/git-collaboration-workflow-activity.


Assignment due October 30

  1. Be prepared to talk in class about the issue that you have selected to resolve. This includes what you have done, what you plan to do, and what you need to do to overcome any obstacles that you think are in your way.

Blog Week 10 (ending 11/6):

The article by Dries Buytaert (https://dri.es/balancing-makers-and-takers-to-scale-and-sustain-open-source) raised many interesting and controversial ideas. In your blog for Week 10, include a section entitled Thoughts on "Makers and Takers" by Dries Buytaert in which you discuss the things about this article that you agree with and the things that bother you. Articulate your reasons for each.



Day 15. Thursday, October 24: More Advanced Git: Collaboration Workflows

Overview: Safe Ways to Use Git for Coordinating With Others

There are good and not so good ways to synchronize local work with remote repositories. This class covers the safe ways to use Git to synchronize your work. Today is an activity based on the presentation from the previosu class: Tutorial on Simple Collaborative Workflows found on the course webpage.

In-Class Activity

Today you will do another Git activity. This one is the most advanced to date. It simulates working with a team of contributors to an upstream project. It causes merge conflicts and shows you how to use git fetch, git merge, and git rebase to synchronize your work. The instructions are on GitHub in the repository https://github.com/hunter-college-ossd-fall-2019/git-collaboration-workflow-activity.


Assignment due October 28

  1. Continue the assignment given to you on Monday October 21.
  2. Work on finding issues to fix, or if you have already identified some, work on the issues themselves.

Blog Week 9 (ending 10/30):

There are no new prompts for your blog for week 9. Continue to write up the responses to the prompts from Monday's class.



Day 14. Monday, October 21: A Bit More Advanced Git

Overview: Safe Ways to Use Git

There are good and not so good ways to synchronize local work with remote repositories. This class covers the safe ways to use Git to synchronize your work. The content of this lesson is in the slide presentation Tutorial on Simple Collaborative Workflows found on the course webpage.


Assignment due October 28

  1. If you have not made at least five contributions to OpenStreetMap, complete them before the deadline.
  2. Read this article: https://dri.es/balancing-makers-and-takers-to-scale-and-sustain-open-source which is quite lengthy, and be prepared to discuss and possibly write about it next week.

Blog Week 9 (ending 10/30):

  1. Summarize your impressions about the Eric Raymond's The Cathedral and the Bazaar. In particular, what are the three concepts from that book that most impressed you?
  2. Describe the project you chose to work on, why you have decided to work on it, and write about the progress you are making in selecting an issue that you want to fix in this project.


Day 13. Thursday, October 17: Presentation and Visit by Bill Reyner, Associate Director and Vice President at FactSet

Overview: Our Second Guest Speaker
Bill Reyner, Associate Director and Vice President at FactSet, will discuss Open Source in a corporate setting. He will cover what the firm does, how they use Open Source now, and why they want to expand their engagement with Open Source. He will also discuss some of the challenges with that engagement in a large corporate environment.

Assignment due October 21

There are no additions to the assignment given on Wednesday October 16

Blog Week 8 (ending 10/23):

  1. See the blog request on Wednesday October 16
  2. Write about the visit by Bill Reyner. And do not forget to update your Contribution pages and summarize your weekly work.


Day 12. Wednesday, October 16: Continuing Project Evaluation and Selection

Overview: Finalizing Projects

The entire class is dedicated to exploring the projects that you are considering, and if you have already decided on a project, then to reviewing open issues with the goal of trying to find one on which you will work. Those students who are having trouble selecting projects will use class time to evaluate projects using the guidelines I have written up.

In-Class Activity


Assignment due October 21

  1. Reading for Monday October 21:
  1. Reading for Wednesday October 23:
  1. Make a final decision about the project on which you will work.
  2. Fork and clone the repository of the project, and start to install the development environment that you will need to work on it. There are often problems doing this, so start early and have patience.

Blog Week 8 (ending 10/23):

Chronicle your activities related to the project on which you are going to work. What did you do to install the developmetn environment? What issues are you considering? How are you filtering them? What are you reading? In general, write about the work you are doing on your project.

Write about the visit by Bill Reyner. And do not forget to update your Contribution pages and summarize your weekly work.



Day 11. Thursday, October 10: Project Exploration

Overview: Evaluation of Open Source Projects

The objective of today's class is to get as much experience learning how to evaluate open source projects as possible. You will be grouped into teams and then work on studying a single project.

In-Class Activity

Today you will do a team based project evaluation activity. The instructions are on GitHub in the repository https://github.com/hunter-college-ossd-fall-2019/project-evaluation-activity-01.


Assignment due October 16:

  1. Pick another project, one that is not in the list of projects in the Wiki, i.e., no one evaluated it, and complete the evaluation of that project. Put the file in a private repository in the class organization and name it in the form Github_username_project_evaluation, substituting the name of the project for the word "project" and your GitHub username for the "Github_username".

Blog Week 7 (ending 10/16):

For this week, your goal is to describe the project evaluation that you did. What was hard? what did you learn? Are you interested in the particular project that you evaluated now? What was the hardest task? Do not limit yourself to these questions.



Day 10. Monday, October 7: Internet Relay Chat (IRC) and Project Exploration

Overview: Mixed Bag of Topics
Comments on the visit by Karen Sandler and your "take-aways".
How project communities communicate, including IRC and newer technology.
We will also talk about different ways to find projects and some of the sites that the guides suggested that you look at.

The links below are excerpted from my website's On-line Resources


Assignment due October 9:

  1. Continue the readings assigned last week if you have not yet finished:
  1. Start searching for projects to which you would like to contribute.

Blog Week 6 (ending 10/09):

There are no new requirements for your blog ending this week.



Day 09. Thursday, October 3: Presentation and Visit by Karen Sandler, Executive Director of the Software Freedom Conservancy

Overview: Our First Guest Speaker
Karen Sandler, the executive director of the Software Freedom Conservancy (SFC), will visit the class and talk about software licenses and software freedom.
From the SFC website, https://sfconservancy.org/:

The Software Freedom Conservancy is a not-for-profit charity that helps promote, improve, develop, and defend Free, Libre, and Open Source Software (FLOSS) projects.


Assignment due October 9:

Readings: (There is a significant amount to be read by October 9, so start early.)
  1. Read Section 5 of GitHub's How To Contribute: https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution
  2. Read my instructions and guidance on project evaluation:
    http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/activities_f19/project_evaluation_activity.pdf

Blog Week 6 (ending 10/09):

It is time to start searching for projects. The above readings will help guide you in what to look for in a project.
I will provide suggestions for where and how to look. In this week's blog, write about which projects you looked at, why you rejected them, which are still possible, and which look good to you. Treat your blog like a diary this week. Also comment on the talk by Karen Sandler.


Day 08. Thursday, September 26: Git and the GitHub Workflow

Overview: Git and some practice using the GitHub workflow

In-Class Activity:

The class will be grouped into teams of two or three people. Each team will follow the instructions in Git Workflow Activity-01.


Assignment due October 2:

  1. On-line Readings:
  1. In preparation for the visit by Karen Sandler to our next class on October 3,
    1. Browse the Wikipedia article on Karen Sandler.
    2. Think about questions that you would like to ask her and put a question into the class's wiki page here: Questions for Karen Sandler. Follow the instructions for using the table in it.

Blog Week 5 (ending 10/02):

The article on finding a project to which you can contribute has a great amount of information and advice. It also has links to other webpages that help you in finding projects. Explore these links and comment on which might prove to be useful, and whether they have helped you to narrow down your search.

Make some comments about all of this git and GitHub stuff you learned about this week. Hard? Easy? Confusing? Useful?



Day 07. Monday, September 23: Working on Projects

Overview: Collaborating on Remote Projects

Assignment due 9/25:

  1. The workflow described in the Blog Editing Activity posted on the course website is slightly different from what is described in the above slides. It leaves out some steps. In particular, it leaves out steps that reduce the chance of merge conflicts when you issue a Pull Request.

Make an edit to a classmate's blog post following the procedure described in the Blog Editing Activity. Look for spelling mistakes or grammatical changes, or formatting changes.

In your blog for the week ending 9/25, write what you did and how this procedure is different from the one described in the slides.



Day 06. Thursday, September 19: Workflows and Git

Overview: Collaborating on a Shared Project
* What is a workflow?
* How can you collaborate with others on the same project using a shared remote repository?
* How can you work in Git on your local machine and synchronize your work with collaborators using GitHub?

In-Class Activity:

Everyone will be placed into a team to do a team activity. The link to the GitHub repository containing the instructions is
https://github.com/hunter-college-ossd-fall-2019/git-activity-01.


Assignment due 9/26:

  1. On-line Readings:

  2. Read the Blog Editing Activity posted on the course website. These are the detailed instructions for how you should edit your classmates' blogs. You can find a table that contains everyone's blog repository URLs and the corresponding GitHub Page URLs here:
    https://github.com/hunter-college-ossd-fall-2019/class-wiki/wiki/Blog-URLs

  3. Continue to edit OpenStreetMap if you have time.

Blog Week 4 (ending 9/25):

  1. Comment on your experience with the Git activity that you did in class today. Was it useful? Was it confusing? Did you have time to finish? Did you have merge conflicts? Were you able to resolve them?
  2. What are your reactions to the above on-line readings. Pick one or two that made an impression on you and articulate your thoughts about them.


Day 05. Monday, September 16: Version Control and Git

Overview: An Introduction to version control systems and Git
We address questions such as
• What is a version control system?
• What is Git?
• What is GitHub and how is it different from Git?
• How can you work in Git on your local machine and synchronize your work with copies of it elsewhere, such as on GitHub?

In-Class Activity: Exploring elementary operations on local Git repositories

You will create a repository on your local machine, in the command line, and connect it to a remote repository on GitHub. Then you will make changes in both places and synchronize them.


Assignment due 9/18:

Read the instructions in git-activity-01 which are posted on the course website, but do not do anything. Be prepared to do this activity in class.



Day 04. Thursday, September 12: Beyond Open Source Software

Overview: Open Source software's principles generalized: The Open Source Way
1. An explanation of the Open Source Way:
https://opensource.com/open-source-way
2. Examples of "Open Source" beyond software:
Open data, open hardware, open government, open education
Wikipedia, OpenStreetMap

In-Class Activity: OpenStreetMap Editing

Follow the instructions given in OpenStreetMap Editing Instructions and complete the interactive OpenStreetMap editing tutorial. Then try to complete at least one edit to the map.


Assignment due 09/18:

  1. Read the Getting Started chapter in the Pro Git book, including the section on installing Git, and read the second chapter, Git Basics, up to and including the section, Recording Changes to the Repository.
  2. If Git is not installed on your computing device (e.g., laptop, desktop) then install it there. You can look up how to do this in the Pro Git book or on-line.
  3. Configure Git following the instructions in "First-Time Git Setup" in the Pro Git book.

Blog Week 3 (ending 09/18):

The course web page has links to many on-line resources. Look at this one in particular:

https://www.techrepublic.com/blog/10-things/10-things-you-should-know-about-open-source-before-you-use-it/

Some of the ten statements discussed in this short article are things you might have thought before you took this course, and some you still might not have realized. In your blog for Week 3, write about what you have learned so far with respect to these statements. For example, did you know that it is not always free of cost? Try to be specific and try to give examples.



Day 03. Monday, September 9: What is Open Source Exactly, and How to Contribute to it

Background:
1. History of Open Source software, continued
2. A very brief look at formal definitions of "open source software":
The Open Source Initiative's Open Source Definition
The Free Software Foundation's Free Software Definition
3. The idea of a software license and its relationship to these definitions.
Discussion: What types of licenses did everyone find in their project explorations?
What are everyone's ideas about first-contributions to a project?

Assignment:

Read the Learning the Shell chapter in The Linux Command Line, by William Shotts. Finish this section by Wednesday September 18.

Blog Week 3 (ending 09/18):

There is no specific request for your blog post for the third week. You will be given a subject to write about on Thursday.



Day 02. Thursday, September 5: Overview of Open Source Software

Background: History of Open Source software
A brief overview of the rise of free and open source software, through the 1980's.
Discussion: Getting your feet wet: easy contributions to Open Source software, very briefly
* How to Contribute to Open Source Without Coding

In-Class Activity: An On-line Field Trip to Explore Some Open Source Projects.

In this activity your goal is to select three open source projects that you regularly use and try to find the websites that host their repositories and that also contain information about their licenses. This is a collaborative activity in which you may freely work with a group of classmates to assist each other.

The detailed instructions for this activity are on _GitHub_, in a repository created for each student in the class. The URL of this repository is of the form

https://github.com/hunter-college-ossd-fall-2019/gh_name-proj-exploration-01

where gh_name should be replaced by your _GitHub_ username.

Assignment:

Blog Week 2 (ending 09/11):

Address these two questions in your blog: What types of contributions do you think are suitable choices for you to make as your first contributions to an open source project? What types of projects interest you and how do you see your relationship to them?



Day 01. Thursday, August 29: Course Introduction

Overview Explanation of the structure and content of the course: role of blogs, grading, assessments, assignments, and so on.
Setting Up Everyone creates their _GitHub_, OpenStreetMap, and Wikipedia accounts in class, and they update the Etherpads:
* Etherpad for _GitHub_ Names
* Etherpad for OpenStreetMap Names
* Etherpad for Wikipedia Names
Discussion What is Open Source all about?
A short video:
* What is Open Source

Assignment:

Blog Week 1 (ending 09/04):


Valid CSS! Valid HTML 4.01 Transitional