PSU CS 462/562: Advanced Open Source Software Engineering
Fall 2015
Instructor: Bart Massey <bart@cs.pdx.edu>
Time: Monday/Wednesday 11:30-13:20 (11:30AM - 1:20 PM)
Place: Fourth Avenue Building (FAB) room 150
CRN: 14768 (462), 14769 (562)
URL: http://wiki.cs.pdx.edu/cs562
Email List: <adv-osse-2015@wiki.cs.pdx.edu>
As always, this is a tentative syllabus. Everything here is subject to vast change with little notice.
Surprise! The schedule page contains schedule information. The wikis from the Fall 2008 offering, Fall 2010 offering and Winter 2013 offering of this course are also available.
There is a blog you should use to comment on upcoming papers.
Course Content
The catalog says: This course surveys the growing academic literature describing tools, techniques, community management, project management and collaboration strategies used in open source software development. Emphasis is placed upon tool-driven development, upon open development processes and tools, and upon comparison with processes and practices in proprietary software. Prerequisites: CS 300.
Open Source is a (relatively) new thing built on old foundations. Indeed, the principles and practice of open technology stretch way back beyond the computer to the beginnings of scientific thought.
In this course, we will explore the engineering of open source, in contrast to the programming of open source: programming is the focus of much coursework at PSU. We will compare and contrast Open Source Software Engineering (OSSE) with traditional and modern (e.g. "agile") software engineering, and with the practice of engineering outside of computing. We will concentrate on the key areas in which OSSE has demonstrated particular virtue, and those in which it poses particular problems.
There are a number of potential topics of interest in this course. Discussion of these topics will be organized around two basic ideas:
First, the technical practices and processes of OSSE have evolved around the topics above. We will focus in particular on:
- Source Code Management: tools and practices for source-driven development
- Static and Dynamic Analysis: tools for getting code right
- Reporting and Defect Capture Tools: Bugzilla and stuff
- Software Development Frameworks and Ecosystems.
Second, a topic that is emerging as highly important in the community is the study of the social practices and processes of OSSE. We will look at papers (many from Europe) focusing on
- Motivations for Participation: engineering to support it
- I-mode (individual) vs C-mode (community): two different things?
- Development Patterns: process engineering
The above is just a starting point. We will go where the topic takes us, always keeping in mind that the topic is "Open Source" (not SE in general) "Software Engineering" (not development) and "Advanced" (at the frontier of the discipline). Should be fun!
Course Mechanics
The day-to-day mundanities of this course will be a bit different from the usual PSU fare. Current students, please read and understand these few paragraphs so that you know what you are getting into.
Course structure
This will be a seminar-style course, which may be something that PSU students, especially undergraduates, are not familiar with. Instead of the usual set syllabus and textbook, the class will collaborate on selecting topics of interest, identifying readings on those topics, and reading and presenting them. Guest lecturers will also present material of relevant interest. The catalog says: Readings will be drawn from published work on open source software engineering, and will be supplemented by web content and by example.
Thus, assignments will be highly individualized, and grading
will largely be by course attendance and participation in
course activities. This is not a format suitable for
everyone—students struggling early on are asked to
drop the course rather than make a grading problem for its
instructor.
Communication
This website will be one focus of communication. This is a "wiki" website. Anyone enrolled in the course can register (with the proper password, which will be given in class) to edit the site content. In addition, students will be required to sign up for the course discussion email list. Assignments will be given to increase list participation.
There will be no regular office hours, but students are encouraged to contact the instructor any time by email for an appointment if there are things that seem worth discussing.
Academic Honesty
As always, if you do something that violates the University's or the Department's Student Conduct code, there will be the most severe penalties I can legally and ethically manage. In particular, if you plagiarize (use other people's ideas, text, or code without acknowledgment) I will do what I legally, ethically and practically can to end your academic career. If you have questions, please contact me for clarification.