CSCI-UA 480 (Open Source Software Development, Sp 2024)



Week 16

Lecture 1

Group project presentations:

  • Teammates
  • Oppia
  • Pandas

Assignments

  • Complete your final reflections by the end of the day on May 13.

  • Continue making blog posts, if you enjoyed this experience.

  • Continue to contribute to open source projects.

Week 15

Lecture 1

Group project presentations:

  • Bitwarden
  • Godot
  • Sprictify

Lecture 2

Group project presentations:

  • Open Food Facts
  • freeCodeCamp
  • p5.js
  • Gitlab

Assignments

Due by the end of Sunday (May 4)

  • Make your blog post. Reflect on the presentations from this week and your group's progress.

Week 14

Lecture 1

Class discussion of collected Open Source and … projects.

Lecture 2

Project group work.

Assignments

Due by the end of Sunday (April 28)

  • Make your blog post. Reflect on the last week class discussion and your group's progress.

  • Start workig for your project presentation.

  • Finalize all the individual contributions.

Week 13

Lecture 1

The Cathedral and the Bazaar - discussion about the lessons.

Lecture 2

Project group work.

Assignments

Due by the end of Sunday (April 21)

  • Research an area (other than software) in which open source ideas are used. Add that topic and resources you found to the wiki page at Open Source and …. On Monday, we will focus our discussion on these different discoveries.

  • Make your blog post. Reflect on our discussion about the lessons from The Cathedral and the Bazaar. Was your choice of favorite lesson affected by the discussion and opinions voiced by other students in the class? Also reflect on your group's progress. What are some challenges that you (as a group) need to overcome? What are some challenges that you (as an individual) need to overcome?

  • Start planning for your project presentation.

Week 12

Lecture 1

Project group work.

Lecture 2

Invited talk by Christopher Snider from TidePool.

Assignments

Due by the end of Sunday (April 13)

  • (This was listed a few weeks ago so if you read it then, just refresh your memory about it.) In preparation for discussions in class read 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)

  • Visit The Cathedral and the Bazaar page on our course wiki and vote for your favorite quote.

  • Make your blog post. Reflect on the presentation by Christopher Snider. How does the use of open source by Tidepool compare to the user of open source by enterprise. Also reflect on your group's progress. What are some challenges that you (as a group) need to overcome? What are some challenges that you (as an individual) need to overcome?

Week 11

Lecture 1

Open source and business/enterprise/industry.

Slides: Open Source Business Models, Business' Use of Open Source

Other resources

Lecture 2

Project group work.

Assignments

Due by the end of Sunday (April 7)

  • Watch the videos listed under lecture 1 for the last two weeks.

  • Make your blog post. Reflect on the videos you watched about different industries' use of open source technologies, the reasons behind use of open source and the relationship between industry and open source projects. Also reflect on your group's progress on the project. Are there surprises in the project you selected. What has been the biggest challenge so far.

Christopher Snider will be our invited speaker on April 10.

Week 10

Lecture 1

No in-person class meeting.

In place of class, watch the following videos:

Lecture 2

Project group work.

Assignments

Due by the end of Sunday (March 31)

  • Make your blog posts.

Week 9 .

Spring Break

Nothing to do, unless you did not finish things from previous weeks.

Week 8

Lecture 1

Miderm reflections.

Lecture 2

Project work: quick report-outs to the class and a chance for group work.

Assignments

Due by the end of Sunday (March 17)

  • Make your blog posts.

Week 7

Lecture 1

A bit of open source history.

Bio of a FOSS person:

  • Brian Behlendorf
  • Tim Berners-Lee
  • Danese Cooper
  • Hong Phuc Dang
  • Marc Ewing
  • Limor Fried
  • Eben Moglen
  • Tim O'Reilly
  • Eric S. Raymond
  • Guido van Rossum
  • Karen Sandler
  • Richard Matthew Stallman
  • Linus Torvalds
  • Jimmy Wales
  • Larry Wall

