www.cursoprogramacao.com
Curso de programação

www.cursoprogramacao.com
Curso de programação
         para não-programadores


www.cursoprogramacao.com
Curso de programação
         para não-programadores


www.cursoprogramacao.com
Harlley Oliveira
twitter.com/harlley



Especialista em design de interação

Programador web desde 2002

Ministrei cursos e palestras na e-
Genial, Serpro e PUC-Minas
Sobre o curso
Programação para não-programadores
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos + Exercícios
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos + Exercícios+ Personal Programmer
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos + Exercícios+ Personal Programmer

Lógica de programação
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos + Exercícios+ Personal Programmer

Lógica de programação + Tecnologias web
Sobre o curso
Programação para não-programadores


Para empreendedores, designers e estudantes
Totalmente online, você segue o seu
ritmo
Vídeos + Exercícios+ Personal Programmer

Lógica de programação + Tecnologias web


www.cursoprogramacao.com
Software
O software é abstrato. Não
conseguimos pegar nele.
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório

Semáforo
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório

Semáforo + injeção eletrônica
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório

Semáforo + injeção eletrônica+ microondas
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório

Semáforo + injeção eletrônica+ microondas

São criados por programadores
O software é abstrato. Não
conseguimos pegar nele.

Sistemas operacionais

Jogos eletrônicos

Programas de escritório

Semáforo + injeção eletrônica+ microondas

São criados por programadores

Usando uma linguagem de programação
Afinal, o que é uma linguagem
       de programação?
Processador




http://www.flickr.com/photos/rgeyer/4784454723/
Processador

        Circuito eletrônico




http://www.flickr.com/photos/rgeyer/4784454723/
Processador

              Circuito eletrônico

É onde toda mágica acontece




      http://www.flickr.com/photos/rgeyer/4784454723/
Processador

              Circuito eletrônico

É onde toda mágica acontece

     Cérebro do computador




      http://www.flickr.com/photos/rgeyer/4784454723/
Operações aritméticas
Operações aritméticas
Operações lógicas
Operações aritméticas
Operações lógicas
                        É obediente
Operações aritméticas
Operações lógicas
                            É obediente
                        É muito rápido!!!
Operações aritméticas
Operações lógicas
                                    É obediente
                                É muito rápido!!!



                        Não entende nossa língua
Computadores só entendem
  linguagem de máquina
http://www.flickr.com/photos/thomashawk/72778606/
Sistema decimal




http://www.flickr.com/photos/thomashawk/72778606/
Sistema decimal
0 1 2 3 4 5 6 7 8
        9




 http://www.flickr.com/photos/thomashawk/72778606/
2 3 5 7
2 3 5 7
3   2   1   0

2 3 5 7
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x 1 x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x1 x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x1 x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x1 x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x1 x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
3   2   1   0

  2 3 5 710
   2   3 5 7
   x   x x1x0
     3  2
  10 10 10 10
  = = = =
2000+300+50 + 7 = 2357
Então como os computadores fazem
 contas, já que eles não tem dedos?




         http://www.flickr.com/photos/53921113@N02/5453210446/
http://www.flickr.com/photos/iandavidrees/2268316587/
http://www.flickr.com/photos/iandavidrees/2268316587/
                                                       1
0
Sistema binário




                  0
Sistema binário

 0 ou 1




                  0
Sistema binário

 0 ou 1

   bit




                  0
Sistema binário

  0 ou 1

    bit

8 bits = 1 byte




                   0
Álgebra booleana
 Sistema binário

  0 ou 1

    bit

8 bits = 1 byte




                                0
Álgebra booleana
 Sistema binário

  0 ou 1

    bit

8 bits = 1 byte




                                0
Álgebra booleana
 Sistema binário   George Boole
  0 ou 1

    bit

8 bits = 1 byte




                                   0
0 1 0 0 0 0 1 1
0 1 0 0 0 0 1 1
0 1 0 0 0 0 1 12
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1 =
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1 = 67
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1 = 67
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1 = 67   C
7   6   5   4   3   2   1   0

0 1 0 0 0 0 1 12
0 1 0 0 0 0 1 1
x x x x x x x x
 7   6   5   4   3   2   1   0
2 2 2 2 2 2 2 2
= = = = = = = =
                                         Tabela
0 + 64+ 0 + 0 + 0 + 0 + 2 + 1 = 67   C    ASCII
ASCII

 American Standard
Code for Information
    Interchange
ASCII

  Código Padrão
Americano para troca
  de Informações
Tabela ASCII completa:
  http://bit.ly/yz8ZVv
Tabela ASCII completa:
  http://bit.ly/yz8ZVv
Entrada   Processamento   Saída
Desafio 1

  Entrada   Processamento   Saída
Desafio 1

  Entrada   Processamento   Saída

 00110101
 00101011
 00110011
Desafio 1

  Entrada   Processamento   Saída

 00110101
 00101011
 00110011
Desafio 1

  Entrada   Processamento   Saída

 00110101
 00101011
 00110011
Desafio 1

  Entrada   Processamento   Saída

 00110101
 00101011
 00110011
Desafio 1

  Entrada   Processamento   Saída

 00110101
 00101011                   00111000
 00110011
Desafio 1

  Entrada           Processamento              Saída

 00110101
 00101011                                      00111000
 00110011

       a) Quantos bits foram enviados para o
                   processador?
Desafio 1

  Entrada           Processamento              Saída

 00110101
 00101011                                      00111000
 00110011

       a) Quantos bits foram enviados para o
                   processador?
 b) Quantos bytes?
Desafio 1

  Entrada           Processamento              Saída

 00110101
 00101011                                      00111000
 00110011

       a) Quantos bits foram enviados para o
                   processador?
 b) Quantos bytes?
 c) Qual mensagem foi enviada?
Desafio 1

  Entrada               Processamento          Saída

 00110101
 00101011                                      00111000
 00110011

       a) Quantos bits foram enviados para o
                   processador?
 b) Quantos bytes?
 c) Qual mensagem foi enviada?
 d) Qual foi a saída?
010011101111101001101101011001010
111001001101111011100110010000001
100010011010010110111011100001011
100100110100101101111011100110010
000001101110111000110110111100100
000011100111110001101101111001000
000110110001100101011001111110110
101110110011001010110100101110011
001000000111000001100001011100100
110000100100000011011101111001101
110011001000000110100001110101011
011010110000101101110011011110111
               0011
Desafio 2: O que está escrito
010011101111101001101101011001010
           aqui?
111001001101111011100110010000001
100010011010010110111011100001011
100100110100101101111011100110010
000001101110111000110110111100100
000011100111110001101101111001000
000110110001100101011001111110110
101110110011001010110100101110011
001000000111000001100001011100100
110000100100000011011101111001101
110011001000000110100001110101011
011010110000101101110011011110111
               0011
http://www.flickr.com/photos/kalleboo/4662230463/
A linguagem de programação serve
pra fazer a ponte entre a linguagem
humana e a linguagem de máquina
Assista o vídeo em
www.cursoprogramacao.com

Curso de programação para iniciantes: Afinal, o que é uma linguagem de programação?