This formed the basis of the parallel algorithm that I accelerated and then implemented synchronously on an FPGA microchip for the Intel STS; it ran on the order of 300 times faster than high-speed sequential approaches.
Moreover, it generalized to solve the NP-complete (much harder) knapsack problem.
There, I had befriended numerous motivated computer science students who were masters in certain specialized areas but lacked the complete technical and business skillset necessary to enter the professional world.
Over the year, I taught them Java Script, PHP, AJAX, XHTML, and CSS, some of the most important Web languages.
I continue to investigate the paradigm's potential today.
I've picked up two nicknames in high school: "Comp Sci Guy" and "J-Dog.By spring, if I had been one of the web servers I was administering, I would have been spouting 503 error messages ("Service Unavailable"; too many requests), but unfortunately, humans aren't allowed the luxury of throwing exceptions.Fortunately, at the beginning of that demanding year, I'd co-founded the Torrey Pines Programming Club.While surfing, as I watched rivulets of water branching and re-fusing as they found their way down my surfboard, I realized that water molecules diffusing throughout a network could essentially function as thousands of identical-speed cars taking every possible path; the first "car" to reach the destination from the origin would have taken the shortest path.I simulated a graph with a network of paper towel strips, soaked one intersection of strips (the origin) in water, and watched the liquid diffuse through the network, marking which incident strip was the first to wet each subsequent intersection.By dawn and dusk (when the wind is most calm), I paddle out with the surf team as J-Dog.Surfing is as visceral as programming is cerebral: dropping into a 7-foot barreling wave is like riding a standup liquid rollercoaster that I control (or if I fall, it's like being a cockroach in a trash compactor). While I sit at peace in the stillness between the hollow waves, my thoughts branch out unfettered - if I've hit a wall with a programming problem, it often melts away in the water.My Intel STS project originated while I was hiking during a thunderstorm.I was pondering, with some trepidation, what determines the paths of lightning bolts; I reflected that they must take some course of least resistance.Almost exclusively by reading the lecture slides of course 6.111, I learned the Verilog hardware description language and the nuances of programmable logic design.The course was so efficiently taught that I was able to do this in just 2 months.