What is a coordinate system? What's a coordinate system?

I was watching a Khan video about coordinates with respect to orthonormal bases. It is mentioned that orthonormal bases make for "good coordinate systems".
I didn't quite digest that - up to this point, I was under the impression that a "coordinate system" was just a set of vectors: $\mathbb{R}^2$ would be the set of all vectors with two real numbers, for instance.
Now I am told that a basis is also a coordinate system. So clearly my understanding of "coordinate system" is not clear.
What IS a coordinate system, exactly? Can any set of vectors be a coordinate system? Is a vector space and a subspace considered coordinate systems? (I guess yes, because $\mathbb{R}^n$ is a vector space).
 A: One simple answer is a coordinate system is a set of vectors that spans the vector space you're interested in. Namely, you can write any vector in that space as a linear combination of the coordinate vectors $\vec{r}=a_{1}\hat{x_{1}}+a_{2}\hat{x_{2}}+...+a_{n}\hat{x_{n}}$. 
So in normal Cartesian coordinates $\hat{x}$ and $\hat{y}$ are the coordinate vectors. But if we rotate these vectors by some angle $\theta$, we have a new set of coordinate vectors $\hat{x}'$ and $\hat{y}'$.
I might be wrong here, but I wouldn't call $\mathbb{R}^{n}$ by itself a coordinate system. It has a canonical coordinate system we quite commonly refer to, but $\mathbb{R}^{n}$ only refers to the space itself.
A: A coordinate system is a way to assign coordinates to points. 
Before the discoveries of Descartes and contemporaries, points were not assigned coordinates. After Descartes, we have Cartesian coordinate systems. As we learn on our mother's knee, one draws two orthogonal lines in a Euclidean plane, and then one uses orthogonal projection to assign two coordinates to each point. 
Once a single Cartesian coordinate system has been set up for $\mathbb{R}^n$, there are many other coordinate systems one can derive from it. 
For example, if you pick an $n$-tuple of vectors $v_1,\ldots,v_n$ forming a basis for $\mathbb{R}^n$, then to each point $p$ you can assign the unique $n$-tuple of coordinates $(x_1,\ldots,x_n)$ such that the point $p$ is the tip of the vector $x_1 v_1 + \cdots + x_n v_n$. To answer one of your questions, this will not work if you pick any set of vectors, only if you pick a set of vectors that forms a basis. 
For another example, one can "translate" any coordinate system. For instance one can slide the entire Cartesian plane over itself so that the origin $(0,0)$ slides to the point $(a_1,a_2)$, so the point $(a_1,a_2)$ becomes the origin of the new coordinate system. A point $p$, which in the original coordinate system has coordinates $(x_1,x_2)$, afterwards has new coordinates $(x_1-a_1,x_2-a_2)$.
To address what was mentioned in the "Khan video", the reason that an orthonormal basis makes a good coordinate system is that the new coordinates that you get are obtained by "rotating" the original coordinate system, as if one were to rotate the entire space rigidly while keeping the origin fixed.
Finally, it is not accurate to say that a vector space (nor a subspace) are considered coordinate systems. Only after making additional choices, such as the choice of a basis, can one derive a coordinate system. In general a naked vector space has no "natural" coordinate system.
