“Bored” is generally a bad word to use with teachers, because it doesn’t get to the cause. And, the teacher can take it as an attack on their teaching style. You can say, and teach your son to say, “needs more challenge”. I would recommend testing for GATE. You may not think he is gifted compared to people you know, but you probably hang with a pretty bright crowd.
Are you in San Diego Unified or one of the outlying districts? These are not bad schools, so you should be able to get some help if he is needing more. Check the district’s website to see about GATE testing and what they do for GATE kids. There may be clustering or differentiation.
Certainly, it’s important for kids to get outside, but they also need challenge at the level that is appropriate for them.
Teaching kids computer programming younger is actually a good area for them to advance in, because it doesn’t duplicate learning they will be doing in the classroom in a few years. In contrast, some parents whose kids want to learn more encourage them to push forward in math, which is really fun for some kids, but the schools often aren’t set up to deal with that well until high school.
My 16-year-old son started learning programming pretty early. I’m not sure that learning programming from books is the way it’s done these days, with all the online stuff. He now learns stuff from the reference API websites, asks and answers debugging questions on StackOverflow, and participates in forums mostly about landscape generation in video games. He did get one college textbook on an area he was researching, but mostly he disdains physical books.
His early programming tools (which may or may not be around anymore) were Squeak, GameMaker (good: teaches OO principles in a graphical way), some robot programming kits like Mindstorms, and Scratch. Nowadays there is a lot of good stuff at code.org, Codecademy, Khan Academy, and more. When he was about 8, he took “Dark Basic” and Flash programming classes at a local place, but still mostly used graphical programming tools. If your son is advanced beyond his years at programming, you might be surprised as how young a kid local programs will be happy to accept.
I think he started with Java and Python around 5th grade, and eventually took 3 programming classes through AoPS in 6th grade and jr high. He used Java a lot for making Minecraft mods, and Minecraft is a big social connection for kids these days. He took the AP Computer Science test in 8th grade and got a 5, so that did replace a course he could have taken at the high school, but he’s past that and now enjoys programming competitions like USACO. There are lots of kids even younger than him who do quite well on the USACO. He did some summer work at the local UC developing a Scratch-based curriculum for teaching computational thinking to 5th graders. He will likely take several community college Comp Sci classes during high school. California community colleges are generally set up well for high school kids to take classes. Robotics programming at the high school level is often in C/C++, so learning Java early is a good start.
Anyway, all that is to say that programming is a great area in which to accelerate your kid, and maybe to reengage him with learning. You can communicate that computer science at the college level requires a lot of math, so he should not be ignoring that in school.