
But the basic difference between O(log n), O(n), O(n^2), and O(2^n) is something you can explain early. I mean, actually understanding P vs NP takes a while, so better not. Lots of things in programming theory is complicated and probably something that is reserved for a uni. Use arduinos or raspberries for that if it's in your school's budget. You can here explain the hardware of a computer. Final questions could be here: "What is a RAID" and "Explain disaster recovery" or even "What is a network backbone in a building."Įlectronics is great.

Keeping computers running, patched, updated, back upped with a few example strategies. It wasn't really until college that I grasped that math and logic were really at the core of the discipline, and I suspect there were lots of us who thought a career in CS would somehow mean we sat around testing computer games all day. I cringe slightly at the conflation of "games are fun" and "how to use the web" with computer science. If I'd had access to some kind of analog breakout box, I would have been in heaven. This kind of thing taught me about programming concepts but was engaging because I was applying it. I spent a lot of time tweaking that code. I also remember following a magazine article that provided and explained an algorithm for drawing bezier curves from various input parameters. I figured out some sound output commands and made a little program that spit out different frequencies which was interesting to me as a way of exploring sound. When I was in that age range, I remember simple applied programming in BASIC was really engaging. Subreddit logo is under an open source license from, found here.Rulesįor more detailed descriptions of these rules, please visit the rules page Related subreddits This subreddit is dedicated to such Computer Science topics like algorithms, computation, theory of languages, theory of programming, some software engineering, AI, cryptography, information theory, computer architecture etc.
