Skip to content

Latest commit

 

History

History
288 lines (233 loc) · 12.1 KB

2017-Spring-UMSL.md

File metadata and controls

288 lines (233 loc) · 12.1 KB

Seminar in Information Systems - Open Source Software Development

Course Overview

This course is intended to familiarize students with the concepts of Open Source software development and modern development practices. Specific areas of focus are:

  • History of Open Source
  • Communities and governance
  • Technologies used
    • Source control
    • Communications tools
    • Issue trackers
  • Legal aspects (licensing/foundations)

Additionally, students should expect to be challenged in areas of personal development related to the business environment such as giving presentations, writing position papers and analyzing failures.

Administrativia

Daniel Ruggeri - druggeri primary.net
Tues/Thus 5:30pm - 6:45pm, 104 ESH
INFSYS 3898 (Undergrad)
INFSYS 6891 (Graduate)

Textbook

Open Source Software ~ Karl Fogel
ISBN: 0596007590, ISBN-13: 978-0596007591
Download free at http://producingoss.com/

Assignments and Grading

In full transparency, the assignments dished out as well as how they are graded is shared in this section

Homework

Homework assignments will be passed out from time to time involving reading, researching or taking some action. These assignments should be completed by the next class

Presentation

Each student will be required to give a short presentation about a topic.

The reason for this requirement is two-fold:

  • To ensure a certain level of mastery of the topic such that it can be explained well
  • To ensure a certain level of mastery in giving a presentation

This is so each student gets experience in exercising their "marketing" muscle which is not only required in the world of business, but also the world of Open Source. While presentations will be graded on content, a significant portion of the grade will also come from organization of the content, aestetics of any materials presented as well as the ability to adhere to guiding principals for good presentations.

Papers

Communicating well is critically important in the world outside of the classroom and, similar to giving presentations, is a muscle that must be exercised regularly. Students will be tasked with writing short papers in the form of:

  • Position papers in which an opinion and supporting facts (persuasive in nature) should be presented. These documents will be graded on grammar, composition and coherence to the assignment and argument since opinions vary.
  • Summary documents which should be written in a form suitable for a manager to understand the landscape or overview of a concept they are not familiar with. In addition to the points earned in position papers, these documents will also be graded on accuracy of their factual contents and the simplification of complex topics.

Source Control for Pointy Hairs

Exactly 1 physical page
I am a manager that has worked in manufacturing all of my career but have recently moved to become the manager of a software development team. I hear people mention "source control" and things like "commit", "branch", "tag" and such but I don't know what any of these things are. Provide me a one-pager that explains what source control is and gives a few key terms/definitions.

The Best Open Source License Is...

At least 2 physical pages
The legal environment of business and software development is complex. It's even harder when trying to open a code base because there are so many FOSS licenses to choose from. What is the best Open Source license out there and why? Use the first paragraph to make assumptions about why I want to open my code and the remainder of the document to define your choice and explain it.

Participation

The world of Open Source is driven by community so it is important that the community within our classroom is full of individuals willing to contribute to the success of the whole class. Therefore, participation during discussions and presentations as well as within code and the project will be measured over the course of the semester and will contribute to a significant portion of the grade.

Extra Credit

Through the course of the semester, students will have opportunities to earn extra credit. Opportunities will be shared as they come along.

  • Contribute fixes to this course's content
  • Contribute fixes to a real Open Source project
  • Attend ISPC events

Breakdown

  • Homework 10
  • Class Participation 10
  • Paper: Source Control for Pointy hairs 20
  • Paper: The best Open Source Licence is... 20
  • Midterm 40
  • Final 40
  • Presentation: Topics Assigned 20
  • Presentation: About My Favorite Project 20
  • Total 180

Schedule

This is the planned schedule of events for the course. Since topics may run longer or come up short, expect some minor alterations. It's also important to note that when you see discussion come up in the schedule, you should expect the instructor to ask questions that will verify your understanding/homework as well as to cover some of the topics in depth.

Tues Jan 17

  • Get to know eachother
  • Cover syllabus
    • Discuss presentations
    • Discuss project
  • Homework: Read chapter 1 of book
  • Homework: Create a github.com account - email me the username

