Producing Open Source Software Syllabus

Last modified by XWikiGuest on 2023/02/17 01:52

Course Description

This is a undergrad/graduate course introducing the principles & practices of open source software development & communities of practice: history, intellectual property rights, economics & business models, development models, and community standards. The course begins with a historical study of the emergence and maturity of open source software from a variety of influences: the computer industry, thought leaders, and cultural movements. From there the course then covers copyright/patents,/trademarks/licensing and basic concepts of contracts. The impact of open source development and adoption on economics & various business models, in particular clarifying the apparent contradiction between free flow of information and the funding & compensation of participants, will be explored. The operational and organizational aspects of open source communities are covered to help understand the motivations that drive authentic participation: community, collaboration, contribution and co-creation. Throughout the course, hands-on activities using open source technologies are performed in order to develop skills on the practices of participation.

All original content is licensed under a Creative Commons Attribution 4.0 International License.

Course Syllabus

Summary

Course Goals

Students will come to understand open source as a licensing model for software that harnesses the power of distributed peer review and transparency of process. Students will assess and understand the promise of open source as an approach for development and distribution, leading to higher quality, better reliability, more flexibility, lower cost, and an end to vendor lock-in. Students will be able to abstract and extend open source ideals on development and distribution in order to apply those principles and practices to other artifacts and disciplines.

What will you now do that you could not do before?

  1. Summarize the rationale behind the criteria of the Open Source Definition.
  2. Explain the benefits of open source licensed software in development practices.
  3. Describe open source economic and business models.
  4. Identify the values, principles, objectives and behaviors of a viable open source community of practice.
  5. Authentically participate in an open source development community.

What will you know?

  1. The Open Source Definition.
  2. The history and impact of the Free and Open Source Software movements.
  3. An understanding of US copyright, patent and trademark laws and apply these concepts to the interpretation of software licenses.
  4. Various open source economies and business models.
  5. Tools and techniques for creating and managing open source communities of practice.

How will you now respond to information and/or solve problems related to software design, development and deployment?

  1. Review and scrutinize claims of open source projects related to licensing, governance and operations.
  2. Assess the opportunities and constraints for participation in open source software projects through evidence of practice within the community.
  3. Promote participation in open source projects through communication, transparency, self-organization, collaboration, evidence and merit.
  4. Seek out solutions for open source projects based on simplicity, emergence, incremental and iterative design and feedback.

Coordination

In this course, we will use XWiki, an open source wiki and social platform for information dissemination, collaboration, development and review. All information related to the course will be throughXWiki . This will include: assignments, announcements, forum discussion, evaluations, grades, etc.

Readings

Readings will be assigned from the following books.
There is no need to buy any of the books, all the relevant sections are freely available online.
Direct links will be made available in XWiki.

The Cathedral and the Bazaar: Musing on Linux and Open Source by an Accidental Revolutionary
Eric S. Raymond; O’Reilly (January, 2001).

Producing Open Source Software: How to Run a Successful Free Software Project
Karl Fogel; Publisher: O’Reilly (October, 2005).

Other readings will be added as the semester progresses.

Additional Materials

  • You will be participating in a current open project. Relevant accounts (email lists, wiki, etc.) will need to be created by all students. You may choose to create a unique identity specific to the course in order to protect your privacy.
  • We will use the open source wiki XWiki as the class management system. XWiki accounts will need to be created by all students.

Class Meetings & Important Dates

Complete Academic Calendar: http://www.albany.edu/registrar/fall-2016-academic-calendar.php

  • Session 01
  • Session 02
  • Session 03
  • Session 04
  • Session 05
  • Session 06
  • Session 07
  • Session 08
  • Session 09
  • Session 10
  • Session 11
  • Session 12
  • NO CLASS MEETING - Thanksgiving Holiday
  • Session 13
  • Session 14 (All work must be submitted by midnight)

Instructional Methodology: Team-based learning

The majority of work in this class will be performed in teams. On the first day of the course, you will be assigned to a team that will work together throughout the semester. Course grades will be influenced by team performance on all class assignments. Our class will be structured in a collaborative environment, where all students will share the accomplishments and frustrations of peer-to-peer participation, and will receive the appropriate credit for their efforts. Individuals' contributions to team work will be assessed by his or her teammates during the semester, as well as the instructors.

