Define the function $f: \mathbb N \cup \{0\} \to \mathbb{Q}$ as follows: $f(0) = 0$ and \[ f(3n+k) = -\frac{3f(n)}{2} + k ,  \] for $k = 0, 1, 2$. Show that $f$ is one-to-one and determine the range of $f$.
1. **Define the function and initial conditions:**
   \[
   f: \mathbb{N} \cup \{0\} \to \mathbb{Q}
   \]
   with
   \[
   f(0) = 0
   \]
   and
   \[
   f(3n + k) = -\frac{3f(n)}{2} + k \quad \text{for} \quad k = 0, 1, 2.
   \]

2. **Prove that \( f \) is injective:**
   Suppose \( f \) is not injective. Then there exist \( a \neq b \) such that \( f(a) = f(b) \). Choose \( a \) and \( b \) such that \( \min(|a|, |b|) \) is minimized. Let \( a = 3s + t \) and \( b = 3u + v \) where \( t, v \in \{0, 1, 2\} \).

3. **Analyze the equation \( f(a) = f(b) \):**
   \[
   -\frac{3f(s)}{2} + t = -\frac{3f(u)}{2} + v
   \]
   Simplifying, we get:
   \[
   \frac{3}{2}(f(s) - f(u)) = v - t
   \]

4. **Case 1: \( t = v \):**
   \[
   f(s) = f(u)
   \]
   Since \( \min(|s|, |u|) < \min(|a|, |b|) \), this contradicts the minimality of \( (a, b) \).

5. **Case 2: \( t \neq v \):**
   \[
   f(s) - f(u) = \frac{2(v - t)}{3}
   \]
   Since \( v - t \neq 0 \), \( \frac{2(v - t)}{3} \) is a rational number with a denominator divisible by 3, which contradicts the fact that \( f(s) - f(u) \) should have a denominator that is a power of 2. Hence, \( f \) must be injective.

6. **Determine the range of \( f \):**
   We need to show that all rationals of the form \( \frac{k}{2^l} \) are in the range of \( f \).

7. **Base case:**
   Small integers \( \{-4, -3, \ldots, 3\} \) are in the range of \( f \).

8. **Inductive step:**
   Assume all rationals of the form \( \frac{k}{2^l} \) are in the range of \( f \). We need to show that all rationals of the form \( \frac{k}{2^{l+1}} \) are also in the range.

9. **Constructing the next step:**
   For a given \( \frac{k}{2^{l+1}} \), choose \( t \) such that \( 3 \mid (k - t \cdot 2^{l+1}) \). By the induction hypothesis, there exists \( s \) such that:
   \[
   f(s) = -\frac{k - t \cdot 2^{l+1}}{3 \cdot 2^l}
   \]
   Then,
   \[
   f(3s + t) = -\frac{3f(s)}{2} + t = \frac{k}{2^{l+1}}
   \]

10. **Conclusion:**
    Since all numbers in the range of \( f \) are of the form \( \frac{k}{2^l} \) and we have shown that all such numbers are part of the range, the range of \( f \) consists of all rationals of the form \( \frac{k}{2^l} \).

The final answer is the range of \( \boxed{ f } \) is all rationals of the form \( \frac{k}{2^l} \).