+ - 0:00:00
Notes for current slide
Notes for next slide

CSCI-UA 480.10: OSSD

Open Source Software Development


Course Logistics

Instructor: Joanna Klukowska

Unless noted otherwise all content is released under CC BY 4.0.

1/16

Software

Software means computer instructions or data. Anything that can be stored electronically is software, in contrast to storage devices and display devices which are called hardware.

from Webopedia article, retrieved Jan. 16, 2018

2/16

Open Source

  • what does open source mean to you?
3/16

Open Source

4/16

This Course

This course prepares students to become active participants in open source projects.

Topics to be discussed (order will differ):

  • a brief history of open source development,

  • an in-depth look at different types of open source projects,

  • the study of various tools involved in open source development,

  • collaborative nature of open source projects,

  • community structure,

  • version control systems,

  • licensing and intellectual property,

  • types of contributions (programming and non-programming),

  • tool-chains that enable such contributions,

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

5/16

This Course

The students:

  • mostly independent work (possibly in groups) of exploring and learning

  • regular class discussions (participation matters a LOT)

  • regular reading and writing assignments (to document what you are working on)

  • regular contributions (small and large, code and not)


The instructor:

  • sets topics to be discussed (suggestions are welcome)

  • coordinates the class discussion

  • creates assignments

  • coordinates assessment

  • will not be able to answer many of students' questions

6/16

Course Website

  • URL: https://joannakl.github.io/cs480_s18/

    • this page contains the syllabus and daily summaries as well as loads of links to all other resources and services you will need for this class
7/16

Course Website

  • URL: https://joannakl.github.io/cs480_s18/

    • this page contains the syllabus and daily summaries as well as loads of links to all other resources and services you will need for this class
  • Github repository: https://github.com/joannakl/cs480_s18

    • One of the first assignments will involve finding problems with the content of the course website, creating issues and submitting pull request with fixes.

      (But do not start on it just yet. Wait for the details to be posted.)

    • During the rest of the semester you are welcome to continue this practice to fix minor issue and to share useful material.

8/16

Weekly blogs / journals

9/16

Course discussion: IRC

IRC = Internet Relay Chat

  • an essential tool used by open source software developers

  • allows members of the community, or those interested in becoming involved in the community, to communicate 24/7, regardless of their geographic location

  • IRC is much like Instant Messaging with a group

  • partial IRC protocol:

    • ‘talking’ is not always a requirement; you will learn a great deal by ‘listening’, especially in the beginning;
    • when you join a channel, it is not necessary to identify yourself or to say hi, you can simply 'lurk';
    • feel free to ask questions, and note that it is not necessary to ask first if you can ask a question!
10/16

Course discussion: IRC

course IRC channel: irc://freenode/ossd_s18

IRC resources:

11/16

Course discussion: IRC

course IRC channel: irc://freenode/ossd_s18

IRC resources:

Class use:

  • we will start using IRC channel for some class communication

    • online office hours
    • in-class "discussion"
  • why use/learn IRC?

    • many open source projects use IRC channels for meetings and communication
    • you need to know how to use it and how to behave in a channel in order to be part of the community
12/16

Course message board / discussion: Piazza

13/16

Contributions

  • non-code contributions to

    • non-code projects
    • code projects
  • non-code contributions

    • small (fixing a typo or rewriting something for clarity)
    • larger (adding paragraphs, redesiging/restructuring articles/documentation)
    • large (creating an article, adding instructions / documentation)
  • code contributions to

    • non-code projects (for example a website)
    • code project
14/16

Sources and Acknowledgements

15/16
16/16

Software

Software means computer instructions or data. Anything that can be stored electronically is software, in contrast to storage devices and display devices which are called hardware.

from Webopedia article, retrieved Jan. 16, 2018

2/16
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow