While it's illegal to not pay someone for useful work in my country (US), if you were a match I'd look into internships and paying intern wages once you showed any capacity to do work we could use after bringing you up to bare competence via starter projects.
From: http://www.dol.gov/elaws/esa/flsa/scope/er15.asp
--
If all of the following criteria apply, the trainees or students are not employees within the meaning of the Act:
The training, even though it includes actual operation of the facilities of the employer, is similar to that which would be given in a vocational school;
The training is for the benefit of the trainees or students;
The trainees or students do not displace regular employees, but work under close supervision;
The employer that provides the training receives no immediate advantage from the activities of the trainees or students and, on occasion, his operations may even be impeded;
The trainees or students are not necessarily entitled to a job at the conclusion of the training period; and
The employer and the trainees or students understand that the trainees or students are not entitled to wages for the time spent in training.
--
Very few internships in the US can satisfy all of these.
> would like to gain some programming experience preferably under the supervision of an experienced programmer.
I think that describes a mentoring situation fairly accurately.
If you can find something that interests you a lot, then contact the lead programmer on the project and see if you are welcome to stick your oar in.
Keep in mind that most people will reluctant to do this because most software guys are under serious pressure to deliver and may not want to take on someone that might slow them down.
If that's their worry make sure you tell them they can nix the deal without hard feelings if they feel that's the case, that might give you an edge on the way in.
Being "under the supervision of an experienced programmer" gives you expierence quicker than working alone.
The real trick is going to be finding a place where you will have a good mentor. You might be surprised to know that many programmers who are employed are not very good at programming even though they get paid for it. You don't want to be learning from someone like that.
Another option might be to talk to some of your professors at school. They might have their own projects going, or know someone who does. They would also better know people who might be good mentors.