A typical class session will unfold in the following steps:

  • Preparation: You will complete specified readings before the class. Reading assignments will be posted on XWiki. All reading assignments must be completed before the next class in order to actively participate with your team and across teams in the class.
  • Readiness Assessment Tests (RATs): During this course you will be given several Readiness Assessment Tests. These tests will be similar to quizzes, but with several important distinctions. There will be three components to them, as well as a flexible method of answering the items on the test:
    • An individual part (iRAT)--each student will answer the questions on the test individually.
    • A team part (tRAT)-- after completing the individual component, you will work in your teams to come up with a group answer to the test.
    • Scoring for the iRAT: 10 questions, 5pt.s each for a total of 50pt.s
    • Scoring for the tRAT: 10 questions, 10pt.s each for a total of 100pt.s,
      • Correct answer select on first try, 10pt.s
      • Correct answer select on second try, 7pt.s
      • Correct answer select on third try, 4pt.s
      • Correct answer select on fourth try, 1pt.
      • Appeals--if your team believes the answer selected by the instructor is not correct and/or you believe the question was ambiguous, you may prepare an appeal; it must be in writing and given to the instructor. If it is decided that your appeal has sufficient merit, credit will be restored to the group part (and consequently to each member of the group).
  • In-Class Activities: Discussion topics, activities and projects will be assigned to your team, based on the common reading material and building on previous discussions. Most of the questions to be discussed in class do not have a right answer, rather a best answer, informed by discussions within the team, individual perspectives, and the content of the readings and other homework. These class activities are a mechanism for examining the many arguments that can weight in a discussion. For example, a typical question could be: “What should be the ideal duration of copyright for software, as opposed to books, and why ?”
    • Participation:
      • Active participation will be the basis for evaluating in-class activities.
      • After having discussed the topics inside each team, the conversation will be extended to cover the entire class.
      • Peer Evaluation: You will have the chance to provide feedback to your team members on a regular basis throughout the semester. This will help everyone improve their skills and value peer-assessment practices. Specific details on peer-evaluation will be provided at the beginning of every class.

Grading

There will be a variety of grades awarded throughout the term for assignments and participation.

  • Four Individual RATs, 50 points each = 200 points
  • Four Team RATs, 100 points each = 400 points
  • Ten homework assignments, 30 points each = 300 points
  • Individual final grade (individual participation) = 200 points
  • Team final grade = 400 points
  • Attendance, 20 points per class (you may miss one class) = 240 points 
  • Extra credit, perfect attendance = 60
  • Total = 1740 possible points

Final grades will be awarded based on the following scale, as a percentage of all points possible throughout the course:

  • A, ≥ 90%
  • B, ≥ 80% but < 90%;
  • C, ≥ 70% but < 80%;
  • D, ≥ 60% but < 70%;
  • F, < 60%

Due Dates

All assignments must delivered in person or via XWiki by midnight on the final day of examinations (December 20, 2016).

Course Policies

Attendance:

  • In-class activities constitute an important part of the course grade. It is not possible to maintain a passing average without consistent attendance.
  • Missing class means you earn an automatic zero for the activities or assignments missed.

Tardiness:

  • Missing an assignment or activity that happened before you arrive or after you leave also earns a zero. If you know that it will be difficult for you to consistently get to class on time and stay for the entire period, you should take this course at a time that better fits your schedule. Being late/leaving early frequently will guarantee a low grade for the course.

Cell phones & laptops:
 Laptops and other personal devices will be helpful for accessing reading assignments or other in-class activities and are recommended for use during class meetings. Out of respect for your classmates and the in-class activities, please refrain from undertaking activities that could be distracting to your classmates or the course.

Time Management:
 For every credit hour that a course meets, students should expect to work 3 additional hours outside of class every week. For this three-credit course, you should expect to work 9 hours (3 x 3 = 9) outside of class every week. Manage your time effectively to complete readings, assignments, and projects. In preparation for every class you will be required to do a reading and/or homework assignment. Typically this will involve one or two assigned readings and a small project. While many of the readings and assignments will prepare you for the following in-class activities, as the content covered is foundational, you will be expected to draw on this work throughout the course and for future assignments.

Withdrawal from the course:
 The drop date for the semester is posted on the Drop Dates Calendar. This lists the last date you can drop a course and receive a 'W'. It is your responsibility to take action by this date if you wish to drop the course. In particular, grades of "incomplete" will not be awarded to students because they missed the drop deadline.

