Is $A$ countable or uncountable? Let $A=\{0,1\}^\mathbb{N}$, that is the set of all functions from the natural numbers to the set $\{0,1\}$. 
Is $A$ countable or uncountable? Prove your answer.
$\textbf{Proof:}$ Let $A = \{0,1\}^\mathbb{N}$. Let $f: \mathbb{N} \rightarrow A$. 
Define $\overline{a} = \{\overline{a_1}, \overline{a_2}, \overline{a_3},...\}$ where 
$\overline{a_1} = \{a_{11}, a_{12}, a_{13}, ...\}$, where $a_{11} = 0 \, \text{or} \, 1$, $a_{12} = 0 \, \text{or} \, 1$, ... 
. 
. 
. 
Pick $\overline{a_n} = \{a_{11}^c, a_{22}^c, a_{33}^c, ... \}$. So if $a_{11} = 1$, then $a_{11}^c = 0$, ... 
Then $\nexists n \in \mathbb{N}$ such that $f(n) = \{ a_{11}^c, a_{22}^c, ...\}$ because $\{a_{11}^c, a_{22}^c, ...\} \subset A$, but each element $a_{11}^c, a_{22}^c, ...$ is not mapped by any $n \in \mathbb{N}$ since the compliment does not follow 
$f(1) = \overline{a_1} = \{a_{11}, a_{12}, ...\}$
$f(2) = \overline{a_2} = \{a_{21}, a_{22}, ...\}$ 
Thus, $\nexists$ surjection $f: \mathbb{N} \rightarrow A$. 
$\therefore A$ is uncountable.
 A: I think you've got the right idea, but the proof has such serious flaws with how it is written that I am unsure. Let's go through the issues and then fix them.
The first line of your proof

Let $A=\{0,1\}^{\mathbb N}$. Let $f:\mathbb N\rightarrow A$.

is good - it's always a good idea to start out with the givens. I would also add in, very clearly, your ultimate goal:

We will show that $f$ is not surjective by constructing an element $g\in A$ that is not in the image of $f$.

This sort of statement is good to focus your proof (and your reader) and to sort of close off your introduction of context and variables. It might save you from the dangers that you run into in your next line:

Define $\overline{a} = \{\overline{a_1}, \overline{a_2}, \overline{a_3},...\}$ where 
$\overline{a_1} = \{a_{11}, a_{12}, a_{13}, ...\}$, where $a_{11} = 0 \, \text{or} \, 1$, $a_{12} = 0 \, \text{or} \, 1$, ... \

where you have suddenly stopped talking about $f$ - the only object you introduced - and instead written "define" on something that is patently not a definition given that it just introduces some new variables we've never seen before and said to be equal to an expression involving even more variables that we've never seen before. There's also trouble with misusing the symbols $\{$ and $\}$ to represent a sequence rather than a set.
I think what you mean here is to imagine that each $f(i)$ can be thought of as a sequence of $1$'s and $0$'s - and you want to represent terms of that sequence as $a_{i,j}$ where $j$ is the position in the sequence and $i$ is the input to the function $f$. Note that you could just refer to this value as $f(i)(j)$, which is likely how I would do it, but if you wish to do it this way, I'd write:

We can imagine each element of $A$ to be an infinite sequence of $1$'s and $0$'s - and then imagine a sequence of such elements to be a two dimensional grid of such values. Formally, we define
$$a_{i,j}=f(i)(j)$$
which is an element of $\{0,1\}$.

Note here that our definition is actually a definition - we're taking a given $f$ and writing a new symbol in terms of something that is already known.
Your next line is also not great:

Pick $\overline{a_n} = \{a_{11}^c, a_{22}^c, a_{33}^c, ... \}$.

This creates conflict since you already defined $a_i$ (sort of) - are the values $a_i$ meant to represent the values that $f$ takes or a value that it cannot take? Your proof is not consistent - and this is one reason why I suggest fully writing out your goal at the start. I would rewrite this as, perhaps:

Consider the function $g\in A$ defined by $g(j)=a_{j,j}^c$.

