Hi, I often try to expand my knowledge studying on my own. So most of my learning is on my own. I wish now to start studying Computer Science, but honestly, I haven't the slightest idea where to begin. I downloaded the free book Concrete Abstractions by Max Hailperin, Barbara Kaiser, and Karl Knight since it seems ideal for me. However, it talks abouts schemes and says "To make full use of this book, you will need access to a computer with an implementation of the Scheme programming language; for the ®nal chapter, you will also need an implementation of the JavaTM programming language, version 1.1 or later." I don't even know what a scheme is. I'm hoping that someone can help point me in the right direction to start off my studies in computer science. So far I've studied the usual core math sequences of a standard Mathematical Physics B.S curriculum and a bit more (Functional Analysis and Lebesgue Integration and basic Algebraic Topology as found in "Geometry, Topology and Physics" by M. Nakahara. I am in severe need of a review in Differential Geometry as applied to General Relativity and also abstract algebra. ) I tried to take a course in numerical analysis but it required that have some knowledge computers, which I do not, at least not on a sophisticated level. I know nothing about statitics and probability or number theory. Thus, math recommedations would also be helpful.