Lecture 2

Forming project groups. Finding a project.

Assignments

Due by the end of Sunday (March 10)

  • Look at the bios of some of the people other groups researched in class.

  • Make your blog posts: what are your thoughts origins of free/open source and the people who worked and still work in free/open source; comment on the progress your group made this week: did you pick your project yet? did you narrow down the list of candidates?

Due by the end of Sunday (March 24)

  • in preparation for discussions in class read 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)

Week 6

Lecture 1

Last three browser extension presentations.

Project evaluation continued.

Start thinking about how to pick a project we want to work on.

Lecture 2

Overview of different types of contributions and working approach of the past projects.

Assignments

Due by the end of Sunday (March 3)

  • Clone the repository called taking stock from the class organization. Use it to organize your goals and motivations for the open source contributions, your skills and resources that you are bringing to the table, and your interests that may play a role in your choice of a project and the team that you end you end up working with. This is for your private account and you do not need to submit anything. But you should treat it seriously.

  • Pick an open source project that you may be interested in contributing to (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 the project evaluation exercise that you completed with a partner last week). Complete the project evaluation and create a file for that project in the project evaluation repository.

  • Pick a humanitarian / social good type of open source project (again, it should be something that matches your interests, goals, …). Complete the project evaluation and create a file for that project in the project evaluation repository. (If the project was already evaluated, just add _NUM to the name to indicate that this is second, third, … evaluation.) You can pick any project that fits this criteria, but if you need some ideas, here are some: Oppia, OpenFoodFacts, Tidepool, OpenEMR, Optikey, Alex, FreeCodeCamp, Dickinson’s College Farm, Open Energy Dashboard, cBioPortal, Ushahidi, Humanitarian OpenStreetMap Team, Humanitarian Data Exchange, …

Due by the end of Sunday (March 3) - THIS IS A HARD DEADLINE!

  • Complete the project preference form. The data you provide there will be used to form the project groups for the remainder of the semester. This is completely confidential and will not be shared with anybody other than the instructor.

Due by the end of Sunday (March 3)

  • Make your blog posts: what are your thoughts about different projects that you have looked at so far? what are you most excited about regarding working on an opens source project? what do you think will be the biggest challenges? how do you plan to overcome them?

Week 5

Assignments

Due by the end of the week (i.e., Sunday)

  • Make your blog post for the week. Comment on the videos you watched and the class discussion about them from this week. Were you surprised by anything you learned? What role, do you think, you could play as a computer scientist to address some of the issues mentioned in the discussion and videos?
  • Comment on your small contributions: how are things going, what types of contributions were you able to make? what are the biggest challenges? which contribution are you most proud of?

Week 4

Lecture 1

Project evaluation

Looking at Violet UML Editor and Matplotlib

Readings

Lecture 2

Presentations of the Firefox add-ons projects.

Team 1, Insult Reminders

Team 2, FocusPal

Team 3, Seshy

Team 4, Election Header

Team 6, quotepop

Team 7, WebPad

Team 8, Tyler1ify

Team 9, TikTock

Team B, weathermen

Team C, StudyTool

Assignments

Due by the end of the week:

  • Test out some of the add-on projects created by other teams. Report any issues you find. If you are interested in contributing to the project, reach out to its community to try to add features, fix issues, etc.

  • Make your blog post for the week

    • comment about your group work on the browser extension, did you learn anything about yourself and how you are able to work with others?
    • describe your own contributions to your team's efforts of building your browser extension
    • 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 other teams presentations and their projects, did you have any favorites?

Due by the end of Tuesday (2/20):

Watch one of the four video groups (you can watch more of them, but pick at least one). On the Wiki page labeled Social Good videos, put your name (first and last) under the group that you watched (again, you can put your name under more than one). We'll be talking about these in class next week.

Group 1:

Group 2:

Group 3:

