Skip to content

Latest commit

 

History

History
298 lines (194 loc) · 16.3 KB

index.markdown

File metadata and controls

298 lines (194 loc) · 16.3 KB
layout title
default
Syllabus, CSCI-UA 480, Klukowska

Instructor Information

  • Professor Joanna Klukowska
  • Office Hours
    • on Zoom (see Brightspace for links): Tuesdays 9:00 - 10:30 AM, Thursdays 2:00 - 3:30 PM
    • in-person: available by appointment on Mondays/Wednesdays before class meetings
  • Email: [email protected]

Course Information

  • CSCI-UA 480 Special Topics: Open Source Software Development (OSSD)
  • 4 credits
  • Lectures: {{ site.course_time }} (attendance is mandatory)
  • Class meetings at: {{ site.course_location }}
  • Course website: https://cs.nyu.edu/~joannakl/ossd_s24/
  • Brightspace: https://brightspace.nyu.edu/
  • Ed discussions: https://edstem.org/us/dashboard (accessible through Brightspace as well)
  • Prerequisites:
    • official: passing CSCI.UA.0201 with a grade of C or better
    • interest in learning about open source culture, history, licensing and development models
    • willingness to share and collaborate
    • willingness to participate in class discussions (you cannot go through this class by sitting quietly in a corner and never voicing any opinions)
  • Important Dates
    • Midterm Exam/Reflections (these dates may change if there are any schedule changes): {{ site.midterm_exam_date }}
    • Final Exam/Reflections: (date and time subject to change by CAS, check the dates posted by the department here and listed in Albert ) {{ site.final_exam_date }}

Course Description

Open Source Software Development

This course prepares students to become active participants in open source projects. It begins with an overview of the philosophy and brief history of open source development, followed by an in-depth look at different types of open source projects and the study of various tools involved in open source development. In particular, it covers the collaborative nature of open source projects, community structure, version control systems, licensing, intellectual property, types of contributions (programming and non-programming) and the tool-chains that enable such contributions.

The students are expected to contribute to existing open source projects.

Objectives and Outcomes

Students who successfully complete this course:

  • will be able to explain to others the nature of open source software, particularly how it differs from proprietary software;
  • will be able to evaluate open source software projects with respect to their maturity, level of activity, community friendliness, and complexity;
  • will be able to find suitable open source software projects in which to participate;
  • will become a contributing member of a software development community;
  • will be able to choose an appropriate license for their creative works in general and to explain what can and cannot be done with software that has a specific license;
  • will be able to explain how software licensing works in general, what choices of license exist; and
  • will be able to give several examples of the ways in which companies earn money in the open source ecosystem.

Why Open Source Matters and Why Should You Care?

<iframe width="560" height="315" src="https://www.youtube.com/embed/7c0IrsDsNaw" frameborder="10" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Grading

(exact grading rules subject to change by the beginning of the spring semester)

