CSCI-UA 480 (Open Source Software Development)

Date
Material Covered, Notes, Handouts and Links
Assignments, Homework

Friday,
May 15

this is a different day and time than usual classes: 2:00-3:50pm

Project presentations:

Class #28
Mon, 5/11

Project presentations:

Class #27
Wed, 5/06

Project presentations:

Class #26
Mon, 5/04

Project presentations:

Class #25
Wed, 4/29

Tentative: 'bash' and command line tools with Stewart Weiss

class canceled

Class #24
Mon, 4/27

Group stand-up reports (~5 minutes each - and we have to keep to the time)

  • provide update on your interactions with the community
  • provide update on contributions you made
  • what you hope/expect to accomplish in the next 1-2 weeks
  • list the presentation dates in order of preference (You should, if possible, have your camera on so we can see the people who are talking. Make sure that the talking is distributed between group members and that it is organized - you should not be interrupting one another. Do not use slides or share screen for this one - save it for the actual presentations.)

Class #23
Wed, 4/22

Business models centered around open source projects.

slides

Class #22
Mon, 4/20

Finish discussion about HFOSS and projects for social good.

As soon as possible (but needs to be updated regularly): Create a wiki page for your group project. The page should contain the following information:

  • name of the project with links to their official website and their software repositories
  • names and github names of the members of your team
  • list of all contributions you have made so far (update this list as you make progress)
    • types of contributions: issue reports, comments on existing issues, pull requests
    • for each contribution briefly describe what it was and what you did, indicate who in your group was working on it, mention any issues or problems you run into

Due by the end of the week (Apr. 26):

  • make your weekly blog post

Ongoing:

  • continue working with your group
  • continue making your individual contributions

Class #21
Wed, 4/15

Continue discussion about Open Efforts regarding COVID 19

Humanitarian Free and Open Source (HFOSS) projects and projects for social good.
slides

Class #20
Mon, 4/13

Group stand-up reports (last three groups)

Open Efforts regarding COVID 19
shared pad for todays' class

Due by the end of the week (Apr. 19):

  • make your weekly blog post

Ongoing:

  • continue working with your group
  • continue making your individual contributions

Class #19
Wed, 4/08

Group stand-up reports (~5 minutes each)

  • which project you are working on?
  • what is the project (assume other people never heard of it)?
  • why did you pick this project?
  • describe your interactions with the community so far
  • describe the progress you made so far (You can share the screen, if you wish to show your materials, but you do not have to. You should, if possible, have you camera on so we can see the people who are talking. Make sure that the talking is distributed between group members and that it is organized - you should not be interrupting one another.)

Class #18
Mon, 4/06

Finish discussing lessons from The Cathedral and The Bazaar by Eric Raymond

Open Encyclopedia discussion.

Due by Apr 8:

  • get ready for your group stand-up reports

Due by the end of Saturday (Apr. 11):

  • research open efforts in the area of COVID-19 pandemic
  • add links to the resources you find to the wiki page in the course organization
  • be ready to discuss your findings in class on Monday, Apr. 13

Due by the end of the week (Apr. 12):

  • make your week 10 blog post: talk about what you thought of the other groups' stand-up reports, talk about your own group project progress and your personal experience working with the group and the project; talk about your experiences with contributing to Wikipedia and/or about the role that Wikipedia plays in your life/education/research/…

Class #17
Wed, 4/01

Invited speaker: Gil Yehuda, Linkedin, Sr. Director of Technology Strategy at Open Source Program Office at Yahoo –> Oath - -> Verizon Media

Class #16
Mon, 3/30

Lessons from The Cathedral and The Bazaar by Eric Raymond

slides

Class #15
Wed, 3/25

Finish (or really try to start again) with Rebase Group Exercise

Open Encyclopedia discussion. (did not get to it)

Class #14
Mon, 3/23

Planning each group meetings with Joanna

Working with git branches and rebasing - continued

Rebase Group Exercise

Visualizing working with branches

