Nowadays, the standard way to learn computer science is at a university, though a formal computer science degree program or at least coursework. What I've been wondering is if there is a certification program or exam that exists outside of academia, or at least outside of traditional degree programs, that certifies that someone has mastered the basics of computer science (i.e. looping and branching, pointers, data types, recursion, stacks, queues, automata, Turing machines, Lambda calculus, etc.). Does such a program or exam exist?
To be clear, I have found many exams and certification programs that cover various programming languages and professional areas of computer work (e.g. repair, administration, management, etc.), but that's not really what I'm looking for. Someone certified in J2EE enterprise development or in Oracle 11g administration may be competent to hold an industry job but does not necessarily have a foundation in the theories of computer science (may not know the difference between a context-free grammar and a context-sensitive one, may not be aware of the proof of the Halting Problem, etc.). What I'm looking for would match at least most of the following criteria:
- Can be studied for independently, without needing to enroll in formal university coursework.
- Is focused on computer science theory rather than practical or professional skills (e.g. debugging VBScript, writing Oracle queries, or building 3-tier enterprise apps in LAMP).
- Leads to some sort of recognized certification or qualification in computer science that, combined with an academic degree in something else, could be considered equivalent to a degree in computer science.
I am aware that essentially all of computer science can be studied independently without the assistance of a university, but that path does not normally lead to any sort of formal educational credential of achievement. I'm looking for something along the lines of, "Yes, my degree was in history with a minor in sociology, but I passed the International Competency Examination in Computer Science Theory with a score of A, so I'm at the same level as a typical computer science graduate."
I am also aware of so-called "coding boot camps" that largely exist outside of academia, but those are still sort of an opposite to my question. They exist to impart and certify professional competency (e.g. iOS mobile app development in Swift) rather than computer science fundamentals.