What kind of Java have you done?If you have done Java, there's a couple things to do over the summer:
1. learn and make android apps
A great place to begin is here:
http://www.vogella.de/articles/Android/article.html#overview_android
2. learn about data structures for Java (queue, linked list, sorting, graphs, trees, recursive algorithm - just pick a few... recursive is a must...)
3. learn about C++ 's pointer since you have already done Java. Java and C++ are very similar. You can pick up the general C++ in a day, and you can rewrite some of your Java codes into C++. Pointers are extremely critical for C++ developers. You just can't live without those. Java doesn't have the C++ pointers. Java offers something different:
http://csis.pace.edu/~bergin/papers/JavaPointerTraps.html (beside the fact that Java does garbage management)
4. Learn PythonFirst of all, I am a strong advocate of C++ for beginners, and not Python for beginners. It is a lot easier to teach beginners about data types, loop invariants with a C-style language. I am not saying you can't do the same with Python. It's probably a personal favor. I have done C++, Python, Java, and Perl. Perl is always out of choice for beginners. Furthermore, many data structure and algorthim books are written for C-style (I count Java C-style too). There are a few books teach those two subjects through presudo codes, but many people prefer to have a book that shows demo code.
Python is a popular language. It is a high-level, intrepert, dynamic, general-purpose language. It is known as a "minimalist language". It comes with some keywords, but if you want more you have to import modules (unlike in Java, the core API is vast). The language looks strange to many C-style lovers. It doesn't have braces or semicolons. Most of the time you don't have to provide the data types. Converting from one type to another is usually an easy task. The language is just weird. In Python, array is simply a list, which does more than just C-style array.
There are many open-source projects written in Python. One excellent way to become better in programming is to read source codes. Moreover, many companies today do Python. It is an ideal language for rapid development. C++ and Java are robust, and C++, in general, preform betters than Python. In practice you choose the one that fits your needs. A web server written in C is probably more powerful than that in Python, but it would take many man hours so we usually scarifies some performances and choose Python over C.
If you have more time, the 5# is to learn about Linux.