views:

1013

answers:

19

I just finished and passed data structures and I need a good programming project for the summer to keep my skills sharp.

+8  A: 

Check out this nice list of ideas.

André
really nice list. Thank you for sharing
bastianneu
+2  A: 

Ask your professor. They exist to teach you. They would love to offload some busywork. Welcome to graduate school, you're about to be the department's favorite undergrad.

Karl
+1  A: 

Try with a library for handling MP3 metadata, whose format is called ID3. I once did that, it's fun, and then you use it for organizing and tagging your mp3 files ☺

Ariel
+1  A: 

Build something you need or want, or if you use gnu/linux or other free software contribute by adding something you like, or just contribute by fixing other peoples bugs. For example you could look at the google summer of code for rejected projects that you could help out working on.

mog
+5  A: 

Project Euler has a lot of great problems aimed at furthering your abilities.

geowa4
Wow, dude, this site is addicting! Thanks!
ArielBH
+2  A: 

Cruise around SourceForge or CodePlex and find an open-source project to contribute to. Working with an existing codebase will teach you very different things than you'll learn doing homework or greenfield projects.

Joe White
A: 

Invent your own programming language. Write a compiler for it that produces your own kind of byte code. Write an engine to execute the byte code.

Daniel Earwicker
A: 

If you use an open source project try to support them by supplying code, patches, ideas or just translate the documentation. Really cool projects are always open to the public, therefore if you really want to do something on your own share the program/code for free and satisfy your new customers. Participate on SO and other communities and share your gained knowledge (eg. on codeproject). Unfortunately you are already to late for this years google summer of code, but maybe you will have chance next year. Have a nice summer! :)

merkuro
A: 

if you know PHP and work with Linux, why not give a hand on Wordpress development? There's a lot of Open Source project awaiting help.

Omar Abid
+2  A: 

Whenever this kind of question comes up, I like to link to the "Nifty Assignments." It's a collection of assignments made up by various CS teachers for first/second semester students.

http://nifty.stanford.edu/

We did a couple of them in my data structures class, so pick one that sounds interesting and see if you can get through it. Some of them are designed for Java but you can definitely do them in C++. Or use it as an excuse to learn Java.

MatrixFrog
+1  A: 

your answer is in your question. Now start implementing those data structures in C++ and verify the running times :)

neesh
A: 

What do you use your computer for? Something to organise your music or pictures perhaps?

Patrick
+2  A: 

I have an idea I've been wanting to do, but I don't have time for it. It's a compiler, but an easy one. The language is exactly C, but instead of braces, it uses Python's indentation style.

That's all there is to it. Just a simple translation. You should always get valid C code out of it to compile with a C compiler.

Nosredna
That sounds like a good idea!
fengshaun
I'm wondering if I just started a project for it at Google Code if someone would write the code while I was writing the wiki. I was thinking of calling the language "See." There would be see2c and c2see converters.
Nosredna
+3  A: 

Rather than invent an exercise there are thousands of open-source projects looking for coders.

I'm working on an open-source project to add a model loader to the game engine Spring. All the C++ code for the model loader is in a GIT repo already and there is an enthuiastic community of developers on IRC and the Spring forums who could help you with specific questions. I can help via IM. The problem is about intermediate difficulty and I'm sure I would have finished it by now if I did not have a commercial project eating all my time.

There are a lot of mod makers who have been looking forward to native 3DS support for a long time, if you decided to help with this your efforts would be much appreciated.

SpliFF
+1  A: 

Try to think of something you yourself have use for, making something useful is always more motivating and fun. Can be some command line tool to sort music/picture as suggested before.

Joakim Elofsson
A: 

Create Protocol see http://reboltutorial.com/blog/dzone-protocol/ It's really fun. You're not obliged to use Rebol but Rebol is no-brainer.

+1  A: 

We can't help too much because we don't know your preferences.

If you taked C++ as your language. You can learn QT or GTKmm if you are on linux, MFC for windows... Look for Managed C++ for .NET. I don't know what do you like to develop.

George IV pointed you to Euler, I like that idea too.

If you really want a project, you can think what do you like to have in your computer... music player, video player, note taking program...

Or the other idea is looking for and Open Source project that you like and make patches for the bugs o make a feature you like and send it to the project.

In short, are the answer here are similar... make a project you like, join a project, continue learning something...

See you.

Jesus Rodriguez
+1. knowing C++ well is important, but you won't become productive until you're familiar with one of the many foundation classes used in the industry. I would also add boost to the list, but the idea is the same.
eran
+1  A: 

How about practicing the ACM programming contest problems...

http://cm.baylor.edu/welcome.icpc

Tons of exercises- associated with this contest...

iwanttoprogram
A: 

Try to solve every given Problem here:

Python Challenge

A lot of Problems are fun to solve and point you to the next challenge. As a side note..you get to know the strengths and weaknesses of Python. But you can solve the Problems with any other language too. :-)

bastianneu