The first game that came to mind, which I don't own... YET, is called Ergo. Here's the snippet from the game page: "This logical card game is just made for the geek in us. Utilizing cards with variables (A, B, C & D) and familiar logical operators such as 'Not', 'And', 'Or', 'If-Then' and the dreaded 'Parenthesis' (and some gotcha cards such as 'Fallacy!'), players take turns creating and changing up to four lines of 'true' statements. Each player tries to prove that they (their variable) exists (is definitely true) and everyone else...doesn't. Finally, with the Ergo card, whoever at last exists gets the points.A fun romp and definitely one for the gray matter in us all."
There are other games that 'may' teach more general concepts...
RoboRally: Programming robots 7 moves in advance. Factory Fun: Building a factory floor that is self contained. This can perhaps demonstrate functions (input & output). Ricochet Robots: Optimization? Try to move a robot in the least number of moves to a different location on the game board.
The three games listed above are all brilliantly fun games for your target age group. I've had great success in teaching all three of those games to kids ranging from fifth grade on up through high school.
duck! duck! Go! is similar in some ways to RoboRally, but faster & more accessible. It can be used to represent the concepts of priority queueing, and (very important!) the fact that computers generally do *exactly what you tell them too*, not what you want them to or *thought* you told them to.
Another fun exercise (if you've got the space) is to do a live-action roll play based on roborally with a simple board. Robot players get a placard that hangs around their neck that gets their program. User players have to program the robots to move around the board and accomplish the goals, then the program is given to the robot players who execute it 1 step at a time.