Contents
- Thursday, May 21
- Thursday, May 14
- Monday, May 11
- Thursday, May 7
- Monday, May 4
- Monday, April 27
- Thursday, April 23
- Monday, April 20
- Thursday, April 16
- Monday, April 13
- Monday, April 6
- Thursday, April 2
- Thursday, March 26
- Monday, March 23
- Thursday, March 19
- Monday, March 9
- Thursday, March 5
- Monday, March 2
- Thursday, February 27
- Monday, February 24
- Thursday, February 20
- Thursday, February 13
- Monday, February 10
- Thursday, February 6
- Monday, February 3
- Thursday, January 30
- Monday, January 27
Thursday, May 21: Last Final Presentations
Overview: |
Two teams do their presentations: |
|
11:30 - 12:06 : |
Boubacar, Daniel, Jessica |
OpenCV |
12:10 - 12:58 : |
ChiShing, Liulan, Michelle, Shania |
Next.js |
Thursday, May 14: More Final Presentations
Overview: |
Two teams do their presentations: |
9:45 - 10:21 : |
Caitlin, Edmund, Elijah |
10:24 - 11:00 : |
Christina, Gillian, Maite |
Assignment:
Blog Prompt for Week 14 (week ending May 17):
- You are not required to write the Week 14 blog, but if you choose to do so, consider this final question: Look back at what you wrote in that first week of class. Do you think this class turned out how you expected?
Monday, May 11: More Final Presentations
Overview: |
Two teams do their presentations: |
9:45 - 10:21 : |
Keisuke, Matthew, Umar Inkscape |
10:24 - 11:00 : |
Chris, Mohammed, Steven Godot Engine |
Assignment:
Blog Prompt for Week 14 (week ending May 17):
- You are not required to write the Week 14 blog, but if you choose to do so, consider this final question: Look back at what you wrote in that first week of class. Do you think this class turned out how you expected?
Thursday, May 7: An Assessment and Final Presentations
Overview: |
Class starts with a short assessment and then there are presentations |
Presenting today at 10:10 AM: |
Denise, Erick, Jared, Troy on their work on freeCodeCamp |
Assignment due by the end of May 6:
- Prepare your final presentations.
Blog Prompt for Week 13 (week ending May 10):
- Nothing new is added to the blog prompt due on May 10.
Monday, May 4: Linux Filters and Scripting
Overview: |
Selected topics in the use of Linux Filters with Hands-on Activity |
Lecture: |
I will go over some of the most useful and important filters to improve your productivity in Linux. |
Activity |
There will be selected exercises that will accompany the lesson, using various large datasets that can be found in the GitHub repository |
|
https://github.com/stewartweiss/linux_activity_files and cloned into |
|
/data/biocs/b/student.accounts/cs395.86/data/linux_activity_files |
Assignment due by the end of May 6:
- Prepare for an assessment on Thursday May 7 on Linux command line covered in the tutorial.
- Prepare your final presentations.
Blog Prompt for Week 13 (week ending May 10):
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 13, 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.
Monday, April 27: Software Licenses, Copyrights and Patents
Overview: |
Features of open source licenses, deciding which to use, applying them, |
Lecture: |
We discuss Tom Callaway's presentation, and the various pages you have been asked to read about open source licenses. |
Assignment due by the end of May 3:
- Prepare for an assessment on Monday May 4 on Linux command line covered in the tutorial.
- Read the article by Tom Callaway about business models in open source, Musings on Open Source Software Business Models.
Blog Prompt for Week 12 (week ending May 3):
- Write your comments about Tom Callaway's blog post.
- Would you want to work in a company that only produced open source software?
- 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.
Thursday, April 23: More Linux Command Line
Overview: |
A second lesson in Linux command line with a hands-on activity |
Lecture: |
We continue the set of slides Linux Command Line Tutorial |
Activity: |
The slides will be complemented by exercises that you will do on the Computer Science Department's Unix system. |
|
Details will be given during class. |
Assignment due by the end of April 26:
- This site: Open Source Licenses has a short summary of six major licenses. You will be asked questions about these licenses on Monday April 27, so be prepared to answer them.
Blog Prompt for Week 11 (week ending April 26):
- Numerous open source projects have started to help track the Covid-19 pandemic, provide helpful datasets, and more. One of these is hosted on GitHub: 2019 Novel Coronavirus COVID-19 (2019-nCoV) Data Repository by Johns Hopkins CSSE. This is an open data project - there is no code. Visit the GitHub repository. Does this seem like a project to which you might be able to contribute? Would you contribute if you had time?
Monday, April 20: Our Third Guest Speaker
Overview: |
Vicky Brasseur, former Vice President of the Open Source Initiative, will speak about the free and open source movement. |
Vicky Brasseur speaks extensively about open source, and is the author of the book, Forge Your Future with Open Source, which details how to contribute to free and open source software projects. We are privileged to have her as our guest speaker.
Assignment due by the end of April 26:
- Watch Tom Callaway's presentation Understanding FOSS licenses (without a lawyer) about patents and licenses. Tom Callaway was for many years RedHat's educational institution liaison, until IBM bought RedHat. Be prepared to summarize what Tom has to say about licenses and patents.
Blog Prompt for Week 11 (week ending April 26):
- What are your reactions to the talk by Vicky Brasseur? Write your comments.
- In case you were not aware of it, Code.gov is the U.S. Government's portal to the open source projects maintained by the federal government. Visit this site and then visit the Explore Open Tasks pages. Are there tasks or issues that interest you? Find the GitHub repositories and see whether there are ways to contribute. How do you feel about the government's initiative?
Thursday, April 16: Working in the Linux Command Line
Overview: |
A lesson in Linux command line with a hands-on activity |
Lecture: |
We start the set of slides Linux Command Line Tutorial |
Activity: |
The slides will be complented by exercises that you will do on the Computer Science Department's Unix system. |
|
Details will be given during class. |
Assignment due by the end of April 19:
- Our third guest speaker will be Vicky Brasseur, author of the book, Forge Your Future with Open Source, the first book to detail how to contribute to free and open source software projects, and a former Vice President of the Open Source Initiative.
In preparation for her visit, as with the other speakers, you are to add questions to the Wiki page.
Blog Prompt for Week 10 (week ending April 19):
- Nothing more is added to the blog prompt for Week 10.
Monday, April 13: Team Presentations and The Cathedral and the Bazaar
Overview: |
Team presentations, followed by a discussion of the Cathedral and the Bazaar |
Activity: |
Teams that did not present on April 6 will do their presentations today: |
|
FreeCodeCamp, Zulip, and Godot |
|
Each team member will describe the issues that he or she is working on, with details, and what progress has been made. |
Discussion: |
The Cathedral and the Bazaar was written by Eric Raymond and first presented to the Linux Kongress in 1997. It is now fundamental to an understanding of how open source software is developed. |
Assignment due by the end of April 15:
- If you have not already done so, login to
eniac
, then to any cslab
host and then navigate to the class directory:
$ cd /data/biocs/b/student.accounts/cs395.86/scratch
Inside that directory, read the README
file and create your username_stuff
directory there according to the instructions in that README
file. If you had already created it, then remove any contents that were there before so that it is conpletely empty.
Convert the directory that you created into a Git repository. If you have not set up Git credentials on the system, then create your Git username, email and whatever other parts of the global configuration that you want.
Create a file named ABOUT
that contains your name and the date that you created it, and create a file named LICENSE
with a copy of an open source software license in it.
Put both of these files under Git's control.
Blog Prompt for Week 10 (week ending April 19):
- Continue to chronicle your progress on the issue(s) you have chosen to work on.
- Read Folding@Home's Covid19 Activity and write your thoughts about what they are doing.
Monday, April 6: Our Second Guest Speaker
Overview: |
Gil Yehuda, Senior Director of Technology Strategy, Verizon |
Gil Yehuda will talk about the evolution of open source, particularly with how its relationship with the proproetary software industry changed. He will also talk about the complexities of that relationship now, particularly about how companies use open source in various ways towards the betterment of their financial outcomes.
He will also give you some concrete advice about how to leverage open source work to get a job, i.e., to be paid a full-time salary and work on open source projects all day! Not bad for those who are true open source advocates.
Assignment due by the end of April 12:
Blog Prompt for Week 10 (week ending April 19):
- This is a reminder to write about the visit to class by Gil Yehuda - what impressed you the most and why?
Thursday, April 2: Work on Project Contributions
Overview: |
Summary of Rest of Semester; Team Work, and Presentations |
Summary: |
I will spend the beginning of the class summarizing the changes in the planned syllabus for the next few weeks. |
Activity: |
Teams will work for about 20 minutes in break-out rooms in Zoom to collaborate on their contributions. |
|
Afterward, each team member will take part in a presentation to the class about the issues that he or she is working on, with details. |
Assignment due by the end of April 5:
Gil Yehuda will be visiting our class on Monday April 6. He will talk about:
- the evolution of the open source movement and how companies that used to be worried about open source are now leading the open source movement, and
- how companies use open source program offices to manage their concerns about open source, enable the intrinsic benefits of open source, and position themselves toward better financial outcomes because of open source.
He will also give you specific and actionable advice about how to leverage open source work to get a job -- to be paid a full time salary and work on open source projects all day.
There is a page in the class wiki to propose questions to ask Gil here: Questions for Gil Yehuda. Add a question to it and rank the other questions.
Assignment due by the end of April 8:
- Make two more contributions of any size to Wikipedia, and document them in your Contributions page, with appropriate links.
- Read The Cathedral and the Bazaar
Blog Prompt for Week 10 (week ending April 19):
- Note that the week numbers and end dates of the weekly blog posts are different than they were when the semester started because of the change in the college's schedule and the missed classes. Week 10 ends on April 19. After that the numbers are back on the same calendar days.
- Write about the visit to class by Gil Yehuda.
- Continue to chronicle your progress on the issue(s) you are working on.
Thursday, March 26: Our First 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 the end of April 1:
- Make two more contributions of any size to Wikipedia, and document them in your Contributions page, with appropriate links.
- Be prepared to do a brief presentation in class about the issues that you have selected to work on. This includes what you have done and what you plan to do, as well as what you need to overcome. Be prepared with details.
Blog Prompt for Week 9 (week ending March 29):
- Write about the visit by Kevin Fleming. What did you learn? What was unexpected?
- Continue to chronicle your progress on the issue(s) you are working on.
Monday, March 23: More About Git Workflows; Project Teams Work in Groups
Overview |
A lesson about working with remotes, then teams work in groups and report out. |
|
|
Lecture |
We begin with a presentation about working with remote repositories the safe way, using the slides Collaborating Workflows. |
|
To be able to follow and practice, make sure that you can login to the department network and pick any host, such as cslab12 . Then make /data/biocs/b/student.accounts/cs395.86/scratch your current working directory. Everyone can create files in that directory that only they can delete. (It has its "sticky bit" set.) |
Activity |
After the presentation, teams will go into breakout rooms to work on their issues. Each team will give a 5-minute report-out to the class, using visuals as needed. The presenter can share their files using Blackboard Collaborate. |
Assignment due by the end of March 25:
- Kevin Fleming, member of the CTO Office at Bloomberg LP, is visiting our class on Thursday, March 26. There is a page in our organization's wiki to which you can add questions: Questions-for-Kevin-Fleming.
- 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 on the Intellectual Property Rights page in the course website:
About Licenses
Blog Prompt for Week 9 (week ending March 29):
- Write about what you found, or what you discovered and what was hard while investigating Wikipedia's pages.
- Read Why to Report Bugs and comment about it.
Thursday, March 19: An Assessment on Git and Lesson on Open Encyclopedias
Overview |
Our New Way of Meeting, An Assessment, and Open Encyclopedias |
|
|
|
Discussion about how we go forward from here. There is much to discuss. |
Assessment |
We will have a ten-minute quiz as planned originally, on Gradescope from 10:00 to 10:10 A.M. Everyone will need to login to Gradescope during class to take the quiz. |
Lecture |
Slides on The Largest Open Source Project in the World: Open encyclopedias |
|
|
Assignment due by the end of March 25:
- Make edits to two different Wikipedia pages. Put the links to the edits in your Contributions page. Use this week to catch up on your blog edits and OSM edits if you are behind in them. You need at least five blog edits. Make them substantial - when I read many posts I see so many things that need correction.
Blog Prompt for Week 8 (week ending March 22):
- Continue to chronicle your activities related to the project on which you are now working, in detail. Treat the blog as its name's derivation implies.
- This week has been eventful, and it has greatly impacted everyone's lives. For you as students it has a different impact than it does for others, and it has an impact on our plans for this course. Write about how it has changed things for you, and as an interesting exercise, write how you think the situation will be in four weeks and in eight weeks.
Monday, March 9: Some Git, then Open Encyclopedias
Overview |
Finishing up slides on Branches, Merging and Rebasing followed by a look at Open Encyclopedias |
|
|
Lecture |
We continue the slide set Merging and Rebasing |
|
We will have a lesson about open encyclopedias entitled: The Largest Open Source Project in the World |
|
Open encyclopedias |
|
|
Assignment due by the end of March 11:
- 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. If you are interested to read about them start with Help:Talk.
- 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.
Blog Prompt for Week 7 (week ending March 15):
- Continue to chronicle your activities related to the project on which you are now working, in detail. Treat the blog as its name's derivation implies.
- Read this article: Open Source is Not About You and comment about it.
Thursday, March 5: Working with Branches in Git
Overview |
A Lesson and Activity in Managing Branches |
|
|
Lecture |
We begin with the slide set Merging and Rebasing |
Activity |
Everyone will do an individual activity designed to demonstrate the principles underlying branch management, merging, and rebasing. |
|
|
Assignment due by the end of March 11:
- Prepare for an assessment: On March 12, there will be a short (10 minute) assessment of your Git knowledge as well as questions about project anatomy and structure.
- Read GitHub's guide, Creating a pull request
Blog Prompt for Week 6 (week ending March 8):
- Continue to chronicle your activities related to the project on which you are now working, in detail. Treat the blog as its name's derivation implies (it derives from web log), a journal written on-line, like a ship's log. What have you done to install the development environment? What issues are you considering? There should be dates, times, links to relevant files and web pages etc.
Monday, March 2: Even More Project Evaluation
Overview |
More Project Evaluation |
|
|
Activity |
The class will evaluate the few remaining projects in the list of projects that have not been evaluated, and any others that anyone wants to consider. |
Discussion |
We will try to solve the installation problems reported by students who could not install based on instructions, and teams will discuss projects to work on. |
|
The objective is that, by the end of class, teams will select projects to work on for the rest of the semester. |
Assignment due by the end of March 1:
Blog Prompt for Week 6 (week ending March 8):
- Chronicle your activities related to the project on which you are going to work. What have you done to install the development environment? What issues are you considering? How are you filtering them? What else are you reading? In general, write about everything you are doing relevant to your project.
Thursday, February 27: Continuing Project Evaluation
Overview |
Assessment, Followed by Project Evaluation |
|
|
Assessment |
The class begins with a ten minute assessment. |
Activity |
We continue to evaluate projects. The class wiki page Project-Evaluation has been updated with more projects to be evaluated. |
|
In class we will form two-person teams and divide up the projects among the teams. The instructions from Monday in project-evaluation are to be used again, however, all team members are required to install the project on their local machines following the instructions from the project and report on whether they were successful and try to resolve any issues. |
|
Whatever is not finished in class is assigned as graded homework, details below. |
Assignment due by the end of March 1:
- Everyone individually must complete evaluation of the project assigned to you in class, following the same instructions that were used for the in-class activity. You must (1) complete the evaluation, (2) add the entry to the class wiki, and (3) submit the pull request before 10:00 P.M. on March 1. The evaluation must include detailed results about the outcome of the installation process. The objective is to have the full set of project evaluations completed and in the repository before class on March 2.
Blog Prompt for Week 5 (week ending March 1):
- It is time to create a short list of project preferences. Last week you narrowed down your choices and made suggestions about projects. Taking everything into account, including the full list of projects in the Wiki, the evaluations that have been performed, and your lists compiled for the taking stock activity, rank the top three on which you are willing to work.
Monday, February 24: Project Evaluation Activity
Overview |
Project Evaluation Activity |
|
|
Activity |
The entire class session will be spent doing an activity in project evaluation. The class will be divided into teams of two or three people. |
|
The activity instructions are in a GitHub repository named |
|
project-evaluation |
Assignment due by the end of March 1:
- Continue contributing to your classmates' blogs using the workflow in the blog editing assignment instructions.
- If there are projects that you want to work on, add them to the list of projects in the class wiki Project Suggestions
- Prepare for a quiz on Git essentials to be given on Thursday February 27.
Blog Prompt for Week 5 (week ending March 1):
- Comment on the project evaluation that you did in class. 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.
- From the current set of projects listed in the wiki, including those added by your classmates, which is your first choice to work on?
- Remember to chronicle what else you are up to.
Thursday, February 20: Project Evaluation
Assignment due by the end of February 23:
- Start to contribute to your classmates' blogs using the workflow in the blog editing assignment instructions.
- Read the project evaluation activity on the website:
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/activities_s20/project_evaluation_activity.pdf
and be prepared to do this on Monday in a team.
- In the blog for Week 3, you created two lists, one of your interests, and one of your skills.
Go back to the
taking_stock
repository, which you will see has been updated and now contains
two new empty files and instructions for what to do with them. Copy your lists to these files as
indicated in the README.md
file there.
Blog Prompt for Week 4 (week ending February 23):
- This one is short. Although I will assign projects to teams, the set of projects will be partially determined by the general interest, subject to my veto power. So,...
it is time to start searching for projects. The work we have done 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, which you eliminated and why, which are still candidates, and which look promising to you. * Remember to chronicle what else you are up to.
Thursday, February 13: Tidying Up Loose Ends
Assignment due by the end of February 17:
Blog Prompt for Week 3 (week ending February 16):
- Nothing new is added to the blog prompt for this week, but remember that your blog posts must contain a section about what you have been doing related to open source outside of class and updating the
Contributions
section of your blog. And if your About
section is inadequate, then expand it.
Monday, February 10: Basic Git Lesson
Assignment due by the end of February 17:
Blog Prompt for Week 3 (week ending February 16):
- In previous blog posts, you wrote about your goals, and how you think working in a FOSS project might benefit you. Now answer the following two questions,
- What skills do I have that would be useful for contributing to a FOSS project, and
- What things are the most interesting to me? I.e., what do I enjoy doing?
Write your answers to these two questions as bulleted lists.
Thursday, February 6: Anatomy of FOSS Projects
Assignment due by the end of February 9:
- Read the Getting Started chapter in the Pro Git book, and read the second chapter, Git Basics, up to and including the section, Recording Changes to the Repository. This is in preparation for our lesson on Git next week.
Blog Prompt for Week 2 (week ending February 9):
- Nothing more is asked of you for the blog ending Week 2.
Monday, February 3: Structure of an Open Source Project
Assignment due by February 6:
- If you do not complete Part 5 of the Firefox-Add-on-activity then complete it before the class on Thursday February 6. This implies that you will work with your team members to finish this.
Blog Prompt for Week 2 (week ending February 9):
- Write down the various ways that you would like to contribute to one or more open source projects during the course of this semester.
- How does working in Open Source benefit you other than giving you the satisfaction of making a contribution to a project? Consider the following possible categories,
and for each, jot down specific benefits that you can think of in that category.
- FOSS Benefits to Your Skills
- Communication, collaboration, tools, best practices, technologies
- FOSS Benefits to Your Career
- FOSS Benefits to Your Personal Network
- Benefits from Preparation
Thursday, January 30: The Foundations of Open Source Software
Assignment due February 2:
- Read the webpage How to Contribute to Open Source Without Coding and be prepared to talk or write about the ways you would like to contribute during the course of this semester.
- The first blog prompt asked you to write about why you chose to take a course in open source software. Now think long and hard about the question,
"What do I want to get out of this?"
A private repository has been created for you on GitHub in the class organization,
in order for you to write your answer to this question.
If your GitHub username is gh_name, the repository's name is
gh_name-taking_stock
and its URL is
https://github.com/hunter-college-ossd-spr-2020/gh_name-taking_stock
For this assignment, read the README.md
file in that repository
and write down your goals as described in that file.
Blog Prompt for Week 1 (week ending February 2):
- Nothing more is asked of you for the blog ending Week 1.
Monday, January 27: Course Introduction
Assignment due January 28:
- If you did not complete them in class, create all accounts and update etherpads by the end of January 28.
Blog Prompt for Week 1 (week ending February 2):
- Set up blogs before January 30.
- Write your first blog entry about why you decided to take a course in open source software.