Contents

  1. Thursday, May 21
  2. Thursday, May 14
  3. Monday, May 11
  4. Thursday, May 7
  5. Monday, May 4
  6. Monday, April 27
  7. Thursday, April 23
  8. Monday, April 20
  9. Thursday, April 16
  10. Monday, April 13
  11. Monday, April 6
  12. Thursday, April 2
  13. Thursday, March 26
  14. Monday, March 23
  15. Thursday, March 19
  16. Monday, March 9
  17. Thursday, March 5
  18. Monday, March 2
  19. Thursday, February 27
  20. Monday, February 24
  21. Thursday, February 20
  22. Thursday, February 13
  23. Monday, February 10
  24. Thursday, February 6
  25. Monday, February 3
  26. Thursday, January 30
  27. 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):



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):



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:

Blog Prompt for Week 13 (week ending 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:

  1. Prepare for an assessment on Thursday May 7 on Linux command line covered in the tutorial.
  2. 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:

  1. Prepare for an assessment on Monday May 4 on Linux command line covered in the tutorial.
  2. 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):

  1. Write your comments about Tom Callaway's blog post.
  2. Would you want to work in a company that only produced open source software?
  3. 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:

Blog Prompt for Week 11 (week ending April 26):



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:

Blog Prompt for Week 11 (week ending April 26):



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:

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):



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:

$ 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):



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):



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:

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:

  1. Make two more contributions of any size to Wikipedia, and document them in your Contributions page, with appropriate links.
  2. Read The Cathedral and the Bazaar

Blog Prompt for Week 10 (week ending April 19):



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:

  1. Make two more contributions of any size to Wikipedia, and document them in your Contributions page, with appropriate links.
  2. 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):



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:

  1. 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.
  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 on the Intellectual Property Rights page in the course website:
    About Licenses

Blog Prompt for Week 9 (week ending March 29):



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:

Blog Prompt for Week 8 (week ending March 22):



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:

Blog Prompt for Week 7 (week ending March 15):



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:

Blog Prompt for Week 6 (week ending March 8):



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):



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:

Blog Prompt for Week 5 (week ending March 1):



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:

Blog Prompt for Week 5 (week ending March 1):



Thursday, February 20: Project Evaluation

Overview Diving into Project Evaluation: A Lesson and Activity
Business Questions about Blog Editing: Q & A
Lesson Guidance on Project Evaluation slides:
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/slides/project_evaluation.html
Activity The class will be divided into three groups and the different groups will look at
Inkscape: https://inkscape.org/
Jupyter : https://jupyter.org/
Godot : https://godotengine.org/

Assignment due by the end of February 23:

Blog Prompt for Week 4 (week ending February 23):

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

Overview Wrap-up basic Git activity, project anatomy; present collaboration workflows and OpenStreetMap
Activity We complete the last steps in the Git activity:
https://github.com/hunter-college-ossd-spr-2020/make-me-laugh
Lesson Basic Collaboration Workflow slides:
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/slides/github-workflow-presentation.pdf
Activity/Lesson Finish project anatomy started on Feb. 6: we will look at projects hosted on GitLab and SourceForge.
Discussion If time permits, we will discuss OpenStreetMap editing as needed.

Assignment due by the end of February 17:

Blog Prompt for Week 3 (week ending February 16):



Monday, February 10: Basic Git Lesson

Overview An Introduction to Version Control and to Git
Lecture Version Control Slides:
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/slides/anatomy_project.html
Activity Everyone will do a simple activity in which a repository is forked, cloned, modified locally, interacting with the remotes while working.
The repository and instructions are on GitHub:
https://github.com/hunter-college-ossd-spr-2020/make-me-laugh

Assignment due by the end of February 17:

Blog Prompt for Week 3 (week ending February 16):

Write your answers to these two questions as bulleted lists.



Thursday, February 6: Anatomy of FOSS Projects

Overview An In-Depth View of the Anatomy of FOSS Projects
Lecture Project Anatomy Slides:
http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci395.86/slides/anatomy_project.html
Activity We will look at various software applications and try to identify the elements of their anatomy.
In particular we will look at some projects hosted on GitHub, GitLab, and SourceForge.
Slides to illustrate

Assignment due by the end of February 9:

Blog Prompt for Week 2 (week ending February 9):



Monday, February 3: Structure of an Open Source Project

Overview Hands-on Introduction to Project Anatomy by Adding Extensions to Firefox
Activity You will work in teams to create two simple extensions to the Firefox browser.
The assignment of students to teams is in a page in the class wiki here:
https://github.com/hunter-college-ossd-spr-2020/class-wiki/wiki/add-on-teams.
The instructions for the assignment are on GitHub in the repository
https://github.com/hunter-college-ossd-spr-2020/firefox-addon-activity.

Assignment due by February 6:

Blog Prompt for Week 2 (week ending February 9):

Valid CSS! Valid HTML 4.01 Transitional