Due by March 28:

  • Register for Zoom with your NYU credentials (simply log into Zoom at https://nyu.zoom.us/ using the SSO (single sign-on option))

As soon as possible, but make sure that you consult with all your group members:

  • schedule your group meeting with JK (info about available appointments on NYU Classes)

Due by the end of the week (March 29):

  • make your week 8 blog post: there are a lot of things to reflect on these days, but try to also talk about your group project progress and your personal experience working with the group and the project
  • readings in preparation for discussions next week: The Cathedral and the Bazaar by Eric S. Raymond (you should be reading the essay titled The Cathedral and the Bazaar in this book, the second link is a direct link to the XHTML format of that essay, there are other formats available at the book site at the first link)

3/16-3/22

Spring Break

Class #13
Wed, 3/11

First remote class.

Project groups. Meeting your team members. Picking the project.

Class #12
Mon, 3/09

Meging vs. rebasing: how to integrate content from other branches into your development branch.

slides

Class #11
Wed, 3/04

Project evaluation, part 2.

slides

Class #10
Mon, 3/02

Invited speaker: Vicky Steeves

Due by next class (March 4):

  • complete project evaluation for your assigned project (project assignments sent on Slack) - some of these projects have multiple repositories, pick one of them (something that seems to the be core repository or the main repository) and indicate which one you picked in your evaluation
  • pick another project that you think is interesting (this should be something that you are excited about, something that you think you may want to be working on, something that matches your goals and skills as you outlined them in the taking_stock exercise; it also should NOT be one of the projects assigned in the first part of this exercise)

Start in class on Wednesday and complete by Friday (March 6):

Due by the end of the week (March 8):

  • make your week 6 blog post reflecting on the invited talk and project evaluations; do you think there is a specific project or two that you might want to work on?

Class #9
Wed, 2/26

Invited speaker: Kevin P. Fleming, Linkedin

Topic: how/why Bloomberg uses and contributes to open source.

Class #8
Mon, 2/24

Project evaluation or what to look for in a potential project.

Due as soon as possible (but definitely by the end of Tuesday):

  • add a question for Kevin P. Fleming, Linkedin to the course wiki
    • add your own question, and enter a number 1 next to it
    • read through existing questions, and up-vote the questions you like (replace the number next to them with a number one higher
    • go back to the page Wednesday morning to cast your vote on additional questions if you like them

Due by the end of the week (Mar. 1):

  • reflect on your goals for open source contributions, your skills and your interests in the taking_stock repository in the course organization (you should see your own private repository for this)
  • make your week 5 blog post
    • reflect on the project evaluations that were completed in class: what did you learn? what was challenging and why? do you think you are ready to select a project to contribute to?
    • reflect on the invited talk: what did you learn? what was surprising/unexpected? what was interesting? did your view of the interaction of open source projects and large companies change?
    • comment on your contributions (make sure that you are recording them in the contributions page on your blog)

Class #7
Wed, 2/19

Invited speaker: Deena Engel (slides) and Vicky Steeves (slides).

Topic: Open Data

Mon, 2/17

President's Day.
No classes scheduled.

Class #6
Wed, 2/12

Presentations of the Firefox add-ons projects.

Class #5
Mon, 2/10

Version control systems and Git. slides

Introduction to Git activity slides

Readings:

  • the first two chapters in ProGit book

Due immediately:

  • One person from each team should make a post in the browser-extension-presentations channel in the Slack workspace. The post should follow this format:
    Team TeamNumber, [Extension Name](link to the GitHub repo)

Due by the end of the week (Feb 16):

  • make a blog post for this week addressing at least some of the following:
    • comment about your group work on the browser extension
    • what have you learned from working with your group on the browser extension activity about collaborating with other people
    • comment on new things you learned (tools, features of tools that you were not familiar with, etc) or learned about yourself (skills you realized you have, team work preferences and style, etc.)
    • comment on projects/presentations that other groups completed
  • add a question for Deena Engel and Vicky Steeves, to the course wiki
    • add your own question, and enter a number 1 next to it
    • read through existing questions, and up-vote the questions you like (replace the number next to them with a number one higher
    • go back to the page towards the end of the week to cast your vote on additional questions if you like them

Sun, 2/9

Last day to drop classes without W.

Class #4
Wed, 2/05

Anatomy of a FOSS project, slides

Contributions you should be working on, slides

Code of conduct, samples:

Class #3
Mon, 2/03

Create your first open source project (at least, in this class).

Find your team members and make sure you are sitting together so that you can work together.

The instructions for the activity are at Browser Add-on Activity repository.

You should keep a Slack live-log during this activity.

  • Create a channel in the course workspace on Slack.
  • Invite all group members to the channel.
  • Invite your instructor to the channel.
  • Log your progress as you complete different parts of the activity. (But do not duplicate the answers that you are providing elsewhere.) There should be regular entries in the log. You should no be just summarizing what you did at the very end.

A sample live log is shown in the "sample-live-log" channel in Slack workspace for the class. You can also see its transcript.

Readings:

Due by as soon as possible:

  • If you did not complete the in-class activity, work with your team members to finish it (up to and including Part 5). Keep a live-log to document that meeting (continue in the same channel as you were working with in class.)

Due by the end of the week (Feb 9):

  • make a blog post for this week addressing at least some of the following:
    • comment about your group work on the browser extension
    • describe your own contributions to your team's efforts of building your browser extension
    • describe the state of your browser extension project: what progress your team made, what problems you encountered, will you have a working product by the due date
    • comment on new things you learned (tools, features of tools that you were not familiar with, etc) or learned about yourself (skills you realized you have, team work preferences and style, etc.)
  • Read the Getting Started section of the MDN Browser Extensions.

Due by the end of 2/11:

  • With your team members, work on the code of your proposed browser extension (make sure that this is a team work with all team members making contributions - keep in mind that individual commits made to the repository are tagged with your username so it is easy for us to identify who is working on what and when)
    Note: you may need to revise your original vision of what this extension will do.
    Keep a live-log of each session when the team meets to work together.
    Each team will present their extension in class on Feb. 12.

Class #2
Wed, 1/29

Class #1
Mon, 1/27

Intro to the class.

Course logistics

Materials:

  • Videos:
    • Open Source Basics by Intel Software
      A simple explanation of how open source projects manage change as well as the structure, roles, and terminology of open source software.
    • How to jump start your career in open source by Eric D. Schabell, Red Hat, All Things Open 2018.
      Very briefly talks about the main idea in open source.
  • Markdown
  • Blogging. If you have never written a blog or are looking for ideas on what makes good blog posts, some good advice on writing effective blog entries can be found at:
    • Effective Academic Blogging from the Writer's Web at the University of Richmond Writing Center.
    • Blogs from The Writing Center at UNC-Chapel Hill.
    • Writing a Blog workshop video from the Indiana University of Pennsylvania (IUP) Writing Center.

    There is no shortage of other advice, just google "How to write a blog" and find something that resonates with you and matches the goals of the course.

Due immediately:

Due by next class (Wednesday):

Due by the end of the week (Sunday, 2/2/):

  • install a recent version of Firefox on your computer (if not there already)
  • make your first post
    • in the _posts directory, edit 2019-02-02-week01.md file to update your first weekly blog post
    • title the post "Week 1: … " in which you replace … with your own title (the week numbering will make it easier to keep track of posts later in the semester)
    • address the following points in your post (keep in mind that your blog post should be just prose, not a Q&A for the prompts below)
      • open source (what do YOU think about when you hear the term "open source"? what are some advantages of open vs. closed source, what are some potential problems with open source, why did you decide to register for a class about open source software development?)
      • projects: briefly talk about four open source projects that you regularly use or that influenced you in some way in the past (note, the projects do not have to be source code based) (Keep in mind that these blogs are publicly available to anybody who stumbles upon them. Make sure that the posts are appropriate.)

    HINT: look at your blog page after you are done editing to make sure it has the correct content and that the text is formatted the way you intended it to be. Your blog page is at https://nyu-ossd-s20.github.io/YOUR_USER_NAME-weekly/ (after you replace YOUR_USER_NAME with your actual username, of course).