Where we just reuse the notation from our goal. You might also write $g(n)=1-a_{n,n}$ if the $\cdot ^c$ notation is not standard in your context - and you could even define another sequence instead of a function, but I'm not sure why you would. I might avoid sequences entirely and not define $a_{i,j}$ but directly jump to $g(j)=1-f(j)(j)$ - which would shorten the proof a bit (and make it more clear how to prove some generalizations of the theorem).
Then, you would finish your proof somewhat like you have:

We now claim that, for every $n\in\mathbb N$ we have that $f(n)\neq g$.

This is a bit clearer than using quantifiers - and you have a bunch of "fluff" in your proof that doesn't help us move forwards at this point. Better just to state a smaller goal and proceed to prove it. The loss of focus at this point also obscures that you don't really offer up any proof of this fact, beyond repeating definitions and hoping the reader will look at the diagonal.
You ought to, instead, provide this argument clearly using your definitions - as it stands, your proof kind of just defines a bunch of stuff then never uses it, but it's relatively easy to express why the chosen $g$ is not in the image of $f$:

Note that $a_{n,n}=f(n)(n)\neq g(n)=a_{n,n}^c$ by definition of $g$. Therefore, $f(n)\neq g$, completing the proof.

A: $
\newcommand{\N}{\mathbb{N}}
\newcommand{\set}[1]{\left\{ #1 \right\}}
\newcommand{\row}[1]{f_{#1}(1) & f_{#1}(2) & f_{#1}(3) & f_{#1}(4) &\cdots & f_{#1}(n) & \cdots \\}
$
At least in principle and spirit, yes, I would say your argument is correct, though it's a bit hard to follow. Here's how I would argue it.
Suppose $A$ is at most countable. Then clearly it is infinite, so let us write $A := \set{f_i}_{i=1}^\infty$ where $f_i : \N \to \set{0,1}$ $\forall i \in \N$. For simplicity, we take the convention that $0 \not \in \N$, but the argument can be modified to accommodate that if we please.
Each $f_i$ may be characterized by its valuation at each $n \in \N$. Form a square table- or matrix-like object as so:
\begin{matrix}
\row 1
\row 2
\row 3
\row 4
\vdots & \vdots & \vdots & \vdots & \ddots & \vdots &\ddots \\
\row n
\vdots & \vdots & \vdots & \vdots & \ddots & \vdots &\ddots \\
\end{matrix}
Note that $f_i(j) \in \set{0,1}$ $\forall i,j \in \N$.
To show $A$ is uncountable, we use a diagonal argument, by defining a function $f : \N \to \set{0,1}$ which is not enumerated by the table above. Define $f(n)$ for each $n \in \N$ as so:
$$f(n) = \begin{cases}
0 & \text{if } f_n(n) = 1 \\
1 & \text{if } f_n(n) = 0
\end{cases}$$
Thus, $f(n) \ne f_n(n)$ $\forall n \in \N$, and therefore $f \ne f_n$ $\forall n \in \N$, but remains as a function $\N \to \set{0,1}$. Thus, $A$ is uncountable.

Note as well that $A$ is bijective to the set of numbers in $[0,1]$ written in binary notation, if we define the mapping
$$f_i \mapsto 0.f_i(1)f_i(2)f_i(3)\cdots$$
i.e. map a function $f_i \in A$ to a binary number in $[0,1]$ defined by where the function maps each $n \in \N$. More explicitly, we could write
$$f_i \mapsto \sum_{n=1}^\infty \frac{f_i(n)}{2^n}$$
(Note that $0$ is included for the case of $f_i(n) = 0$ $\forall n \in \N$, and $1$ is included for the case of $f_i(n) = 1$ $\forall n \in \N$, noting that $0.\overline{1} = 1$ in binary, much as $0.\overline{9} = 1$ in decimal.)
This mapping is surjective, but not injective. Thus intuitively one sees that $|A| \ge |(0,1)| = c > \aleph_0 = |\N|$.
A: $B$ is equinumerous with the power set of $\Bbb N$ (via characteristic functions).Cantor's diagonal argument (that you sort of reproved) shows it has strictly larger size than $\Bbb N$, hence is uncountable.
