
Open-Source Software Course at uWaterloo - divad12
We have a group of students at uWaterloo interested in a course where students contribute to open-source software.<p>Here's our proposal:<p>================================================================================<p>The course:
1. Upper-year CS elective (possibly core SE course) open to Math, CS, and certain Engineering programs at the University of Waterloo.
2. First two lectures introduces OSS (history, licenses, major projects), followed by a week of selecting and applying to projects.
3. There would be a dashboard where the OSS community posts projects and students apply. For example, Google Summer of Code - http://socghop.appspot.com/gsoc/list_projects/google/gsoc2010
4. The majority of the course (say, 10 weeks) would be working on the project.
5. There might be a final presentation or report.
6. Lectures (less hours than other courses) would be hosted by a prof experienced in OSS and may also consist of guest speakers (we need to get Torvalds or Stallman).
7. Lectures will be focused on contribution tips, software practices, techniques, and tools.
8. Part of each lecture is devoted to talk about the projects, seeking help from others, and open discussion among students.
9. Biweekly, students give a 2-minute presentation on what they've done.
10. Grading could be based on git commit logs, patches, weekly snippets (what was done this week, what needs to be done next week), email correspondence, and possibly a final report.
11. Would be a very flexible and open-ended course. Students could contribute code, documentation, bug fixes, participate in a mailing list.<p>Rationale:
1. Students can work on exciting projects like Firefox, Chromium, Apache, CPython, WordPress, etc. that have impact in school.
2. Students learn skills relevant to co-op and the software industry.
3. Students could get an internship or full-time offer based on their contributions.
4. Is very relevant to real software engineering.
5. Being a course means that students can earn a credit and have course time to work on OSS.
6. Students gain experience and put OSS on their resumes.
7. Upon graduation, uWaterloo students gain another edge over other students in the job market.
8. Some of the best programmers have participated in the OSS community.
9. Students learn software development practices, tools, and techniques, and have their code reviewed (like co-op).
10. Students gain exposure in the online community and build up a portfolio.
11. Students who wish to contribute but don't have the time or commitment to do it by themselves can receive guidance, mentorship, a network of peers, and a semi-structured course to assist them.
12. Soft Eng has a design project where students work collaboratively on a programming project by themselves. CS needs something practical, hands-on like this.
13. Develop a "hacker" community among programmers at Waterloo, like how VeloCity is Waterloo's entrepreneurial hub. Students meet and interact with other coders.
14. Waterloo would be better known in the software world.
15. Waterloo promotes itself as being innovative and risk-taking. This would likely be a unique course for which Waterloo could be a world leader.
16. The programming community (including CS students) who make use of OSS should give back.
17. This course could be a lot of fun!<p>For the pilot, we plan to get up to about 30 very motivated students who want to do this. This way, the University does not need to worry about lack of enrollment. Initially, to gain momentum, the faculty should reach out and find mentors/project owners who would be willing to try this out.<p>================================================================================<p>Our Software Engineering administrator has just accepted this proposal (in 8 hours!), as a course through UCOSP (http://ucosp.ca/).<p>Do you have any advice on how our school can connect with the open-source community, and get this started? How can we get mentors to sign up (like Google Summer of Code)? Would it be possible to get sponsors?
======
jtregunna
Best advice I can give you is to approach local individuals and organizations
who are more likely to support your project (Google has offices in Kitchener,
for example, some other local companies are very visible in the open source
community; one notable company is Waterloo based PostRank, visible in the Ruby
community). Talk to people, and be up front with what you're looking for.

What's the worst that can happen? Someone can say no. If that's your biggest
problem, you're golden. There are a lot of people who would be willing to talk
to you about this.

