Open Academy: Difference between revisions

From KDE Community Wiki
Line 27: Line 27:
== Project proposals ==
== Project proposals ==


=== Improving Ruby Language Support in KDevelop IDE ===
=== 1. Improving Ruby Language Support in KDevelop IDE ===


==== What is this project about? ====
==== What is this project about? ====
Line 39: Line 39:


Most likely your university has automata/compilers/languages class and it is mandatory that you either complete it or be at the end of it before you start on this project. It will simply be too hard to do this project without understanding how things work behind the scenes.  
Most likely your university has automata/compilers/languages class and it is mandatory that you either complete it or be at the end of it before you start on this project. It will simply be too hard to do this project without understanding how things work behind the scenes.  
I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.
==== Who will be the mentor? ====
My name is Alexander Dymo (http://www.alexdymo.com/, https://github.com/adymo). I've been KDE and KDevelop developer since 2002. I'll be glad to introduce you into the exciting world of open source development. Also for 10 years I worked as university professor, so that might help us to make this project an academic success as well.
At this time I'm located in Chicago, US.
==== How this will work? ====
We'll use some project management tool (like [http://www.acunote.com Acunote] that I've developed) to keep track of project goals and progress. We'll make detailed plans every week and have an IRC meeting each Friday to discuss the results.
=== 2. Porting and Packaging KDE on Mac OS X ===
==== What is this project about? ====
Students will port, patch and package to make sure KDE applications run perfectly on Mac OS X. The most curious students will work on porting KDE Frameworks 5 to Mac.
==== Who is it for? ====
This project is ideal for students interested in software porting, packaging and distribution. It is a good chance to take the large software suite, understand how it's organized and built. Unlike other projects, this one is good for dedicated people that like to make perfectly usable software and can dig deeply to understand the core reason why things might not work.
==== Prerequisites  ====
You should be using Mac as your primary operating system and be at least familiar with C++.


I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.
I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.

Revision as of 23:44, 27 December 2013

The hypothesis Facebook is exploring with Open Academy is that the best way to learn about software engineering is to do software engineering. As simple as that sounds, we have not traditionally done a good job with this in academia. CS departments may provide a project experience as part of the curriculum, but it typically does not map well to a real world software engineering experience. Facebook and the partner universities wants to do better.

To help bridge this gap between school and industry, last spring Facebook teamed up with Jay Borenstein, a computer science professor at Stanford, to launch Open Academy. Open Academy is a program designed to provide a practical, applied software engineering experience as part of a university student’s CS education. The program works closely with key faculty members at top CS universities to launch a course that matches students with active open source projects and mentors and allows them to receive academic credit for their contributions to the open source code base.

How it works

  • A student team of 3-8 students, potentially spanning multiple universities, is formed
  • A matching process is run that puts a student team with an open source project
  • The team and a "mentor" from the open source project are flown to a location for a weekend ramp up hackathon (the location is Facebook headquarters in Menlo Park, CA). The students can work on improving the project in two ways: by knocking out low hanging fruit issues that already exist or by identifying and pursuing new functionality
  • The students will work on projects for between 8-20 weeks depending upon the schedules of the universities involved Univerisity faculty will be closely involved and consult with the mentor when determining final student grades. Expectations will be set with the students that states the coding contributions they make - the quality and ambition of them - will be the main factor determining their grade
  • Start date: January-Feb depending on university
  • Feb 7-9 Hackathon at Facebook Headquarters in Menlo Park, CA
  • Midterm Acknowledgment (tbd)
  • End date: Mar - Jun depending on university

Expectations from mentors

  • Attend Kickoff Hackathon at Facebook HQ Feb 7-9, 2014 (your flight and hotel will be paid for)
  • Meet the students working on your project(s)
  • Help the students select project goals and develop plans to achieve them
  • Set expectations for how you like to communicate with the team
  • Be responsive to requests from the team during the course
  • As often as possible, attend weekly, 30 minute remote team meetings (IRC, Hangout or equivalent)
  • Be prepared to provide the course instructor with a grade recommendation at the end of the course.
  • Overall time comittment: You are obviously in control of this and it is also proportional to the number of students you decide to have, but not counting the hackathon, 3-5 hours per week is our expectation

Project proposals

1. Improving Ruby Language Support in KDevelop IDE

What is this project about?

Students will take existing Ruby language support code in KDevelop IDE and improve the language parser, code completion, refactoring, user-visible features, integration with various ruby development tools and much more. There's a lot to do and students will be able to pick things that are most interesting to them, group into teams as they see fit and dig into the most exciting part of any programmer's editor/IDE - the programming language support.

Who is it for?

This project is ideal for students interested in systems programming, compilers and interpreters. If your university compilers class left you wanting to write your own language implementation, this is your chance to get more real world experience in the area.

Prerequisites

KDevelop language support is written in C++, so you should already know it. At least slight familiarity with Qt will definitely be helpful. KDE and Ruby knowledge is not required at all. At the end of this project you'll become Ruby and KDE expert anyways.

Most likely your university has automata/compilers/languages class and it is mandatory that you either complete it or be at the end of it before you start on this project. It will simply be too hard to do this project without understanding how things work behind the scenes.

I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.

Who will be the mentor?

My name is Alexander Dymo (http://www.alexdymo.com/, https://github.com/adymo). I've been KDE and KDevelop developer since 2002. I'll be glad to introduce you into the exciting world of open source development. Also for 10 years I worked as university professor, so that might help us to make this project an academic success as well.

At this time I'm located in Chicago, US.

How this will work?

We'll use some project management tool (like Acunote that I've developed) to keep track of project goals and progress. We'll make detailed plans every week and have an IRC meeting each Friday to discuss the results.


2. Porting and Packaging KDE on Mac OS X

What is this project about?

Students will port, patch and package to make sure KDE applications run perfectly on Mac OS X. The most curious students will work on porting KDE Frameworks 5 to Mac.

Who is it for?

This project is ideal for students interested in software porting, packaging and distribution. It is a good chance to take the large software suite, understand how it's organized and built. Unlike other projects, this one is good for dedicated people that like to make perfectly usable software and can dig deeply to understand the core reason why things might not work.

Prerequisites

You should be using Mac as your primary operating system and be at least familiar with C++.

I'm willing to mentor 3 students working on this project. Maximum 4 people. Due to my other commitments I'll simply have no time for larger groups.

Who will be the mentor?

My name is Alexander Dymo (http://www.alexdymo.com/, https://github.com/adymo). I've been KDE and KDevelop developer since 2002. I'll be glad to introduce you into the exciting world of open source development. Also for 10 years I worked as university professor, so that might help us to make this project an academic success as well.

At this time I'm located in Chicago, US.

How this will work?

We'll use some project management tool (like Acunote that I've developed) to keep track of project goals and progress. We'll make detailed plans every week and have an IRC meeting each Friday to discuss the results.