For the initial pilots, we're considering two possible incarnations of this course: as SE 498 or SE 499.
The first offering will be in the fall of 2012 as SE 499. We'll be targetting students in the Software Enginering faculty for these pilots but invite interested students from Engineering or Math to participate (as CS 499, ECE 499, NE 459, etc.).
Independent of the proxy course, topics on open-source software will be presented at weekly meetings.
Lecture Topics
Note that these are brainstorming ideas and will evolve as we iterate on designing this course:
- Version control, DVCS
- Build systems
- Test harnesses
- Continuous integration; deployment
- Architecture of major projects
- Social factors: motivations, collaboration, standardization, manners
- Licensing
- BSD, MIT, GPL, LGPL, EPL, LPPI, OSI
- Business models
- Ghostscript
- Rob O'Callahan (1 project, multiple employers)
- Linus Torvalds
- Guido van Rossum
- RedHat
- Nocharge code, services, support
- When to open source?
- OS usability (Michael Terry)
- Managing large FOSS projects
- History
- BSD
- Linux
- GNU/FSF
- Mozilla
- Android
- Key signing: management
- How to start; contributing
- Learning large code bases; tools for reading code
As SE 498
SE 498 is the special topics course, which follows a more traditional, lecture-oriented model:
- 3 hours per week of lectures
- 2 hours studying per week
- 5 hours programming per week
- Soonest possible date: Winter 2014 (earlier only if there are volunteers willing to forego teaching credit)
- Mandatory exam
- Requires committee (bureaucratic) approval
- Easy to enroll: students will search for projects in the first few weeks
- Larger number of students as a result
Marking Scheme
Since the focus of this course is contributing to open-source software, we reduce the weight of the required exam component in our marking scheme as much as realistically possible for department approval:
- Exam: 30%
- Project: 70%
- Will vary depending on size and scope of project
- Importance of contributions will be taken into account
- Was the contribution accepted?
- Any verification effort (eg. testing)?
- Documentation and presentation
- Group evaluation possible
As SE 499
SE 499 is Software Engineering's individual project course and gives us greater flexibility to implement a project-oriented course:
- 1 hour per week meeting
- 9 hours per week programming
- Final report required
- No exams
- Don't need committee approval
- Closer faculty attention
- First offering: Fall 2012
- Harder to enroll (student needs to figure out project and supervisor before term starts)
- Consequently, we expect a smaller number of students (possibly biasing for more self-motivated students)
- We are considering seminars and meetings before lecture begins to help people get projects
- You just need to find a professors who finds your project sufficiently interesting (eg. Patrick Lam) or in the professors's research areas
- OS 499 organizers may seek OSS projects from industry to assist students in finding projects (two of the organizers will be interning at Khan Academy this summer and we'll ask about a possible collaboration)
As is done normally for SE 499 projects, your professor mentor will be grading your project (plus a secondary reader).
Advantages over SE 499 by itself
- Greater social cohesion
- Get a room with a weekly meeting for lectures, guest speakers, student presentations
- Facilitate matchmaking process: students are excited about doing OSS and profs about research. Get these two groups to realize that they have a lot of overlap.
- OS 499 organizers may provide assistance for students seeking open-source projects through industry collaboration