What are $\aleph_0$, $\omega$ and $\mathbb{N}$ and how are they related to each other? I have seen these three symbols, $\aleph_0$, $\omega$ and $\mathbb{N}$, a lot in my reading (mostly in analysis, I have very limited experience in set theory). I have seen in various places they are used interchangeably, which is confusing for me.
There is no problem that the symbol $\mathbb{N}$ denotes the set of natural numbers. (By convention, the number $0$ may or may not be in the set.) The aleph null $\aleph_0$ is defined as the "cardinality" of the set $\mathbb{N}$. This Wikipedia article says that $\omega$ is the first infinite ordinal. I have seen people use $\mathbb{R}^\omega$ for the set of all real sequences (see, for instance, Munkres's Topology); some people use $\mathbb{R}^{\mathbb{N}}$ instead, which suggests that $\omega$ and $\mathbb{N}$ may be the "same" in some sense. On the other hand, I have never seen $\mathbb{R}^{\aleph_0}$.
The definitions of these three concepts are quite different, yet they seem to be closely related. 
So my question is: how exactly are they related to each other and in what sense they are (possibly) the same?
 A: It may be useful to separate the facts that should be true in any reasonable set-theoretic foundation from the facts that are true by convention in the usual foundation.
Generally true: $\aleph_0$ is the cardinal number of a countably infinite set. $\omega=\omega_0$ is the order-type of a simple infinite sequence (an infinite sequence in which each element has only finitely many predecessors). $\mathbb N$ is the set of natural numbers. 
Convention 1 (von Neumann): Any ordinal (= order-type of a well-ordered set) is identified with the set of strictly smaller ordinals. Thus, $0$ is the empty set, $1=\{0\}$, $2=\{0,1\}$, etc., and $\omega=\{0,1,2,3,\dots\}$. 
Convention 2: A cardinal number is identified with the smallest ordinal of that cardinality. Thus, $\aleph_0=\omega$. (This convention depends on the axiom of choice in general, to ensure that every cardinality is the cardinality of some ordinal. But this is not an issue for $\aleph_0$, which is the cardinality of $\omega$.)
Convention 3: $0$ is a natural number. (A nontrivial number of respectable mathematicians disagree with this and start the natural numbers with $1$.) So $\mathbb N=\omega$. 
In the end, if you adopt all these conventions, you have $\aleph_0=\omega_0=\omega=\mathbb N$. If you adopt other conventions (or no conventions), you need to check what they say about these things, but the general facts that I listed first should still be true.
A: Two sets $A$ and $B$ have the same cardinality iff there exists a bijection $f : A \rightarrow B$.
Two sets $A$ and $B$ have the same order type (under orders $\leq_A$ and $\leq_B$, respectively) iff there exists a bijection $f : A \rightarrow B$ such that $x \leq_A y \longleftrightarrow f(x) \leq_B f(y)$ for all $x, y \in A$.
An ordinal is a hereditarily well-founded and hereditarily transitive set. In ZF, we define the order type of a set as the (unique) ordinal that has the same order type under $\in$.
In ZFC, the von Neumann cardinal assignment defines the cardinality of a set as the smallest ordinal that has the same cardinality. This is called the initial ordinal of that cardinality, or cardinal. Thus $\omega_0$ and $\omega_0+1$, which are different ordinals, have the same  cardinality.
$\omega_0$ is the smallest infinite ordinal, i.e. the order type of $\mathbb{N}$.
$\aleph_0$ is the smallest infinite cardinal, i.e. the cardinality of $\mathbb{N}$.
Under the von Neumann cardinal assignment, $\aleph_0$ is defined as $\omega_0$. However, using the symbol $\omega_0$ or $\aleph_0$ indicates whether we are treating it as an ordinal or as a cardinal, respectively. For example, $\omega_\alpha + 1$ has a different order type than $\omega_\alpha$, so we say that
$$\omega_\alpha + 1 \neq \omega_\alpha$$
but they have the same cardinality, so we say that
$$|\omega_\alpha| + 1 = \aleph_\alpha + 1 = \aleph_\alpha = |\omega_\alpha|$$
$\omega_0$ is the set of all finite ordinals. We notice that these finite ordinals under ordinal arithmetic behave like the natural numbers $\mathbb{N}$ under natural-number arithmetic. That is, we have an isomorphism $\mathbb{N} \cong \omega_0$.
$A^B$ is the set of functions $B \rightarrow A$. Thus $\mathbb{R}^{\omega_0}$ denotes the set of functions $\omega_0 \rightarrow \mathbb{R}$. Because $\mathbb{N} \cong \omega_0$, $\mathbb{R}^\mathbb{N} \cong \mathbb{R}^{\omega_0}$. That is, they are isomorphic.
See also this question.
A: What you are actually encountering here is implicit typing in mathematics, which is prevalent in almost every area of mathematics but is rarely taught in mathematical pedagogy. $\mathbb{N}$ is the type of natural numbers, and if you have members of $\mathbb{N}$ then all you can do on them are operations that require natural numbers as inputs. For example we define various exponentiation operations:

$S^n$ is the set of $n$-tuples from $S$, for any set $S$ and $n∈\mathbb{N}$.
$x^0 = 1_M$ and $x^{n+1} = x^n·x$ for any monoid $(M,·,1_M)$ and $x∈M$ and $n∈\mathbb{N}$.
$x^y = \exp(y·\ln(x))$ for any $x,y∈\mathbb{R}$ such that $x>0$.
$S^T$ is the cardinality of the set of functions from $T$ to $S$, for any sets $S,T$.
$k^m$ is the cardinality of the set of functions from $m$ to $k$, for any cardinals $k,m$.
$k^\varnothing=\{\varnothing\}$ and $k^m = \sup\{ k^p·q : p∈m ∧ q∈k \} $, for any ordinals $k,m$.

Implementation in set theory is very much irrelevant to the intrinsic mathematics. For example, $\mathbb{N}$ is implemented by $ω$ in modern set theory based on ZFC, and hence $0$ is implemented by $\varnothing$, but we never think of $0^2$ as $\varnothing^2$. Why? Because these operations are overloaded but disambiguated by the implicit input types. $0$ has implicit type $\mathbb{N}$, while $\varnothing$ has implicit type "set".
Types are implicitly introduced by mathematical definitions. For example, $\aleph_k$ is defined as the $k$-th cardinal, and this implicitly defines $\aleph_k$ to have implicit type "cardinal". In contrast, $ω$ is defined as the first infinite ordinal, so its implicit type is "ordinal". That is why $ω^ω$ is a countable ordinal while ${\aleph_0}^{\aleph_0}$ is an uncountable cardinal, despite $\aleph_0$ often being implemented as $ω$ in modern set theory.
Your three examples would all be understood by mathematicians who know the individual terms, due to implicit type coercion. That is, when none of the (overloaded) defined operations have matching type signature, we would pick the closest one that is compatible with the inputs according to their actual implementations. Since $\aleph_0$ is a cardinal and cardinals are usually implemented as ordinals, and ordinals are sets at the bottom of it all, we have an available implicit type coercion of $\aleph_0$ from "cardinal" to "ordinal" to "set".
Specifically, $\mathbb{R}^{\aleph_0}$ would be automatically interpreted as exponentiation of sets, which yields the set of functions from $\aleph_0$ to $\mathbb{R}$. $\mathbb{R}^\mathbb{N}$ needs no type coercion. $\mathbb{R}^ω$ yields the set of functions from $ω$ to $\mathbb{R}$, which is of course no different from $\mathbb{R}^{\aleph_0}$ at the implementation level, but at the communication level conveys that the input is an ordinal index, which corresponds to the notion that an ordinary infinite sequence of reals is an $ω$-sequence. Recursive definition of sequences only works for indices from a well-ordering and ordinals are canonical well-orderings (see this post), so it should not be surprising to see ordinals used as exponents to indicate the length of sequences from a set. Another example along this line is $S^{<ω}$, which denotes the set of all finite sequences from $S$, where "$<ω$" is suggestive of the meaning since ordinals less than $ω$ are finite.