Incompletes:
 As per the Undergraduate Bulletin, the grade of Incomplete (I) will be given "only when the student has nearly completed the course requirements but because of circumstances beyond the student's control the work is not completed." A student granted an incomplete will make an agreement specifying what material must be made up, and a date for its completion. The incomplete will be converted to a normal grade on the agreed upon completion date based upon whatever material is submitted by that time. Important: Incompletes will not be given to students who have not fulfilled their class work obligations, and who, at the end of the semester, are looking to avoid failing the course. This is asking for special treatment.

Academic Integrity:
 It is every student’s responsibility to become familiar with the standards of academic integrity at the University. Claims of ignorance, of unintentional error, or of academic or personal pressures are not sufficient reasons for violations of academic integrity. See http://www.albany.edu/undergraduate_bulletin/regulations.html

Responsible Use of Information Technology:
 Students are required to read the University at Albany Policy for the Responsible Use of Information Technology available at the ITS Web Site: http://www.albany.edu/its/policies_responsible_use_of_IT.htm

Available Support Services:
 Reasonable accommodation will be provided for students with documented physical, sensory, cognitive, learning and psychiatric disorders. If you believe you have a disability requiring accommodation in this class, please notify the Director of Disability Resource Center (Campus Center 137, 442-5490). That office will provide the course instructor with verification of your disability, and will recommend appropriate accommodations. In general, it is the student's responsibility to contact the instructor at least one week before the relevant assignment to make arrangements.

College of Computing and Information:
 Visit the CCI Facebook page for more details about the College and upcoming events: http://www.facebook.com/CollegeofComputingandInformation

Curriculum Advisement:
 If you have questions about your INF major or minor, contact IS advisor Caroline Buinicky at isug@albany.edu, or Informatics/Information Science Undergraduate Program Director Jennifer Goodall at jgoodall@albany.edu.

CCI Student Center:
 The College of Computing and Information Student Center (LI-84) offers tutoring, career development, social events and academic advising. Please stop by or email at ccistudentcenter@gmail.com.

CCI Women In Technology (CCIWIT):
 The College of Computing and Information Women In Technology is dedicated to supporting, empowering, and building community among female faculty, graduate, and undergraduate students. The program also encourages girls in middle school and high school to pursue undergraduate and graduate studies in the fields related to computer science, informatics, and information science. CCIWIT initiatives are designed to address the critical need to bridge the achievement gap and increase access for women to enter the male-dominated computing and information technology fields. CCIWIT events are open to both women and men. More information can be found at CCI Women in Technology: http://cciwit.posterous.com/ and CCI Women in Technology on Facebook: http://www.facebook.com/groups/cciwit/.



Course Schedule / Activities

NOTE: This schedule is subject to change.

Class Meeting 01

Classwork

  • Review the course syllabus.
  • Organize into teams.
  • Identify the open source software used in our daily lives.
  • Evaluate the adoption of open source software in technology and business.
  • Watch Revolution OS.

Homework for September 8, 2016 class meeting
Other readings/assignments may be added as the semester progresses.

Class Meeting 02

Classwork

  • Take Readiness Assessment Test I (iRAT/tRAT).
  • Watch Halt and Catch Fire, Episode 101.
  • Discuss/compare aspects of openness, free and open source software with proprietary software in H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework for September 15, 2016 class meeting
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Getting Started
    K. Fogel
    http://producingoss.com/en/getting-started.html
  • Write / Be prepared to present: "Before starting an open source project, there is one important caveat: Always look around to see if there's an existing project that does what you want." (Fogel) Taking Fogel's advise, find existing open source software projects, and be prepared to describe them generally, for (30 points):
    1. developing a text document;
    2. creating and delivering a presentation;
    3. editing, manipulating and/or processing a photograph;
    4. creating original artwork;
    5. creating and managing a website;
    6. creating and managing an online course;
    7. managing customers, contacts and sales;
    8. operating a computer (an operating system);
    9. hosting a web server, and;
    10. managing large data sets.

Class Meeting 03

Classwork

  • Presentations by students in class on open source software projects.
  • Discussion on starting an open source project.
  • Watch Halt and Catch Fire, Episode 102 (AMC, TWC)
  • Discuss drivers (business, economic, technical, etc.) as it relates to free and open source software in H&CF episode
  • Class will participate in team-based discussions & projects.

