\section*{Outline}
\frame{\tableofcontents[pausesections]}


\section{Introdução}
\subsection{Definições}
\frame{
\frametitle{Sistemas Complexos}
\begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Sistemas Complexos}}
\begin{itemize}[<+-| alert@+>]
\item Sistema com um grande número de constituintes ou partes, que interagem entre si. 
\item Aparece um comportamento coletivo complexo. 
\item As interações são conflitantes mas não são complicadas.
\item O comportamento do todo é diferente da soma das partes. 
\end{itemize}
\end{beamerboxesrounded}

}

\frame{
\frametitle{Mini Vocabulário}
\begin{itemize}[<+-| alert@+>]
\item Elementos, partes, componentes,
\item Interações, conexões, relacionamentos, redes, 
\item Emergência - não linearidade, escalas, 
\item Padrões, descrição, informação, 
\item Dinâmica, resposta, feedback, homeostase, controle
\item Adaptação, evolução, organização, auto-organização,
\item Conflito, satisfação, frustração, otimização 
\item História, diversidade, sensibilidade às condições iniciais
\item Complexidade, descrição do sistema, entropia 
\end{itemize}
}

\subsection{Motivação}
\frame{
\frametitle{Como Estudar Sistemas Complexos ?}
\begin{itemize}[<+-| alert@+>]
\item Macroscópico $\longleftrightarrow$ Microscópico
\item Termodinâmica $\longleftrightarrow$ Mecânica Estatística
\item Escalas, frustração $\longleftrightarrow$ Transições de Fase
\item Interações assimétricas, metaestabilidade, flutuações 
\item Simulações Computacionais eficientes
\item Monte Carlo, automata celulares, simulated annealing, amostragem entrópica
\item Tamanho finito, multigrid
\end{itemize}
}

\frame{
\frametitle{Simulações}
\pgfdeclareimage[interpolate=true,width=\textwidth]{landau}{landau}
\pgfuseimage{landau}
}

\section{Sistemas Binários} 
\subsection{Álgebra de Boole}
\frame{
\frametitle{Sistemas Booleanos}

Propósito: simplificação

\only<2->{Adequado para implementação em computadores digitais}

\only<3->{Fácil paralelização}

\pgfdeclareimage[interpolate=true,width=2.5cm]{boole}{Boole}

\only<4->{
\begin{columns}
\begin{column}[c]{2.8cm}
\pgfuseimage{boole}
\end{column}
\begin{column}[c]{7cm}
\textbf{Boole, George (1815-1864)}
\only<5-> {
\begin{itemize}[<+-| alert@+>]
\item Criador da Lógica Matemática
\item The Mathematical Analysis of Logic (1847)
\item Operações Básicas: AND $\bigwedge$, OR $\bigvee$ e NOT !
\item particular: álgebra de ordem 2 (0 e 1)
\end{itemize} }
\end{column}
\end{columns}
}
} % end frame 

\frame{
\frametitle{Operações Booleanas} 
\pgfdeclareimage[interpolate=true,height=4cm]{AND}{boolean-and}
\pgfdeclareimage[interpolate=true,height=4cm]{OR}{boolean-or}
\pgfdeclareimage[interpolate=true,height=4cm]{NOT}{boolean-not}
\begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação AND $\bigwedge$}}
\begin{center}
\pgfuseimage{AND}
\end{center}
\end{beamerboxesrounded}
} 

%slide 1
\frame{
\frametitle{Operações Booleanas} 
\begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação OR $\bigvee$}}
\begin{center}
\pgfuseimage{OR}
\end{center}
\end{beamerboxesrounded}
} %slide 2

\frame{
\frametitle{Operações Booleanas} 
\begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação NOT ! }}
\begin{center}
\pgfuseimage{NOT}
\end{center}
\end{beamerboxesrounded}
} %slide 3

\frame{
\frametitle{Tabela Verdade} 

\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Operações Booleanas}}
\begin{table}[htbp]
  \centering
  \begin{tabular}{|c|c|c|c|}
   \hline & AND & OR & XOR \cr
   \hline 00 & 0 & 0 & 0 \cr
   01 & 0 & 1 & 1 \cr
   10 & 0 & 1 & 1 \cr
   11 & 1 & 1 & 0 \cr
   \hline 
  \end{tabular}
\end{table}

\end{beamerboxesrounded}

\only<2->{ P: Quantas operações binárias existem ? }

} % end frame


\frame{
\frametitle{Diagrama de Conjuntos}
\pgfdeclareimage[interpolate=true,height=4cm]{venn}{booleanvenn}
\pgfuseimage{venn}
} % end frame

