Computer programming can be very frustrating, especially when you are first learning. I believe there is an initial "hill" that you need to surpass in order to get the hang of it. I think one thing most people don't realize (I certainly didn't) is how STUPID computers are. Seriously, you have to tell them every little thing. Unlike people, who would probably be able to make a peanut butter and jelly sandwich if you gave them a brief overview, computers are not very good at making assumptions. Truly realizing this takes a while (believe me, I still forget). But as an example, let's say I told you how to make a peanut butter and jelly sandwich:
-Get out peanut butter, jelly, and two slices of bread.
-Take a knife, put the jelly on one slice of bread, and peanut butter on the other
-Put the slices together and enjoy!
Now for a computer, this is what we'd need to say. Let's assume the two pieces of bread are already on the countertop:
-Walk to fridge location
-Open fridge door
-Take peanut butter out of fridge (located on Shelf 3)
-Close fridge door
-Go to counter
-Put peanut butter on counter
-Walk to fridge location
-Open fridge door
-Take jelly out of fridge (located on shelf 2)
-Close fridge door
-Go to counter
-Put jelly on counter
-Open peanut butter jar
-Take knife
-Put peanut butter on knife
-Pick up bread slice 1 and apply peanut butter on knife to bread slice 1
....etc.
Do you see how complicated that is? A human is much smarter than a computer. Whenever you program, it is really helpful to draw a map of what you really want the computer to do. You can't just say, I want you to make a sandwich! You have to break the process into steps (and sometimes, you'll have to break down each step too). It takes a while to get the hang of how computers think (it's quite different than how you think, though you'll realize in many cases, you do think the same way, you just skip lots of the steps in between).
I'm sorry you are feeling a bit confused. I think everyone at the beginning is confused (I definitely was). The important thing is to not give up. In general with learning, sometimes you have to read things over and over again until finally it clicks. Other times when you are reading something, you'll look up one word, only to find that you also have to look up the words in that definition, until finally you see words that make sense.
If Scratch is confusing, then other languages are probably going to be even more confusing. I know you are in 8th grade, and Scratch might seem a bit "kiddy" because of all the bright colors, but it's visual style also makes it much easier to learn how to program because it has lots of nice functions that are built right into the software (so you don't need to worry about programming them yourself). I actually used Scratch for a class in my last year of college, and what is cool is that now more than 200 people have played our game on the Scratch website.
I don't know of other resources for science fair projects, but I'm sure if you do a google search on "computer science projects" or something similar, you'll find some. We are working on getting more varied computer science projects. Unfortunately, too many of the ones we have right now are strictly math related.
You could also check out Alice 3D, which also gives a beginning programmer lots of tools to create something cool, but it's in 3D instead of 2D like scratch. The website is here:
http://www.alice.org/
I think in order to do a good project, you should try to fiddle around with Scratch and Alice to get the basics of programming down. Then, it will be easier to learn other languages and do a more advanced project.
The scratch Project Idea I gave you was from the video games section (
https://www.sciencebuddies.org/science- ... p023.shtml). I would suggest looking more at the troubleshooting section on that page. The scratch website has some videos and a guide on how to get started programming. Even if you don't end up using scratch for a project, they might be helpful.
I found this website which will help you learn a little bit of C++ and some basics of programming:
http://www.cprogramming.com/tutorial/lesson1.html
I learned how to program using "Scheme" (also called "Lisp").
There are tons of other resources online if you don't like those. Just try things like "programming if statement" or "programming loop" etc.
Whatever you decide to do, remember that it isn't going to make sense right away. It's going to take quite a bit of effort to get to the point where it finally clicks. But you do keep saying you want a challenge

. Learning how to program is definitely challenging. Just keep with it!
I think one of the best ways to learn is to look at other people's code and fiddle around with it, so do that when you can too.
Good luck and if you have more questions about your project, let us know.