Homework Due for September 22, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: The Cathedral and the Bazaar
     By Eric S. Raymond.
    http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
     Chapters:

    • The Cathedral and the Bazaar;
    • The Mail Must Get through;
    • The Importance of Having Users;
    • Release Early, Release Often;
    • How Many Eyeballs Tame Complexity;
    • When Is a Rose Not a Rose?;
    • Popclient becomes Fetchmail;
    • Fetchmail Grows Up;
    • A Few More Lessons from Fetchmail;
    • Necessary Preconditions for the Bazaar Style, and;
    • The Social Context of Open-Source Software

Class Meeting 04

Classwork

  • Take Readiness Assessment Test II (iRAT/tRAT).
  • Watch Halt and Catch Fire, Episode 103 (AMC, TWC)
  • Discuss concepts from The Cathedral and the Bazaar as they relate to themes, plots, scenes portrayed in H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for September 29, 2016 Class
Other readings/assignments may be added as the semester progresses.

Class Meeting 05

Classwork

  • Present reviews of open source software project infrastructure.
  • Watch Halt and Catch Fire, Episode 104 (AMC, TWC)
  • Discuss/compare infrastructure and operations between free and open source projects and business as portrayed in H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for October 6, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 4. Social and Political Infrastructure
    K. Fogel
    http://producingoss.com/en/social-infrastructure.html
  • Write / Be prepared to present: Open source software projects have a variety of organizational and governance models. Referencing Fogel, provide a one page / 15min report comparing/contrasting one of the following models with the two Fogel cites, "Benevolent Dictator for Life" or "Consensus-based Democracy" (30 points):
    • The Apache Way
    • Commercial Open Source
    • Community Source
    • Doacracy / Do-acracy or Do Acracy
    • Meritocracy
    • The Open Source Way

Class Meeting 06

Classwork

  • Present comparisons of governance models for open source software projects.
  • Watch Halt and Catch Fire, Episode 105 (AMC, TWC)
  • Discuss business, operational and decision making models between free and open source projects and business as portrayed in H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for October 13, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 5. Participating as a Business or a Government Agency
    K. Fogel
    http://producingoss.com/en/money-and-investment.html
  • Write / Be prepared to present: One page / 15 min. presentation of a case study on the adoption of open source software within a business or government.
    Find a recent news article, press release, etc. reporting on the adoption, development, and/or distribution of open source software within an organization.
    Explain what that initiative is, and the value proposition for the business (30 points):
    • What is the organization?
    • What industry/sector are they in?
    • What are their current products, services of the organization?
    • What open source software are they adopting?
    • What is the value proposition for the adoption of the open source software?
    • How do you know this is open source software?
    • What is your analysis of this business decision?

Class Meeting 07

Classwork

  • Readiness Assessment Test III (iRAT/tRAT) covering Chapters 3, 4 & 5 of Producing Open Source Software (K. Fogel)
  • Present case studies on adoption of open source software within business and government.
  • Watch Halt and Catch Fire, Episode 106 (AMC, TWC)
  • Discuss business opportunities for open source software within the context of the H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for October 20, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 6. Communications
    K. Fogel
    http://producingoss.com/en/communications.html
  • Write / Be prepared to present: One page / 15 min. presentation of a communications plan for (30 points):
    • announcing a new open source project;
    • promoting new contributors and adoptors, and;
    • fostering communication within the project among participants.

Class Meeting 08

Classwork

  • Present communications plans for open source software projects.
  • Watch Halt and Catch Fire, Episode 107 (AMC, TWC)
  • Discuss/compare communication styles/approaches between open source communities and businesses within the context of the H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for October 27, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 7. Packaging, Releasing, and Daily Development
    K. Fogel
    http://producingoss.com/en/development-cycle.html
  • Write / Be prepared to present: Install LibreOffice on your computer and provide a one page / 15 min. presentation assessing the installation process and an evaluation of one of LibreOffice's applications (Writer, Impress, or Calc) with your current proprietary office productivity suite, Apple (Pages, Keynote, Numbers), Google Docs, or Microsoft Office (Word, PowerPoint, Excel). (30 points)

Class Meeting 09

