Week 13 ( 4/14 )
Lecture 1
Project group work.
Stand up reports. Plan to quickly summarize:
- your major accomplishments so far
- your biggest disappointments with the project and how you are dealing with them
- your plan of action for the next three weeks
Lecture 2
Open source in business / industry.
Assignments
- make your blog post:
Week 12 ( 4/7 )
Assignments
by the end of the week:
- watch the talk by Claude Warren from Apache Foundation titled The Cathedral, the Bazaar, and the Coffeehouse from DevWorld 2024
-
find two or three companies that have an open source program office and try to figure out who the people in that office are and what they are doing
- make your blog post:
- reflect on the lessons for The Cathedral and the Bazaar essay, talk about two or three from the perspective of what you are observing in the project that you are working on with your group
- reflect on the Coffeehouse idea that Clause Warren was talking about
- in your own words, talk about the role OSPO play in the companies that you found
by the end of Tuesday, Apr. 15:
- watch one (or more) of the videos listed below), add your name below the title of the video titles on the wiki page for "Open Source in Business", and add a one-two sentence long comment about what you found most interesting or surprising in the video that you watched
Week 11 ( 3/31 )
Assignments
- make your blog post:
- discuss progress you've made on the group project and what you hope to accomplish in the remaining few weeks
- comment on the presentation you saw this week
- in preparation for discussions in class next week 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 10 ( 3/24 )
Spring Break
Assignments
Nothing to do, unless you did not finish things from previous weeks.
Week 9 ( 3/17 ) future preview
Lecture 1
Project group work.
Lecture 2
Midterm reflections.
Assignments
Week 8 ( 3/10 ) future preview
Lecture 1
Invited talk by
Olivier Poupeney from FINOS - postponed to later date.
A bit of open source history.
See the Bio of a FOSS person on the course wiki.
Lecture 2
Open Source AI Definition
presentation by Nick Vidal from OSI
Assignments
- Make your blog posts: reflect on the two presentations you saw this week? did you learn any surprising things? did you view of open source being used by financial industry change? did your ideas about open source AI change in any way?
Week 7 ( 3/3 )
Lecture 1
Forming project groups. Finding a project.
Lecture 2
Working in groups.
Assignments
Due by end end of Friday (March 7)
Olivier Poupeney from FINOS will be our invited speaker on March 10.
- familiarize yourself with the following materials: About FINOS, FINOS members - is your bank listed there?, 2024 State of Open Source in Financial Services - register to download the actual report, read the report!
- add a question for Olivier to the course wiki's page titled "questions for Olivier" (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)
Due by the end of Sunday (March 9)
- Make your blog posts: reflect on your group work so far, how did your group decide on the project, did your group hit any obstacles yet? if so, how are you planning to resolve them
Nick Vidal from OSI will be our invited speaker on March 12. He will be presenting about Open Source AI Definition.
- familiarize yourself with the following materials: Open Source AI Definition 1.0 - look through various resources available on the page, watch What is Open Source AI? from about a year ago
- add a question for Nick to the course wiki's page titled "questions for Nick" (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)
Week 6 ( 2/24 )
Lecture 1
Humanitarian/Social Good Projects slides
Massachusetts Platform for Legislative Engagement
Readings
Humanitarian and Free and Open Source Software
Lecture 2
Overview of different types of contributions and working approach of the past projects.
Approaches to group work and community rules for group work.
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?
-
(Continuation from last week) 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, A lex, FreeCodeCamp, Dickinson’s College Farm, Open Energy Dashboard, cBioPortal, Ushahidi, Humanitarian Open StreetMap 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.
Week 5 (2/17)
Lecture 1 (Tuesday, 2/18 !!!)
Looking at
Readings
- Evaluating Open Source Projects from Producing Open Source by Karl Fogel
- chapter four, Find a Project, of "Forge Your Future with Open Source" by VM Brasseur
- section 4 of How-to-contribute guide from GitHub: Finding a project to contribute to
Lecture 2
Assignments
Due by the end of the week (i.e., by the end of Sunday)
-
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.
-
Read a few project evaluations created by other students. Focus on projects that you are familiar with or that seem to fit your project preferences.
-
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?
Due by the end of the next week (but sooner than later)
- 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.
Week 4 (2/10)
Lecture 1
Working with git
version control. Exploring the actual repository, .git
. Creating branches, merging, commit logs.
Readings:
- the first two chapters in ProGit book (Getting Started, Git Basics)
Lecture 2
Presentations of the browser add-ons projects.
Team 2, Virtual Pet
Team 3, Website Time Tracker
Team 5, Quick Notes
Our Presentation
Team 6, I Did That extension
Team 7, Browser Scroller
Team 8, GitHelper
Team 9, Tomato Clock
Our Presentation
Assignments
Due by the end of the week (i.e., by the end of Sunday)
- Make your blog post for the week.
- Comment on the
git
exercises we did in class. - Comment presentations and extensions created by other groups.
- What was a biggest take-away from your own group work and from watching other groups.
- Comment on the
-
Read the materials on version control linked to under lecture 2 for this week. Complete the quiz on Ed Lessons after the reading.
- Complete the peer evaluation form for your group work on the browser extension.
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 3 (2/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.
Lecture 2
Anatomy of a FOSS project, slides
Version control systems and Git
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)
- Make your blog post. 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, were there any surprising things you discovered about yourself in the process of the group work)
- Complete the brief quiz on Ed Lessons called Anatomy of a FOSS project
Due by February 12
- with your group, continue working on the add-on project
- 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 12) - you do not need to make slides, but you need to decide how to organize your presentation and showcase your extension
- 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 other people need to view it and make sure that it is there and that it
is properly formatted.)
The post should follow this format:
Team TeamNumber, [Extension Name](link to the GitHub repo)
Team Member 1
Team Member 2
… (Where theTeam 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.
Week 2 (1/27)
February 3 - last day to drop a class without W.
Lecture 1
Contributions you should be working on, slides
Lecture 2
Blog editing and formatting. Jekyll blogs documentation
Finish with Introduction to FOSS slides
Code of conduct, samples:
- Contributor Covenant, originally written by Coraline Ada Ehmke
- Mozilla Community Participation Guidelines
- Google's Go Code of Conduct
(Group) Activity about code of conduct documents.
- Follow the instructions and links in the Code of Conduct Activity. Have a discussion with your group about the questions posed in the activity.
- On your own, address the questions from the activity in your weekly blog. Do not write the blog as a sequence of questions and answers. Instead, create couple of paragraphs that address the issues.
Assignments
Due by the end of the week (Sunday, Feb 2, but complete as soon as possible):
- 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
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 and reflect on the presentation How to Drive Consensus and Transparency Within Open Source Communities.
Preparing for next week:
- watch the recording of a talk from the Open Source Leadership Summit about communication challenges in open source communities:
How to Drive Consensus and Transparency Within Open Source Communities ; consider the content in two context:
- what does it tell you about open source communities and how to interact with them
- what lessons does it offer for any group work / projects that you may be part of
Week 1, (1/22, half week), 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.
Materials:
- Videos:
- Open Source Explained by IBM
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.
- Open Source Explained by IBM
- 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):
-
complete the blog/ed/wiki/… activity
- configure your blog
- go to the repository for your blog
- edit the
_config.yml
file following instructions in the file (post questions on Ed, if you run into any issue) - ideally, this should be done by cloning your repository, making changes in the local repo and then pushing them back (not by editing files directly on GitHub)
- make your first blog post
- in the
_posts
directory, edit2025-01-26-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-s25.github.io/YOUR_USER_NAME-weekly/
(after you replaceYOUR_USER_NAME
with your actual username, of course). - in the
- install a recent version of Firefox on your computer (if not there already)