Skip to content

GSOC 2018

Anthony Marakis edited this page Mar 26, 2018 · 4 revisions

Hi Folks, I'm Pierre de Lacaze ([email protected]). Dragomir Radev ([email protected]) and I will be your mentors for the AIMA Python Project for the AIMA Code organization!

This page will serve to coordinate the application process for the program!

If you have any questions, kindly check the FAQ first and then if you still need to, ask here using the #gsoc tag and Dragomir or myself will reply. We also encourage you the join the gitter channel to communicate with others.

Here is are some key aspects of the process:

  1. Schedule
  2. Scope
  3. Applications
  4. Criteria
  5. FAQ

Schedule

Familiarize yourself with the timeline. Here is the importanty dates:

Date Deadline
February 12th discuss application ideas
March 12th applications opens
March 27th applications closes
April 23rd students announced
May 14th coding begins
June 15th phase 1 evaluations
July 13th phase 2 evaluations
August 14th coding ends
August 21th final evaluation

Scope

Take a quick look at other people's experience last year to get a sense of their project, their accomplishments and advice on future work.

Applications

There are three main resources that you want to collect to apply:

  1. About yourself
  2. About your summer
  3. About your work

Tell us about yourself:

  1. resume, name, email, school, year
  2. personal projects and
  3. online footprint (e.g. blog, github, twitter, etc)

Tell us what you want your summer to be like:

  1. Form a plan: what chapters/algorithms would you like to explore? Just a general idea is fine.
  2. Tell us why you think that's a realistic plan: do you have other commitments?
  3. Tell us how would you like to work together.

Bonus points: show us a sample of your best work

We are looking for a solid record of achievement in building high quality educational material.

If you have already been contributing to AIMA Python point us to it.

Otherwise:

  1. Drop us a line to introduce yourself.
  2. Take a look at the existing algorithms
  3. Pick one algorithm to prototype from the book:
  4. Design it.
  5. Get feedback. Add a comment in this list sending a link to your design doc.
  6. Prototype (advice)
  7. Get more feedback. Add the link to your prototype here.
  8. Use the link of the thread in your application.

Criteria

First and foremost, we are looking for students that have the ability to create really good explanations of algorithms in the book serving readers. Readers first, code elegance second. So clear exposition of the material is key. For example here is some advice from Peter.

We'll be considering students based on this ordered list of criteria:

  1. design,
  2. engagement and
  3. coding

design

Students will be compared first and foremost by the quality of their designs: a solid record of achievement in designing educational material.

As a general rule of thumb, we'll look first at depth, second at breadth. So a single well designed and explained algorithm from the book will be favored over several quickly designed and poorly explained algorithms.

Here are a few design patterns that have emerged in good work.

Here are some of the criteria to judge quality:

  • how well can you explain/present algorithms?
    • is it better than reading the book alone?
    • is it better than watching the class alone?
    • is it easy to comprehend for a large number of students with a varying degree of prior knowledge?
    • is it correct?
    • if you sent this to an arbitrary CS/AI student who read the book, would they recommend this to others.
  • can you execute well?
    • do you feel like you know in which order to do things?
      • are you able to design things prior to prototyping?
      • are you able to prototype things prior to productionizing?
      • are you able to write good production code?
    • do you have a good intuition on when to pivot and when to push further?

Here is some advice from experience.

engagement

  • have you engaged early and often?
  • how many rounds of reviews have we gone through?
  • do you feel like we have made good progress during the interaction?
  • how good do you think your design is turning out?
  • what are your plans for the summer?
  • do you think you have formed a solid plan of attack?
  • how many visualizations do you think you can build?
  • how often would you like to meet?
  • tells us how you think your summer as a GSoC student will look like.

coding

  • how is your Python kung-fu grip?
  • git?
  • TDD?
  • links to existing projects?