Classwork

  • Present reports on LibreOffice installation and usability.
  • Watch Halt and Catch Fire, Episode 108 (AMC, TWC)
  • Discuss/compare development/release models between open source communities and businesses within the context of the H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for November 3, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 8. Managing Participants
    K. Fogel
    http://producingoss.com/en/managing-participants.html
  • Write / Be prepared to present: Identify a user type (end-user, developer, investor, other business owner, open source project leader, etc.) and write a summary of, and be prepared to present on, at least three ways these participants can interact with (30 points):
    • the developers,
      • an open source software project;
      • a proprietary software company;
    • peer community,
      • an open source software community involved with an open source software project, and
      • a customers of proprietary software.

Class Meeting 10

Classwork

  • Present reports on community interaction.
  • Watch Halt and Catch Fire, Episode 109 (AMC, TWC)
  • Discuss/compare the organization, interaction and management of open source communities and proprietary software communities within the context of the H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for November 10, 2016 Class
Other readings/assignments may be added as the semester progresses.

  • Read: Producing Open Source Software: Chapter 9. Legal Matters: Licenses, Copyrights, Trademarks and Patents
    K. Fogel
    http://producingoss.com/en/legal.html 
  • Write / Be prepared to present: One page / 15 min. presentation on your licensing preference for open source software, "permissive" or "copyleft". (30 points)

Class Meeting 11

Classwork

  • Readiness Assessment Test IV (iRAT/tRAT) covering Chapters 6, 8 & 9 (NOT Chapter 7) of Producing Open Source Software (K. Fogel)
  • Present arguments on licensing preferences, permissive or copyleft.
  • Watch Halt and Catch Fire, Episode 110 (AMC, TWC)
  • Discuss the impact of permissive and copyleft licenses on the business and projects portrayed in the H&CF episode.
  • Class will participate in team-based discussions & projects.

Homework Due for December 1, 2016 Class
Other readings/assignments may be added as the semester progresses.

Class Meeting 12

Classwork

  • Present findings and evidence (if any) of fauxpen source and/or open-washing of various projects.
  • Introduction and discussion of final project:
    Develop an open source business plan and project community for "Mutiny."
    Throughout the course we have been documenting how the lessons learned related to open source principles and practices could have been applied to the fictional computer company, Cardiff Electric, in the AMC Series, "Halt & Catch Fire." The final project for this course will continue this exercise by asking the class--as a team--to design and propose an "open source community" in support of Cameron Howe's start-up "Mutiny."
    The assignment will be graded based on the quality of the proposed design. A high quality proposal will include:

    • A strategic plan for the Mutiny open source community;
    • An inventory of tools which will support the Mutiny open source community, and aligns with the strategic plan;
    • Techniques describing how the Mutiny open source community will engage with one another (individuals, groups, users, developers, public, other businesses, etc.) using the infrastructure and tools prescribed to achieve the strategic goals;
    • Job descriptions (i.e. roles and responsibilities) and how each position will use (e.g. their techniques and desired outcomes) for any tools prescribed, and
    • Key performance indicators for each job, tool and technique that will guide the success of "Mutiny."Final Project Grading
    • Project Grade: Grades will be based on the total grade awarded for the group writing assignment. Once the final project is graded (based on the above), this will become the highest grade possible for any individual student. The higher the group project, the higher possible grade for individual students. For example, if the final project is awarded a 90%, no student can receive a higher grade than 90%.
    • Individual Grades for Final Project: Individual grades will be based on your individual involvement with the development of the final project. The individual will be graded based on the final grade of the proposed design and the student's engagement and contributions. Engagement and contributions include:
      • Consistent participation in the review of the work, recognized through communications with classmates, submission of issues to others, requests for support from others, assignment of tasks to others, completion of tasks/requests from others. 
      • Actively contributing to the document, recognized by original work submitted and the quality of those submissions.
      • Modifications of the work, recognized by the level of activity undertaken in editing, extending, building upon, adding clarity around others' work. 
      • Engagement of the community, as recognized by the level of activity generated from an original contribution.
      • Adherence to best practices in authoring, e.g. commenting on edits, "TLDR" in requests/comments, etc.

Homework Due for December 1, 2016 Class
Other readings/assignments may be added as the semester progresses.

Class Meeting 13

Classwork

  • Discussions on final project
  • Discussions on XWiki functionality
  • Special guest speakers--get advise for starting an open source project/business (think Final Project)!

End of Semester (Final Project Due)

Tags:
    

Submit feedback regarding this wiki to webmaster@opensource.org

This wiki is licensed under a Creative Commons 2.0 license
XWiki 14.10.13 - Documentation