Skip to main content


CS5152 - Open-Source Software Engineering Students will work in teams spanning multiple (international) universities on established code basefrom an active open-source project using the guidance of a mentor from that project.

Groups/Teams On Cornell's side, there will be 8 groups each comprised of 3 students and each a part of a larger team of 3-8 students total spread across many universities. Each group will have a leader, who will head the Cornell branch of that group's team. The team leader will have extra responsibilities, such as transferring knowledge from the Hackathon (below), and is obliged to stay in the class for the entire semester.

Kickoff Hackathon The Hackathon, hosted by Facebook, will kick off the projects by putting students and faculty in contact with each other and the project mentors from industry. There will be workshops on many of the basic skills, such as setting up development environments, learning source-control protocols, and getting an understanding of the relevant code-base layouts. Only our group leaders will be able to attend, and consequently they must attend and must train their colleagues with what they learned when they return. The Kickoff Hackathon is the weekend before classes start, Friday January 18th through Sunday January 20th, being held in Menlo Park, CA. Facebook will pay for plane tickets, hotel rooms, and food. Students can visit longer at their own expense.

Projects Students will rank the available projects in order of interest, and a matching process will be run to determine which project a student is assigned to. Team rosters will be settled prior to the Kickoff Hackathon.

Grading Most of a student's grade will be determined by contribution to the code base, namely 75%. The industry mentor will provide the majorit of this evaluation. The remaining 25% of a student's grade will be determined by the final deliverables of the class, described below.

Weekly Meetings Every week students will video conference with their entire team, including their mentor, for 30 minutes during lab hours. These meetings should quickly review what has been done, what problems people are hitting, and what should be accomplished in the next week. In order to keep meeting times flexible so that we may meet the constraints of others on the projects, students must be able to attend all lab times, at least until a meeting time has been decided.

Lecture W 11:15-12:05 in 140 Bard Hall
Lab MF 11:15-1:10 in CSUG Lab, Upson Hall
Units 4

Application Process Before Thanksgiving, students must e-mail the instructor a PDF with a short description (as in less than a page) of their qualifications and motivations for the class. Students must indicate whether they are interested in being a group leader, a regular group member, or both. Those who wish to be group leaders must provide a Cornell faculty member the instructor can consult for recommendation. Only senior and MEng students can apply this year. Seniors, please include your current (major) GPA. MEng students, please include your undergraduate (major) GPA.

Instructor Ross Tate
Office: 4136 Upson Hall
Office Hours: by appointment

Final Deliverables

Time W May 8th 5:00-7:30pm
Location 314 Hollister Hall

There are 4 deliverables total. The first two are due by the beginning of the final. The third will be presented during the final. The last will done during the final and turned in at the end of the final.

  1. A group document of the project and contributions
  2. An individual document of contributions
  3. A group presentation of the project, contributions, and experience
  4. An individual "evaluation" of the presentations

Project Description - 1 PDF per group
This will be a description of the project you worked on, how you contributed as a group, and a brief breakdown of how each individual contributed. The document should be approximately 4 pages long, double spaced, and single column. About 2 pages should be spent on background: describe the project you are contributing to, and explain why there is interest in it (e.g. if there is a company backing it, why? what problem is it supposed to solve? who is expected to be using it?). About 0.5 pages should be spent describing your group's role in this project (e.g. are you adding a new feature? are you improving compatibility/reliability?). About 1.5 pages should be spent describing what you contributed, delineating individual contributions including a discussion of how individuals interacted with each other (e.g. one person was more familiar with existing tools whereas another communicated more with the open-source team).

Contributions and Experiences - 1 PDF per person
This will be a description of your contributions and experiences this semester, which will be provided to your mentor as part of your evaluation. The document should be approximately 3 pages long, double spaced, and single column. Regarding contributions, it should not only contributions to the codebase but also contributions to the group/team (e.g. leadership, communication, knowledge). Regarding experiences, it should tell how you familiarized yourself with the project, learned from your groupmates/mentor/professor, and developed your skills throughout the semester. In other words, this document should be slightly story-like, accounting how your challenges become victories or losses (or were recognized from afar and averted).

Group Presentation - each group member must speak
This will be your chance to show off to and educate the rest of the class. The presentation will be 20 minutes, to be given during the final exam period on May 8th. It should start with background on the project, including a description of what it is and motivation for why it's important to society (or specific communities therein). Then it should focus on what your group contributed (no need to distinguish who worked on what); in other words, show off what you've done. Lastly, it should relay lessons learned from your experiences in this class.

Presentation Evaluations - each person evaluates each other group and individual
You will rate each group on four factors: motivation of project, value of contribution, insight of lessons learned, and quality of presentation. You will also provide a piece of praise for each group along with a piece of constructive criticism. Lastly, you will evaluate each speaker on enunciation, engagement, and volume.