Textbook(s)
![]() |
Forge Your Future with Open Source, VM (Vicky) Brasseur, both print and digital versions available |
![]() |
Producing Open Source Software, 2nd edition, Karl Fogel, |
![]() |
ProGit, 2nd edition Scott Chacon and Ben Straub, |
![]() |
The Cathedral and the Bazaar, Eric Steven Raymond, printed version available from O'Railly |
![]() |
The Architecture of Open Source Applications, Amy Brown and Greg Wilson (editors), |
Practical Open Source Software Exploration, Greg DeKoenigsberg, Chris Tyler, Karsten Wade, Max Spevack, Mel Chua, and Jeff Sheltren, (it hasn't been updated since 2010, but there is some good stuff in there) |
|
The Linux Command Line, William Shotts, |
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."
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
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.
Topics Covered (exact list of topics and their order subject to change, for detailed 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
Academic Integrity Policy
I follow the department's academic integrity rules.
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.
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 "frabjous@gmail.com", "BabyGurl@yahoo.com" 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.