CS5152Open-Source Software EngineeringEach student will work in a team on an established code base from an active open-source project using the guidance of an industry mentor from that project.
Kickoff HackathonThe Kickoff Hackathon, sponsored by Facebook, will kick off the projects by putting students in face-to-face contact with their project mentors from industry. All students are required to attend. The Kickoff Hackathon will most likely be the weekend of January 31st and February 1st. Unlike previous years, the Kickoff Hackathon will be held here and will be only Cornell students and project mentors.
ProjectsStudents 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.
Grading75% of a student's grade will be determined by contribution to the code base. The industry mentor will provide the majority of this evaluation. The remaining 25% of a student's grade will be determined by class participation and deliverables. There will be no final exam, but there will be final deliverables such as short papers and presentations to be done at the scheduled final time.
Weekly MeetingsEvery week students will video conference with their entire team, including their mentor, for 30 minutes hopefully during lab hours (some teams may need to meet outside of class due to external constraints). 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.
By November 21st, 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. For students newly admitted for Spring 2015, please send me an application as soon as possible.You are not expected to have any software-engineering experience, but it would be describe any programming experience you have from classes, internships, or personal projects. You may provide a Cornell faculty member and/or a mentor from a past internship as a reference. Senior and MEng students will be given priority, and juniors will be admitted if space permits. Undergraduates, please include your current (major) GPA. MEng students, please include your undergraduate (major) GPA.
You will not be able to enroll in this class directly, since enrollment is tentative on being admitted. Please enroll in classes as if this class were unavailable, since it is easier to drop classes than add them, and once admitted into CS 5152 your enrollment is guaranteed.
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.A group document of the project and contributionsAn individual document of contributionsA group presentation of the project, contributions, and experienceAn 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.
A project-based follow-up course to CS/INFO 3152. Students work in a multidisciplinary team to develop a game that incorporates innovative game technology. Advanced topics include 3D game development, mobile platforms, multiplayer gaming, and nontraditional input devices. There is a special emphasis on developing games that can be submitted to festivals and competitions, or that can be commercialized.
Students taking the masters-level version (5152) are expected to show individual masterof the topic material beyond their work in a group setting. This includes the completionof individual projects as well as taking a leadership position within their group.
This course satisfies the Engineering communication requirement in the School of Engineering via the companion courses ENGRC 4152and ENGRC 5152All students are required to enroll in the appropriate ENGRC course, regardless of their college.
CS5152 - Open-Source Software EngineeringEach student will work in a team spanning multiple (international) universities on an established code base from an active open-source project using the guidance of an industry mentor from that project.
Groups/TeamsOn Cornell's side, there will be 8 groups each comprised of 5 students and each a part of a larger team spread across many universities. Each Cornell group will have two representatives, who will have extra responsibilities such as attending and transferring knowledge from the Hackathon (below), and who are obliged to stay in the class for the entire semester.
Kickoff HackathonThe 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 representatives will be able to attend, and consequently they must attend and must train their colleagues with what they learned when they return (some found it useful for the non-attending students to remote in via Skype or Google Hangout and follow the processes). The Kickoff Hackathon is the weekend before classes start, Friday February 7th through Sunday February 9th, being held in Menlo Park, CA. Facebook and Cornell will pay for plane tickets, hotel rooms, and food. Students can visit longer at their own expense.
GradingMost 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 class participation and deliverables. There will be no final exam, but there will be final deliverables such as short papers and presentations to be done at the scheduled final time.
Application ProcessBy November 15th, 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 representative, a regular group member, or both. Those who wish to be representatives must provide a Cornell faculty member the instructor can consult for recommendation. Senior and MEng students will be given priority, and juniors will be admitted if space permits. Undergraduates, please include your current (major) GPA. MEng students, please include your undergraduate (major) GPA.
3a8082e126