Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 3.59 KB

README.md

File metadata and controls

70 lines (52 loc) · 3.59 KB

CS499 - Open Source Software Development

Instructor: Dr. Igor Steinmacher

Email: Igor.Steinmacher@nau.edu

Class time: TuTh 2:20 - 3:35 PM

Office Hours: TuTh 8:30 - 9:30 AM; Room 090-205.

MS Teams: Please hangout, discuss, create channels for specific groups and issues. Join here -- Use the code cg9mzqt to be automatically approved

Syllabus: REVIEW the policies, grade breakdown, and Textbooks recommended. Read it here

iClicker: Attendance and in-class polls. Access our course here

Course Schedule

Groups

Please, list your group in the group page. Be careful! If a conflict is flagged, create a pull request and wait.

Reference

The main book for this course is:

  • FOGEL, Karl. Producing Open Source Software. O'Reilly. Available online: http://producingoss.com (Creative Commons) Other good references:
  • HAFF, Gordon. How open source ate software. Apress, Lancaster (2018).
  • EGHBAL, Nadia. Working in public: the making and maintenance of open source software. Stripe Press, 2020.

Interesting movies

  • Revolution OS "REVOLUTION OS tells the inside story of the hackers who rebelled against the proprietary software model and Microsoft to create GNU/Linux and the Open Source movement."
  • The Pirates of Silicon Valley

Extra points available!

Please check the following three opportunities for extra points (also available on BBLearn):

Each of them will be worth 3 extra points at the end of the semester.

Navigate the course

Course Purpose

This course is intended to familiarize students with the fundamentals of Open Source Software development. We aim to prepare the students for the real world, exposing them to real projects. The practical objective of the course is to teach students how to participate in an OSS project. Specific areas addressed in this course are:

  • Open source concepts and history;
  • Open source communities and forges;
  • Intellectual property and license;
  • Version control systems;
  • Communications tools;
  • Issue trackers;
  • Contribution to Open Source Software project.

Course Student Learning Outcomes

Upon successful completion of this course, students will be able to demonstrate the following advanced competencies:

  • LO1: understand how a team interact and collaborate to develop a software;
  • LO2: differentiate between open source and closed source software;
  • LO3: use version control system and issue tracker as development tools;
  • LO4: evaluate and review code contributions;
  • LO5: understand intellectual property rights, licensing, and the implications of using open source;
  • LO6: build solutions and fixes in order to contribute to a project with legacy code;
  • LO7: participate in an OSS community, contributing code (in a controlled environment);
  • LO8: understand open source project management.