Thurs Jan 19

  • Chapter 1 discussion - lecture notes
  • Homework: Read Bruce Perens' Open Source definition essay
    • Stop at "Analysis of the Open Source Definition"
  • Consider starting the Version Control chapter (below)
  • Consider starting the Source Control for Pointy Hairs Paper

Tues Jan 24

  • Discuss Open Source definition essay
  • Presentation about giving presentations: Dr. Rottman
  • Source Control - overview
    • Who gets the commit bit?
    • Communications
  • Homework: Read Chapter 3 - Version Control section
  • Remember the Source Control for Pointy Hairs paper

Thurs Jan 26

  • Discuss Version Control learnings - lecture notes
  • Source Control - applied
    • Lab: Creating and using repositories
  • Remember the Source Control for Pointy Hairs paper

Tues Jan 31

  • Source Control - Additional concepts - lecture notes
    • Beware of "fork" term
    • Branching
    • Tags
  • Source Control - applied
    • Lab: Pull requests and patches
  • Homework: Source Control for Pointy Hairs paper

Thurs Feb 2

  • Paper 1 (Source Control for Pointy Hairs) is due
  • Application environments (dev, stage, prod)
  • Guest Speaker: Tom Manor, RedHat - Why I trust Open Source software in my production environment

Tues Feb 7

  • Source Control - applied
    • Another lab to wrap up concepts
  • Homework: Read Chapter 7 - Packaging "Compilation and Installation" and "Binary packages" subsections

Thurs Feb 9

Tues Feb 14

  • Managing dependencies - lecture notes
    • What is a dependency?
    • Why use a library?
    • Automated dependency management

Thurs Feb 16

  • Lab - Show how Open Source software can be changed
    • Download
    • Modify
    • Build

Tues Feb 21

Thurs Feb 23

Tues Feb 28

  • Discuss bug tracking chapter learnings - lecture notes
  • Issue Tracking - overview
  • Bugs vs issues

Thurs Mar 2

  • Issue Tracking - applied
    • Lab: Create an issue
  • Homework: Create your own issue
    • If this issue is for our class, resolve it with a pull request
    • If this issue is in a real project, extra points if you resolve it!

Tues Mar 7

  • Go around the room
    • What issue did you report?
  • Open time - questions/review for midterm

Thurs Mar 9

Mid term examination

(Mar 13 - mid semester)

Tues Mar 14

Thurs Mar 16

  • Community models (part 2) - lecture notes
  • Growth of open communities (non-code related)
    • Wikipedia/Creative Commons
    • Open Education
    • Open Government
    • Open Street Maps

Tues Mar 21

  • Licenses!!! - lecture notes
    • Questions that must be asked of every license
      • What are the terms, are they compatible with planned use?
  • The "big" licenses source
    • MIT
    • GPL 2/3
    • Apache 2
    • BSD

Thurs Mar 23

Tues Mar 28 (spring break)

Thurs Mar 30 (spring break)

Tues Apr 4

  • Discuss communications tools learnings - lecture notes
  • Communications tools
    • Mailing lists
    • IRC
    • Forums

Thurs Apr 6

  • Foundations - lecture notes
    • Their role (some examples)
    • US Non-for-profit types
  • Paper 2 (The Best Open Source License is...) is due

Tues Apr 11

Thurs Apr 13

Tues Apr 18

  • Development best practices - lecture notes
  • Documentation
    • MUST have files: README, CHANGELOG, LICENSE
    • Wiki, FAQ, Website
    • Developer guidelines
    • Translation

Thurs Apr 20

  • Software delivery methodologies - lecture notes
    • Waterfall
    • AGILE

Tues Apr 25

Thurs Apr 27

  • Releasing software - lecture notes
    • Versioning
    • Release procedures

Tues May 2

  • Final exam review

Thurs May 4

  • "Guest Speaker": Daniel Ruggeri, business guy - How to not suck at business

(May 6 - end of classes)

May 9 (finals)

  • Held in 212 ESH

May 11 (finals)

(May 13 - semester close)

Thanks and Attributions

This class has been shaped through input from many folks, but a few notable attributions are deserved: