Tag Archives: students

Google Summer of Code 2017 student applications are open!

Are you a university student looking to learn more about open source software development? Consider applying to Google Summer of Code (GSoC) for a chance to spend your break coding on an open source project.

vertical GSoC logo.jpg

For the 13th straight year GSoC will give students from around the world the opportunity to learn the ins and outs of open source software development while working from their home. Students will receive a stipend for their successful contributions to allow them to focus on their coding during the program.

Mentors are paired with the students to help address technical questions and to monitor their progress throughout the program. Former GSoC participants have told us that the real-world experience they’ve gained during the program has not only sharpened their technical skills, but has also boosted their confidence, broadened their professional network and enhanced their resumes.

Interested students can submit proposals on the program site now through Monday, April 3 at 16:00 UTC. The first step is to search through the 201 open source organizations and review the “Project ideas” for the organizations that appeal to you. Next, reach out to the organizations to introduce yourself and determine if your skills and interests are a good match with their organization.

Since spots are limited, we recommend writing a strong project proposal and submitting a draft early to receive feedback from the organization which will help increase your chances of selection. Our Student Manual, written by former students and mentors, provides excellent helpful advice to get you started with choosing an organization and crafting a great proposal.

For information throughout the application period and beyond, visit the Google Open Source Blog, join our Google Summer of Code discussion lists or join us on Internet Relay Chat (IRC) at #gsoc on Freenode. Be sure to read the Program Rules, Timeline and FAQ, all available on the program site, for more information about Google Summer of Code.

Good luck to all the open source coders who apply, and remember to submit your proposals early — you only have until Monday, April 3 at 16:00 UTC!

By Stephanie Taylor, Google Summer of Code Program Manager

2017 Google Online Marketing Challenge Registrations Closing Soon

Don't miss out on your chance to bring marketing theory to life through a practical hands-on learning experience. Register for the Google Online Marketing Challenge (GOMC) today! Professor registration closes on March 22, 2017. Student registration closes on April 5 — but all students must register under a verified professor. Read on to learn more about GOMC.

2016 GOMC Collage 4.png
2016 GOMC Winners Visiting Google

If this is your first time hearing about the Google Online Marketing Challenge? Or you would like to participate and just don’t know where to start? Check out the below questions and answers:

What is the Google Online Marketing Challenge (GOMC)?
GOMC is an annual global online marketing competition for students from higher education institutions around the world. Google provides student teams with a $250 Google AdWords budget to develop and run an online advertising campaign for a real business or nonprofit organization of their choice. An independent Academic Panel, along with AdWords experts at Google, review the campaigns and select winning teams based on the success of their campaigns and the quality of their competition reports.

For more information about GOMC and what is new to the competition this year, check out our 2017 GOMC Launch Announcement.

What is required from a professor to participate in the GOMC?
A professor, faculty member, lecturer or instructor currently employed at a higher education institute can register for the GOMC. In order for students to participate in the GOMC, they must register under a verified professor, but from there, the professor’s level of involvement is up to them. Some professors teach a marketing course focused on GOMC or incorporate it into a subsection of a more all encompassing business/marketing/communications course, while others sponsor students in the GOMC outside of the classroom as an extracurricular activity.

Check out the program Terms and Conditions and answers to frequently asked questions, as well as this Guide to the Google Online Marketing Challenge for a breakdown and timeline of each stage of the competition and tips for getting started!

What do students get out of participating in the GOMC?
The Google Online marketing Challenge provides students with the opportunity to:
  • Gain relevant and valuable skills through a practical hands-on learning experience.
  • Build a true relationship with a client and make a real-life impact in their community.
  • Gain exposure to the digital marketing landscape using real money on a live advertising platform.
  • Become AdWords Certified and put their skills to the test, showcasing their AdWords knowledge and experience to potential employers.
  • Win awesome prizes like a trip to the Google!

Hear from two GOMC alumni about their experiences and how they used their skill set developed throughout the program to land jobs at Google.

For more information on the competition, please visit google.com/onlinechallenge and add our Google+ Page to your circles (google.com/+googleonlinemarketingchallenge) to receive regular competition updates and reminders.

Take learning to the next level with the Google Online Marketing Challenge and register today!

Getting ready for Google Summer of Code 2017

Spring is just around the corner here in the Northern Hemisphere and Google Summer of Code is fast approaching. If you are a student interested in participating this year, now is the time to prepare -- read on for tips on how to get ready.

This year we’ve accepted 201 open source organizations into the program, nearly 40 of which are new to the program. The organizations cover a wide range of topics including (but certainly not limited to!):

  • Operating systems
  • Web application frameworks
  • Healthcare and bioinformatics
  • Music and graphic design
  • Machine learning
  • Robotics
  • Security

How should you prepare for Google Summer of Code?

While student applications don’t open until March 20th at 16:00 UTC, you need to decide which projects you’re interested in and what you’ll propose. You should also communicate with those projects to learn more before you apply.

Start by looking at the list of participating projects and organizations. You can explore by searching for specific names or technologies, or filtering by topics you are interested in. Follow the “Learn More” link through to each organization’s page for additional information.

Once you’ve identified the organizations that you’re interested in, take a look at their ideas list to get a sense of the specific projects you could work on. Typically, you will choose a project from that list and write a proposal based on that idea, but you could also propose something that’s not on that list.

You should reach out to the organizations after you’ve decided what you want to work on. Doing this can make the difference between a good application and a great application.

Whatever you do, don’t wait until March 20th to begin preparing for Google Summer of Code! History has shown that students who reach out to organizations before the start of the application period have a higher chance of being accepted into the program, as they have had more time to talk to the organizations and understand what they are looking for with the project.

If you have any questions along the way, take a look at the Student Manual, FAQ and Timeline. If you can’t find the answer to your question, try taking your question to the mailing list.

By Josh Simmons, Open Source Programs Office

Introducing the Google Summer of Code 2017 Mentor Organizations

Today’s the day! We are excited to announce the mentor organizations accepted for this year’s Google Summer of Code (GSoC). Every year we receive more applications than we can accept and 2017 was no exception. After carefully reviewing almost 400 applications, we have chosen 201 open source projects and organizations, 18% of which are new to the program. Please see the program website for a complete list of the accepted organizations.

Interested in participating as a student? We will begin accepting student applications on Monday, March 20, 2017 at 16:00 UTC and the deadline is Monday, April 3, 2017 at 16:00 UTC.

Over the next three weeks, students who’d like to participate in Google Summer of Code should research the organizations and their Ideas Lists to explore which organizations are a good fit for their interests and skills and learn how they might contribute. Some of the most successful proposals have been completely new ideas submitted by students, so if you don’t see a project that appeals to you, don’t hesitate to suggest a new idea to the organization! There are contacts listed for each organization on their Ideas List — students should contact the organization directly to discuss their ideas. We also strongly encourage all interested students to reach out to and become familiar with the organization before applying.

You can find more information on our website, including a full timeline of important dates and program milestones. We also highly recommend all interested students read the Student Manual, FAQ and the Program Rules.

Congratulations to all of our mentor organizations! We look forward to working with all of you during Google Summer of Code 2017.

By Josh Simmons, Open Source Programs Office

Google Code-in 2016: even more young developers

Google Code-in (GCI), our contest introducing 13-17 year olds to open source software development, wrapped up last month with our largest contest to date: 1,340 students from 62 countries completed an impressive 6,379 tasks! Working with 17 open source organizations, students wrote code, created and edited documentation, designed UI elements and logos, conducted research, developed screencasts and videos teaching others about open source software, and helped find (and fix!) hundreds of bugs.

General statistics

  • 56.4% of students completed three or more tasks (earning themselves a fun Google Code-in 2016 t-shirt)
  • 21% of students were female
  • 30% of the participants from the USA were female
  • This was the first Google Code-in for 1,143 students (85.3%)

Student age


Participating schools

Students from 550 schools competed in this year’s contest. While Google Code-in is a program for individuals, every year some schools emerge as hot spots of participation. This year, these five schools had the most students taking part:

School NameCountryNumber of Participants
Dunman High SchoolSingapore185
Sacred Heart Convent Senior Secondary SchoolIndia29
Jayshree Periwal International SchoolIndia26
Colegiul National Aurel VlaicuRomania23
Ly Tu Trong Specialized High SchoolsVietnam14


We are pleased to have a new country participating in GCI this year: Mauritius! The chart below displays the ten countries with the most students completing at least 1 task.

In June we will welcome all 34 grand prize winners (along with a mentor from each participating organization) for a fun-filled trip to the Bay Area. The trip will include meeting with Google engineers to hear about new and exciting projects, tours of the Google campuses and a fun day exploring San Francisco.

Keep an eye on the Google Open Source Blog in coming weeks for more stats on Google Code-in 2016, plus posts from the mentoring organizations describing some of their experiences with the contests and the work done by “their” students.

We are thrilled that Google Code-in was so popular this year. We hope to continue to grow and expand this contest in the future to introduce even more teenagers to the world of open source software development.

By Stephanie Taylor, Google Code-in Program Manager

‘Paying It Forward’ in honor of Black History Month

Challenge Spotlight: ‘Paying It Forward’ in honor of Black History Month

BGN_Friday Group 01.jpg

Are you a social change agent in your community or know someone who is? If so, we invite you to join Google’s fourth annual “Pay It Forward” Challenge. The deadline to submit an application is March 10, 2017, at 11:59 pm PST.

At Google, we value diversity and inclusion, and we support individuals who do the same. In honor of Black History Month, undergraduate and graduate students are invited to showcase how they have positively impacted and influenced their local communities within the US. In particular, we’re seeking leaders whose work has demonstrated a commitment to expanding access and opportunities for the Black community.  

Last year, we showcased the work of two groups paving the way for leadership in their communities; the Spelman College section of the National Council of Negro Women and the Detroit Revitalization and Business Initiative (Detroit R&B) at the Ross School of Business.

To apply:

Criteria to apply:
  • Individuals who:
    • Currently attend an undergraduate or graduate school at an accredited college or university in the United States
  • Demonstrate a commitment to expanding access and opportunity for their local community

Submissions will be judged by a team of Googlers who will be assessing the innovation, scale and the short- and long-term effects of your impact. The organizations that are chosen will be featured here on the Google Students Blog to amplify their voice, and will have the opportunity to receive mentorship from a Googler to take their impact to the next level!

To both enter the challenge and get more info, visit our 2017 Black History Month website.

If you have questions about the challenge, please email payitforward@google.com.

We look forward to seeing your submission!

The Google Programs team

A Day in the Life: Computer Science Summer Institute/Generation Google Scholarship — Applications open

There’s less than a month left to apply for Generation Google Scholarships and CSSI,
so submit your applications now!

In today’s blog post, we’re giving you a look at a day in the life of Riya, one of our Computer Science Summer Institute (CSSI) students from this past summer. We’ll walk you through her schedule, giving any Generation Google and CSSI applicant a better idea of what the experience is like.

8:45am: I use my badge to get in and head into the classroom with my fellow CSSIers before class starts, where sitting on the tables I see boxes of donuts waiting for us!

9am: Class starts. This morning, we’re learning about object oriented programming in Python.

10:30am: Break for a snack (of more donuts and fruit snacks) and an icebreaker to wake us up.

10:45am: Head back into the classroom and go through a few Python Labs with my partner.

12pm: Lunch time. I head to the cafeteria with the rest of the CSSIers where they’re serving wings. I wait in line and of course have to head over to the panini station to make my own custom sandwich. We then head upstairs to the roof to enjoy lunch in the sun before playing a competitive game of baggo (beanbag tossing!). Afterwards, we go back down to grab a quick yogurt bowl and take it back to the classroom.

1pm: We trickle back into the classroom for the afternoon workshop. Each day, a new person comes to talk to us about different development topics. Today, we’re talking about Impostor Syndrome and how to address this issue.

2pm: Back to OOP in Python. We are working on coding a Ninja game!

3:30pm: We stop for a break where we play Google trivia. The winning students get Google swag — pillows, socks and android toys!

3:45pm: We finish coding the Ninja game and then are tasked with breaking up into groups and implementing a harder version of the Ninja game.

4:30pm: We break into smaller groups to work on the project, and a TA assists when we need help.

5:30pm: Exit survey and daily meme time! At the end of each day a meme is posted by Jessie, the lead for our Chicago site, and we fill out snippets to let the instructors and CSSI program managers know what topics we’re finding challenging, what we thought of the development workshop and overall how we’re doing.

6pm: Over and out. Heading home to get some rest and relaxation!

A big thanks to Riya for sharing her day!


Google Summer of Code 2016 wrap-up: LabLua

This is the final guest post from the students, mentors and organization administrators that participated in Google Summer of Code (GSoC) 2016. We’ve seen recaps of student work and lessons learned, which you can check out the rest of the series as we gear up for this year’s program.

LabLua is a lab at PUC-Rio dedicated to research on programming languages, with emphasis on the Lua language. Lua is a powerful, fast, lightweight, embeddable scripting language that is used in many industrial applications, and on many embedded systems and games.

We were very happy to participate in Google Summer of Code (GSoC) for the third time, and to mentor eight fine students that all completed their projects successfully. We thank them, and Google, for this extraordinary contribution to our research and development work.

Here is a brief summary of this year's projects:

Next Generation of the LuaRocks test suite - Robert Karasek
LuaRocks is the package manager for Lua modules. Its test suite was implemented as a big shell script that performed only black-box testing and ran only on Linux. The goal for this project was to port the test suite to Lua, improving its portability and allowing more types of tests so we could improve test coverage.

Robert ported the test suite to Lua using Busted. His new test suite, now merged into LuaRocks, runs on Linux and Mac OS X, accessible via Travis CI, as well as Windows, accessible via AppVeyor. 

This was a welcome addition, bringing greater confidence to developers. Robert improved the checks in existing tests and wrote many new ones, including a new mock-server for testing a client API for uploading packages to the repository.

Typed Lua Typechecker - Tomasz Dyczek 

Typed Lua provides static type checking for the Lua language. Typed Lua extends the syntax of Lua 5.3 to introduce type annotations, and performs local type inference for more precise detection of unannotated expressions.

Tomasz implemented the core of Typed Lua in Haskell. Tomasz's implementation parses code written in a syntax close to the abstract syntax of Typed Lua, then type checks the generated AST. Besides providing a support for testing and reasoning about new features, Tomasz's typechecker can be also used to validate tests to be included in Typed Lua's test suite.

Classes and Generics for Typed Lua - Kevin Clancy

Kevin worked on the implementation of a class system for Typed Lua. He also added parametric polymorphism (generics) for classes and existing Typed Lua types, such as functions and tables.

Kevin's work currently lives in its own branch, but will be merged into the main branch soon. Meanwhile, Kevin has written a detailed post explaining all the features he implemented

Improving Error Reporting in PEG Parsers - Matthew Allen Go 

LPegLabel is an extension of LPeg, a pattern matching tool for Lua, based on Parsing Expression Grammars (PEGs). LPegLabel supports labeled failures, a facility that improves error reporting and recovery for PEG-based parsers.

The goal of this project was to use LPegLabel to write parsers with good error reporting. These parsers could then be used by the Lua community and also serve as a guide for LPegLabel users. Because LPegLabel is a young tool, another important contribution was to improve the tool's usability.

Matthew achieved both goals. He developed a parser for Lua 5.3, which has been incorporated into the new release of lua-parser (1.0.0), and improved LPegLabel’s usability with work on its API and documentation.

Improving elasticsearch-lua tests and build - Dhaval Kapil

Elasticsearch is a distributed and scalable search engine written in Java that offers a REST API accessed through JSON. During GSoC 2015, Dhaval implemented elasticsearch-lua, a client for the Lua language following a model similar to clients written in Python and PHP.

During GSoC 2016, Dhaval worked on improving elasticsearch-lua. He added a test suite, documented the entire codebase, and updated the current client to work with the newest version of Elasticsearch.

Dhaval went above and beyond, creating a new library called luaver. This work was motivated by having to frequently switch between different versions of Lua while developing the test suite. A full blog post about his project can be found here.

Admin Center and Elasticsearch integration for Sailor - Nikhil Ramesh 

Sailor is a web framework with a model-view-controller (MVC) architecture. Like other web frameworks, such as Ruby on Rails and Django, it is designed to make development faster by making some assumptions and conventions and encouraging principles like Don’t Repeat Yourself (DRY).

Nikhil focused on extending Sailor. The first feature he worked on was an Admin Center, which is a web interface for configuring an application. He also integrated Sailor and elasticsearch-lua, allowing Elasticsearch indexes to be stored as Sailor Models. His work is currently pending as a pull request and will soon be merged.

Extending the online tutorial of Céu with Emscripten and SDL - Margarit Vicentiu

Céu is a language for developing reactive applications such as video games and embedded systems. Its compiler generates output in plain C to integrate easily with the underlying platform (e.g. Arduino, SDL). For this project, we wanted to integrate Céu with Emscripten in order to run applications in a web browser.

Vicentiu started with Céu’s online tutorial, which is a server-side application: the user types code in a text area and hits the send button; the server receives the code, executes it, and sends the output back to the user. During the summer, Vicentiu made most of the examples compile with Emscripten and run in real-time on the user’s screen.

Our next goal is to make the graphical examples with user interactions also work in the browser, and Vicentiu plans to continue contributing to the project to achieve this goal.

An automatic generator of WSDL documents for LuaSOAP - Victor Dias

LuaSOAP is a library for working with the Simple Object Access Protocol (SOAP). WSDL is an XML format for describing network services; it is used to describe operations, messages and types offered by Web Services.

This summer Victor extended LuaSOAP's WSDL support by building a software layer for the automatic generation of WSDL documents. This new layer eases the description of most WSDL "bureaucracy" -- types, operations, ports, messages -- which have no counterparts in Lua. He also improved the test suite and the documentation. Victor's work will be integrated into the next version of LuaSOAP.

By Ana Lúcia de Moura, Organization Administrator for LabLua

Google Summer of Code 2016 wrap-up: CloudCV

This guest post is part of our ongoing series of posts from the students, mentors and organization administrators who participated in Google Summer of Code (GSoC), a program which gets university students contributing to open source software.

Google Summer of Code 2016 was a memorable one for CloudCV. Despite being a relatively “young” organization (this is just our second year as a mentor organization), there were many excellent applicants who put a tremendous amount of effort into their proposals and ramp-up tasks. It was difficult to choose!

CloudCV began in the summer of 2014 as a research project within the Machine Learning and Perception Lab at Virginia Tech, with the ambitious goal of democratizing computer vision and machine learning. We’re run exclusively by students and are working to enable developers, researchers, and fellow students to leverage artificial intelligence technology as a service and to share state of the art algorithms with the research community.

In line with this goal, we decided to build two tools that cater to computer vision researchers and hobbyists alike: CloudCV-fy your code and CloudCV-IDE. Though building two new platforms from the ground up was going to be challenging, our students’ motivation was overwhelming and their performance surpassed all expectations. We even demonstrated their work at CVPR 2016, a top-tier computer vision conference!


A recurring use case for computer vision researchers, and many others, is to build a web-based demo and REST API to demonstrate the capabilities of their creations to the world. But web development involves writing hundred of lines of additional code across multiple languages (HTML, CSS, JavaScript, etc), which takes time away from research.

Our first student, Ashish Chaudhary, took on this problem by building CloudCV-fy. Over many iterations of design and development, Ashish delivered a tool that allows a user to simply write lightweight wrappers around their machine learning model/library and be done. CloudCV-fy automatically builds web-based interactive demos for them -- no need to tinker with HTML, CSS or JavaScript. Code to demo. Done.

The demo can be hosted on our servers, the user’s own server or any third party cloud service. As a result of this, researchers can focus on what they do best: designing and training models. CloudCV handles the rest. You can learn more in the write-up Ashish did on his blog.


There has been an explosion in the number of deep learning frameworks and it is difficult for researchers to keep up with all the latest tools. CloudCV-IDE, built by student Gaurav Gupta, addresses this by allowing a user to build a deep learning network with a drag-and-drop interface, then export to the deep learning framework of their choice (Caffe, TensorFlow, etc).

Gaurav also added support to import model configuration files in order to visualize any architecture. This is one of the first attempts to do this.

By the end of the summer, Gaurav delivered a great UI to visualize models with robust support for Caffe and TensorFlow back-ends. This was a successful start that we plan to build on by supporting more frameworks and facilitating collaborative building of deep learning models.

Overall, this was a highly productive GSoC for CloudCV. Our tools are under active development and we welcome contributions and ideas for new features.

We will definitely apply for GSoC 2017. If you are a student interested in participating we encourage you to get involved early! Feel free to reach out to us on our Gitter channel or on our mailing list.

By Viraj Prabhu, Organization Administrator for CloudCV

Intern Impact: Brotli compression for Play Store app downloads

This month, the Google Play team in our London office was hyped to welcome back Anamaria Cotîrlea, who joins us from Romania, where she studied in the Faculty of Mathematics and Informatics at Babeș-Bolyai University. As a software engineer at Google, Anamaria will be building upon the incredible impact she made as an intern on the Play team this past summer,  when her work resulted in saving users an expected 1.5 petabytes (that's 1.5 million gigabytes) of data each day.

Back in 2015, Anamaria did her first internship with Google in Krakow, Poland. The technical skills she honed at that time set her up for her second Google internship this past summer with the Google Play team. During that internship, she integrated Brotli compression with the Google Play Store in order to streamline app installs and updates. This is hugely meaningful because Android users download tens of billions of apps and games on Google Play — totalling over 65 billion times (and growing), in fact!

It takes a lot of data to download new apps and updates to your existing apps, and we know users care about how much data their devices are using. Play is continually investing in making these installs and updates smaller, and in December 2016, we announced that we started using a new approach to delivering updates, known as File-by-File patching, which reduced the average update size to 65% smaller than the full app.

Anamaria’s project was to add support for Brotli for both new app installs and app updates. Brotli is a compression algorithm developed by Jyrki Alakuijala and Zoltán Szabadka of the Compression Team at Google Research Europe. Brotli was initially launched in 2015, offering enhancements in generic lossless data compression, especially when used for HTTP compression. Its compression rates, speed, and memory usage have been continuously improved, and it has proven to be a powerful tool for app compression, generally outperforming GZIP.

During her internship, Anamaria evaluated Brotli’s performance on our app library and made the changes necessary to our servers and the Play Store app to deploy Brotli for app delivery.

Here are a few examples of Brotli’s compression rate compared to GZIP’s:

GZIP download size (MB)
Brotli download size (MB)
Percent Brotli saves over GZIP
Update Pinterest
Update WhatsApp
Install WhatsApp
Install Pinterest

Not only is this great news for our Android users, but it is also a terrific example of the real-life problems that Google interns are helping to solve, as well as the impact a Google intern can have in just a few short months. Brotli compression for app downloads is rolling out now, and users should start to enjoy the benefits over the coming weeks.