Your grade will be based on:

  • preparedness / attendance / engagement: 10%
  • blogs / reflective writing: 20%
  • activities / exercises / homework: 10%
  • individual contributions to open source projects: 20%
  • group project (individual's contributions to the group project): 30%
  • in-class assessments: 10%

Here are the details of how each category is going to be assessed.

Grades will be determined using the following scale:

    A   95-100
    A-  90-95
    B+  87-90
    B   83-87
    B-  80-83
    C+  76-80
    C   72-76
    D   65-72
    F   less than 65

The grade of Incomplete is reserved for students who, for legitimate and documented reason, miss the final exam. The grade of Incomplete will not be given to student who started falling behind in class. Those students should withdraw from the class or switch to Pass/Fail option.

Course Materials

Course Website and Brightspace

You can access all course related materials on the course website.

In addition, you may find your grades on Brightspace page for this course.

Book(s)

|| [{{ site.book_opt_8 }}]( {{ site.book_opt_8_link }}) {{ site.book_opt_8_edition }}
{{ site.book_opt_8_author }}
{{ site.book_opt_8_note }} | || [{{ site.book_opt_7 }}]( {{ site.book_opt_7_link }}) {{ site.book_opt_7_edition }}
{{ site.book_opt_7_author }}
{{ site.book_opt_7_note }} | || [{{ site.book_opt_1 }}]( {{ site.book_opt_1_link }}) {{ site.book_opt_1_edition }}
{{ site.book_opt_1_author }}
{{ site.book_opt_1_note }} | || [{{ site.book_opt_5 }}]( {{ site.book_opt_5_link }}) {{ site.book_opt_5_edition }}
{{ site.book_opt_5_author }}
{{ site.book_opt_5_note }} | || [{{ site.book_opt_6 }}]( {{ site.book_opt_6_link }}) {{ site.book_opt_6_edition }}
{{ site.book_opt_6_author }}
{{ site.book_opt_6_note }} | || [{{ site.book_opt_2 }}]( {{ site.book_opt_2_link }}) {{ site.book_opt_2_edition }}
{{ site.book_opt_2_author }}
{{ site.book_opt_2_note }} | || [{{ site.book_opt_3 }}]( {{ site.book_opt_3_link }}) {{ site.book_opt_3_edition }}
{{ site.book_opt_3_author }}
{{ site.book_opt_3_note }} | || [{{ site.book_opt_4 }}]( {{ site.book_opt_4_link }}) {{ site.book_opt_4_edition }}
{{ site.book_opt_4_author }}
{{ site.book_opt_4_note }} |

Other Open Source Resources

  • OpenSource.com publishes stories about creating, adopting, and sharing open source solutions. It provides many resources for and about open source and the "open source way", as well as various other useful resources. The open source way is about applying the principles of open source software development beyond software

  • OpenHealthNews.com publishes news, information and resources related to open health

  • foundation.mozilla.org is the website of the Mozilla Foundation, a non-profit organization that is the sole shareholder in the Mozilla Corporation, the maker of Firefox and other open source tools. Mozilla is involved in many initiatives to keep the Internet free and open.

  • linuxfoundation.org is the website of the Linux Foundation, which is "dedicated to building sustainable ecosystems around open source projects to accelerate technology development and industry adoption."

  • code.gov is the U.S. Government's Code.gov portal to the open source projects maintained by the federal government. As they put it, it "leverages the power of code sharing and collaboration to help the U.S. Government cut down on duplicative software development and save millions of taxpayer dollars for the American people."

Course Policies

This course follows CAS Academic Policies that can be found at https://cas.nyu.edu/academic-programs/bulletin/policies/academic-policies.html.

Attendance

This is an in-person synchronous class and you are expected to attend the lectures and recitations.

Missing a class or two is reasonable and often unavoidable, but missing more than five course meetings will likely result in decreased understanding of the course content and, hence, lower scores.

If, for any reason, you need to miss a lot of class meetings, you should contact [email protected] for verification and guidance for an extended absence period. Extended absences often result in students inability to make-up missed material and assessments. You should consider withdrawing from the class and attempting it again in the future semester.

Disability Disclosure Statement

New York University is committed to providing equal educational opportunity and participation for students of all abilities. We work with NYU students to determine appropriate and reasonable accommodations that support equal access to a world-class education.

Students requesting academic accommodations are advised to reach out to the Moses Center for Student Accessibility as early as possible in the semester for assistance.

Henry and Lucy Moses Center for Student Accessibility

Telephone: 212-998-4980

Website: http://www.nyu.edu/csd

Email: [email protected]

Wellness Statement

In a large, complex community like New York University, it's vital to reach out to others, particularly those who are isolated or engaged in self-destructive activities. Student wellness (https://cas.nyu.edu/content/nyu-as/cas/academic-programs/student-wellness.html) is the responsibility of us all.

The NYU Wellness Exchange is the constellation of NYU’s programs and services designed to address the overall health and mental health needs of its students. Students can access this service 24 hours a day, seven days a week: [email protected]; (212) 443-9999. Students may also call the Wellness Exchange hotline (212-443-9999) or the NYU Counseling Service (212-998-4780) to make an appointment for single session, short-term, or group counseling sessions.

Academic Integrity

This course follows the university and departmental policies on academic integrity:

Our main philosophy is that you need to be honest and fair to yourself, other students in the class and the instructional stuff.

The nature of open source is based on collaborative work. But that work is still performed by individuals. Your name should not be associated with a contribution that is not your own or that you have not put significant amount of work into.

Topics Covered (exact list of topics and their order subject to change, for detailed/current schedule, see the Daily tab of this page. )

  • Context, History, and Overview
    • Principles of open source
    • The Open Source Definition and the Free Software Definition and their ramifications
    • History and background of open source software
    • Open source culture and community
    • Open-ness in general: Open source software and hardware, open data, open organizations (government, education, etc.)
    • Humanitarian open source software
  • Evaluating and Assessing Projects and Communities
    • Measures of open source projects and communities: maturity, level of activity, friendliness, welcomeness and codes of conduct, size of code base
    • Understanding and interpreting project metadata
    • Evaluating the suitability of a project for the purpose of contributing to it
    • Studies of selected projects
  • The Business of Open Source
    • Business models: how money is made from open source software
    • The role of open source software in the software industry
    • Careers in open source
  • Contributing to Projects
    • Types of contributions to open source projects (not only code)
    • Ways of getting involved in projects
    • Early non-coding contributions:
      • Contributing to OpenStreetMap
      • Contributing to Wikipedia
    • Project guidelines: How to Contribute documents
    • Behavior of the community: Codes of Conduct
  • Tools and Technology
    • Programming tools and technology
    • Document preparation
      • Markdown languages
      • Documentation tools
    • Collaborative software engineering tools
      • Version control systems (Git)
      • Issue tracking
    • Software engineering tools for distributed collaboration
      • Communication tools (e.g., blogs, Slack, IRC)
      • Remote, distributed version control platforms (e.g., GitHub, GitLab)
      • Online, web-based issue trackers: Bugzilla, GitHub's issue tracker, others
  • Project Selection/Assignment
    • Getting involved in the community
    • Setting up project development environment
    • Creating issues and identifying issues on which to work
    • Resolving issues and submitting pull requests
  • Intellectual Property Rights and Licensing
    • Intellectual property
    • Copyrights, patents, and trademarks
    • Types of software and non-software licenses
    • Interpreting and choosing licenses
  • Team and Individual Reports

See the Tentative Weekly Schedule for approximate times when topics will be covered. All dates there are tentative, but should be a good indicator or the course timing.

Academic Email Etiquette

  • Check the school email address on a regular basis. You can simply forward its content to another email account that you use regularly.

  • Use your school's email account to send emails to professors, instructors, TA's, graders, administrators, etc. OR make sure that your email address contains your true name, not "[email protected]", "[email protected]" or some other cool alias.

  • Start your email with proper salutations! Use the correct titles (Professor, Dr., etc.) and spell first and last names correctly. If you are on the first name basis with your instructors, use their names, not "Hey". For example: "Dear Professor Drummer" or "Dear Robert", not "Hey Bob".

  • Sign your name under the body of your email, otherwise you expect people to read emails from anonymous.

  • Do not write everything in upper-case letters. Do not write everything in lower-case letters.

  • Make sure you included everything you wanted before hitting send. Don't send three emails one after another because you forgot something in the first one.

  • Proofread the text in your email before sending it. Most of the email clients check for typos, but they cannot tell if your email makes much sense. Read it, before you send it.