Group 4:

Ongoing (but seems to be neglected by most):

  • Make small open source contributions. Refer back to Contributions you should be working on, slides from a couple of weeks ago for the types of contributions and the workflow for the course website contributions (use the same workflow if you wish to contribute to any of the add-on projects).
    A few things to keep in mind:
  • make sure links are clickable
  • remove the template line from the table of your contributions
  • make sure your contributions are diverse, not targetting a single type (ex., only Wikipedia, or only course website)

Week 3

Lecture 1

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

Readings:

Lecture 2

Version control systems and Git

Introduction to Git activity slides

Readings:

  • the first two chapters in ProGit book (Getting Started, Git Basics)

Assignments

Due by the end of the week (i.e. by the end of Sunday):

  • One person from each team working on Firefox add-ons should make a post in the browser-extension-presentations page on the class wiki. The post should follow this format:
    Team TeamNumber, [Extension Name](link to the GitHub repo)
    (Where the Team TeamNumber is the team number you were given during the in-class session.) If you are going to use any slides for the presentation on 2/14 then link them here as well.
  • Make your blog post for the week. Comment on the git exercises we did in class. Comment on the work with your team and progress you have made towards your first browser extension (what are some problems the group is facing, what good things happened, how do you fit into the collaboration, what are your biggest contributions)
  • Read the materials on version control linked to under lecture 2 for this week. Complete the quiz on Ed Lessons after the reading.

Due by February 13

  • with your group, continue working on the add-on project (make sure you keep your live log updated when you meet with your team to work on this project - the entire progress of your work on the extension should be documented)
  • make sure that the project follows all the best practices of open source
  • prepare a 5 minute presentation about your project (to be delivered in front of the class on Feb 14) - make sure that it is a group presentation (it may be a good idea to do a dry run or two before the actual presentation)

Ongoing

  • continue making small personal contributions (keep in mind that they should be done on a regular basis and be diverse in terms of their type)
  • start looking at different open source projects from the angle of possible contributions

Week 2

Lecture 1

Blog editing and formatting. Jekyll blogs documentation

Contributions you should be working on, slides

Anatomy of a FOSS project, slides

Code of conduct, samples:

Lecture 2

(Group) Activity about code of conduct documents.

Assignments

Due by the end of the week (i.e., Sunday)

  • make your blog post, address in it the questions in the Code of Conduct activity, what are your own thoughts on the importance of Code of Conduct for a project? would you be willing to work on a project that does not have a Code of Conduct? do you think there is a realistic way of enforcing rules listed in the Code of Conduct for a given project?
  • read the materials below and complete the short quiz based on the readings on Ed Lessons (Anatomy of a FOSS project)

Week 1, Intro to the course

Lecture 1

Intro to the class/course: why are we here? what is open source? what will you learn? course organization.

slides

Lecture 2

Introduction to FOSS



Materials:

  • Videos:
  • 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.

Assignments

Due immediately:

  • complete this questionnaire - if you do not have a GitHub account, create one first (your username does not need to be in anyway identifying you, your association with NYU or this course)

Due by the end of the week (Sunday night):

  • read the first two chapters of the "Forge Your Future with Open Source" by VM Brasseur:
    • The Foundations and Philosophies of Free and Open Source
    • What Free and Open Source Can Do for You

    and What is Free Software?.

  • complete the short quiz based on the above reading on Ed Lessons

  • complete the blog/ed/wiki/… activity

  • make your first blog post
    • in the _posts directory, edit 2022-01-21-week01.md file to update your first weekly blog post (change the name of the file to reflect the date of your post - this should be 2024-01-28 or before)
    • 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; it should include formatting to make it more readable, and it can include links and images if you wish)
      • 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://ossd-s24.github.io/YOUR_USER_NAME-weekly/ (after you replace YOUR_USER_NAME with your actual username, of course).

  • install a recent version of Firefox on your computer (if not there already)