How can I determine if a student would enjoy or has an aptitude for CS? I'm a developer with a little CS teaching history, and I have a nephew who enjoys math (Algebra-Calculus) quite a bit in high school.  Because of this, I feel like he should at least try computer programming, but its not available at his small-town high school.  He's a senior in high school this year (16-17yo).

Are there any games or simple projects/tests that are designed to see if someone enjoys programming?  I think setting him down with an Intro to Java book would be pretty boring and probably not give him a good feel to what programming is about.

I've seen coding challenges for people learning programming, and simple games that seem to be targeted at younger kids.  What I really want is something a teenager can sit down with and say, "oh, so this is what programming is like"...
You shouldn't "test" somebody to check whether they're interested in something. You should give them some stuff you think they might enjoy, and you let them decide for themselves.

There are a ton of programming languages designed for novices, including:


Processing. This is my personal favorite. Shameless self-promotion: I've written a series of tutorials for people exactly like your nephew, available at HappyCoding.io.
Scratch. This is geared towards younger kids, but might be a good "game-like" introduction.
Game Maker. If your nephew is interested in game development, this might be worth checking out. I suggest not limiting him to game dev though.


See also:


What would be a good first choice to teach game programming to beginners?
Using Processing as an entry point in an Introductory Course
Order to Teach Topics in an Intro Programming Class