\frame{
\frametitle{Propriedades}

\only<2->{ Idempotente: 
$$ a \vee a = a \wedge a = a $$}
\only<3->{ Comutativa: 
\begin{eqnarray*}
 a \vee b &= b \vee a \\
 a \wedge b &= b \wedge a 
\end{eqnarray*}} 
\only<4->{ Associativa:
\begin{eqnarray*}
 a \vee ( b \vee c ) &= ( a \vee  b ) \vee c  \\
 a \wedge ( b \wedge c ) &= ( a \wedge  b ) \wedge c 
\end{eqnarray*}}
}


\frame{ 
\frametitle{Problema 1}
\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Escreva}}
\begin{itemize}
\item AND em termos de OR e NOT
\item OR em termos de NOT e AND 
\item AND em termos de NAND (NOT AND)
\item XOR em termos de AND, OR e NOT
\item XOR em termos de NAND e NOT 
\item XNOR (NOT XOR) em termos de AND, OR e NOT    
\end{itemize}
\end{beamerboxesrounded}
} % end frame
%\frame{
%  \frametitle{Bits}
%  como lidar com os bits
%  \movie[externalviewer]{Random Walk}{rw.mpg} 
%}

\subsection{Números inteiros} 
\frame{
\frametitle{Bits \& Bytes}

\only<1->{Os computadores lidam com números inteiros e de ponto flutuante.}

\only<2->{Operações com inteiros são mais eficientes: não tem expoentes.}

\only<3->{Números inteiros são restritos a uma faixa ([$-2^{31},2^{31}-1$] para 32 bits).}

\only<4->{Operações de aritmética devem ser escritas em termos das funções anteriores.}

\only<5->{C possui \texttt{unsigned long int}.} 

}

\frame{
\frametitle{Representação dos inteiros}

\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Números de 3 bits}}
\begin{eqnarray*}
0 & = & 000_2  \equiv  0 \\
1 & = & 001_2  \equiv  1 \\
2 & = & 010_2  \equiv  2 \\
3 & = & 011_2  \equiv  3 \\
4 & = & 100_2  \equiv  -4\\
5 & = & 101_2  \equiv  -3\\
6 & = & 110_2  \equiv  -2\\
7 & = & 111_2  \equiv  -1\\
\end{eqnarray*}

\only<2->{Complemento de 2   ( $-Y = 2^B -Y $) } 
\end{beamerboxesrounded}
}

\subsection{Operações com Inteiros}
\frame{
\frametitle{Operações Básicas}

\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Soma}}
\begin{center}
\begin{tabular}{rccccc}
   & \only<2->{6} &          &   &\only<2->{$110_2$} \\
 + & \only<3->{3} & $\equiv$ & + &\only<3->{$011_2$} \\
   \cline{1-2} \cline{4-5} & \only<5->{1} &  & &\only<4->{$001_2$} \\
% $6+3 = 110_2 + 011_2 = 001_2 =1$
\end{tabular}

\only<6->{Overflow!!! Carry !!! }

\end{center}
\end{beamerboxesrounded}
}

\frame{
\frametitle{Operações Básicas}

\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Multiplicação por $2^n$}}
\begin{center}
\begin{tabular}{rccccc}
   & \only<2->{3} &          &   &\only<2->{$011_2$} \\
 + & \only<3->{3} & $\equiv$ & + &\only<3->{$011_2$} \\
   \cline{1-2} \cline{4-5} & \only<5->{6} &  & &\only<4->{$110_2$} \\
% $6+3 = 110_2 + 011_2 = 001_2 =1$
\end{tabular}

\only<6->{$\times e \div$ por potências de 2 correspondem a deslocamentos (``shifts'') }

\only<7->{Também podem levar a overflow}

\only<8->{Note que esta representação funciona para a multiplicação}

\only<9->{É imediato a adaptação para mais bits ;) }

\end{center}
\end{beamerboxesrounded}
}

\frame[containsverbatim]{ 
\frametitle{Problema 2}
\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Escreva um programa para }}
a soma de dois números inteiros, só utilizando as funções binárias

\begin{verbatim}
 FORTRAN                       C
 integer*4 a,b                 unsigned int a,b;
 write(*,*) iand(a,b)          printf(``%d\n'',a&b);
 write(*,*) ior(a,b)           printf(``%d\n'',a|b); 
 write(*,*) ieor(a,b)          printf(``%d\n'',a^b);
 write(*,*) ishft(a,1)         printf(``%d\n'',a<<1);
 write(*,*) ishft(a,-1)        printf(``%d\n'',a>>1);
 write(*,*) not(a)             printf(``%d\n'',~a);
\end{verbatim}
\end{beamerboxesrounded}
} % end frame

\frame{
\begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Potências de 2}}
\only<beamer>{\href{run:./potencia.sh}{Clique aqui}}

\only<2->{Tente descobrir $2^n$-1}

\only<3->{Tente descobrir o $i^o$ bit}
 
\only<4->{Como setar um bit ?}

\only<5->{Como resetar um bit ?}

\only<6->{Como inverter um bit ?}

\only<7->{Como fazer um shift circular ?} 
\end{beamerboxesrounded}
}