Comet and Wren compare two shared libraries. Both can draw temperature charts for Beacon.
Greenhouse Helpers says anyone may use it, change it and share it, as long as they give credit.
Sprout Tools says the code is copyrighted, and nobody may change it or share it.
"Sprout Tools has prettier charts," Comet says.
Wren taps the license lines. "But we want to change the colors and share Beacon with other outposts."
Nova hovers between the two printouts. "Interesting," she says. "Which license fits what you plan to do?"
Comet reads both again, more slowly this time.
Material created on a computer is the intellectual property of its creator, or of an organization.
Using material someone else created, without permission, and presenting it as your own is plagiarism. It may have legal consequences.
Material created by someone other than you should always be cited.
A license tells you how you may use someone's work. Software licenses include copyright, freeware and many open-source licensing schemes.
Creative Commons is a public copyright license that lets an otherwise copyrighted work be shared freely.
Open source programs are made freely available and may be shared again and changed.
When two libraries meet the same need, a developer can choose the one with the least restrictive license.
| Story library | What its license allows | Fits Beacon's plan? |
|---|---|---|
| Greenhouse Helpers | Use, change and share, with credit | Yes: Beacon can change colors and share |
| Sprout Tools | Use only; no changes, no sharing | No: Beacon cannot be shared with it inside |
| Statement | True or false? |
|---|---|
| Material created on a computer is the intellectual property of its creator or an organization. | ? |
| Code you find shared online is always free to change and share. | ? |
| Open source programs may be shared again and changed. | ? |
| Citing someone else's work is only needed if you change it. | ? |
| Week review | True or false? |
|---|---|
| A procedure may have parameters and return values. | ? |
| Arguments are the values passed to parameters when a procedure is called. | ? |
| Procedural abstraction means you must know how a procedure works inside. | ? |
| Splitting a program into subprograms is modularity. | ? |
| RANDOM(1, 3) could return 1, 2 or 3. | ? |
What a week, developer. Tomorrow is Mission Quest: procedures your family can act out.