JavaRush /Blogue Java /Random-PT /Materiais adicionais para palestras CS50: Semana 0 (Aulas...
Bender
Nível 1
Маунтин-Вью

Materiais adicionais para palestras CS50: Semana 0 (Aulas 1 e 2)

Publicado no grupo Random-PT
Quem ainda não assistiu às palestras de Harvard sobre noções básicas de programação, acesse aqui: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Introdução. Estrutura do curso CS50

Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 1Amigos! Na introdução, iremos lembrá-lo (ou contar a quem quer que seja) sobre a estrutura do CS50. O curso dura 12 semanas. Todas as semanas há duas palestras, além de todo tipo de seminários e explicações. Publicaremos artigos como este assim que as palestras estiverem prontas. Conterá uma breve descrição das aulas teóricas, notas sobre “shorts” e informações adicionais, bem como traduções de trabalhos práticos. As palestras da semana zero cobriram os seguintes assuntos:
  • Sistema numérico binário.
  • ASCII
  • Algoritmos e pensamento algorítmico
  • Compiladores
  • Linguagem zero
  • Expressões Booleanas
  • Condições
  • Ciclos
  • Variáveis
  • Funções
  • Matrizes
  • Fluxos
  • Eventos
Metas da semana 0:
  • Entenda como as informações podem ser representadas digitalmente.
  • Aprenda construções e conceitos básicos de software.
  • Crie sua própria animação, jogo ou atividade interativa usando Scratch.
  • Impressione seus amigos =).

CS50 Semana 0 (Aula 1-2): notas

Algoritmos

Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 2Esperamos que você já tenha assistido às palestras e entendido que o algoritmo divide a solução de problemas (vários problemas, matemáticos ou “como chegar à estação N do metrô”) em etapas. Além disso, cada etapa deve ser concluída em um período de tempo finito e deve haver um certo número de etapas propriamente ditas. Além disso, o próximo passo depende do anterior. Você pode ler mais sobre algoritmos, por exemplo, aqui . Se você sabe inglês, aqui está uma animação TED maravilhosa de David Malan: https://youtu.be/6hfOvs8pY1k Embora em geral as informações do vídeo repitam as da palestra =).

Sistema numérico binário

Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 3Temos 10 dedos e o sistema é decimal. Ou seja, podemos representar qualquer número, por maior que seja, usando os números 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Dependendo de onde o número está no número, pode significar coisas diferentes: se este dígito for o último, então ele está localizado na casa das unidades, o penúltimo está na casa das dezenas, ainda mais à esquerda está na casa das centenas e assim por diante. Essencialmente, qualquer número pode ser escrito como uma soma de dígitos, cada um dos quais multiplicado por dez elevado a uma determinada potência. No caso de unidades - zero. Por exemplo, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . O número pelo qual os dígitos são multiplicados é chamado de base do sistema numérico. Para o sistema decimal, a base é logicamente dez. O computador não tem dedos, mas existem dois estados: condicionalmente “a corrente está fluindo” e “a corrente não está fluindo”, zero e um. Assim, todos os números (e informações em geral) na memória do computador consistem em apenas dois dígitos - 0 e 1. Sua localização, como no caso do sistema numérico decimal, indica o dígito. Só agora o número pode ser decomposto na soma dos dígitos multiplicados não por potências de dez, mas por potências de dois. 0 em binário = 0 1 em binário = 1 2 em binário = 10 7 10 =111 2 Aprenda a converter de binário para decimal. Você provavelmente já entende como isso é feito - simplesmente pegamos o dígito do número começando do mais à direita e multiplicamos pela base até a potência correspondente ao seu dígito e somamos tudo com cada dígito. Exemplo: Vamos encontrar o análogo decimal do número binário 101101 2 O mais à direita = 1*2 0 O próximo zero = 0*2 1 O terceiro da direita = 1*2 2 O quarto = 1*2 3 .. . e assim por diante 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Imagine oito lâmpadas dispostas em fila. Cada um deles tem seu próprio switch. Cada uma das lâmpadas é uma descarga. O que você pode imaginar, lembre-se da primeira palestra (existe um dispositivo assim) ou aqui está um widget para você: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play com ele, pratique “sentir” o sistema binário. Convertendo de decimal para binário. Aqui também tudo é muito simples, se você entender a essência. Aqui temos o número 57 10 . Para convertê-lo para o sistema binário, você precisa determinar qual potência máxima de dois não excede esse número. 2 6 = 64. Isto é claramente demais. Mas 2 5 = 32. Agora determinamos o dígito mais significativo. 32 10= 100000 2 . Agora estamos procurando o próximo dígito. 57-32 = 25. Agora, para 25, procuramos uma potência de dois que não exceda 25. 2 4 = 16. Isso significa que nosso próximo dígito também é igual a 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, isso é menor que 9. Isso significa que o próximo dígito também será um. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, ou seja, resta apenas uma potência 2 0 . Assim 57 10 = 111001 2 . Se de repente algo não estiver claro, você pode ler mais no Wikibook, e se você é bom em inglês, aqui está um pequeno acréscimo à palestra.

ASCII

Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 4O computador só entende zeros e uns, e sua memória pode ser representada como uma longa série de lâmpadas com interruptores, como você viu acima. Já entendemos como representar números em um computador. E o resto das informações? Cartas, fotos? Digamos que existam 26 letras no alfabeto inglês. Ou seja, teoricamente podemos representar letras com números de 0 a 25, apenas no sistema binário. Surge a seguinte questão: como podemos entender se temos uma letra minúscula ou maiúscula? E os sinais de pontuação? Sinais invisíveis como espaços? Resumindo, precisamos de um sistema de codificação, Cap! Na década de 1960, havia muitos esquemas diferentes que codificavam caracteres. A falta de uniformidade provou ser um problema e, em 1963, o American Standards Institute, ANSI, desenvolveu e introduziu o esquema de codificação ASCII (American Standard Code for Information Interchange). Cada caractere ASCII consiste em sete bits, ou sete bits, cada um dos quais pode assumir o valor 0 ou 1. 7 bits podem conter números de 0 a 127 em binário, o que significa que temos 128 números para codificar caracteres. Parece que isso é suficiente para codificar a fala escrita em inglês? Vamos contar: az - 26 opções AZ - mais 26 0-9 - 10 ,;:~& e outros sinais de pontuação - 32 E mais um espaço. Total - 95 caracteres. As 33 opções vagas restantes são usadas para os chamados caracteres de controle, como avanço de linha ou retorno de carro: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg É importante distinguir entre caracteres de 0 a 9 e valores numéricos de 0 a 9. Os caracteres de 0 a 9 são representados pelos valores ASCII 48 a 57. É interessante notar que os quatro bits mais à direita desses valores ASCII são representações binárias dos valores numéricos de 0 a 9. Isso simplifica um pouco a maneira de converter entre valores ASCII e seus valores numéricos reais. Vamos começar a programar?

Arranhar

Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 5Então, Raspe. Você aprendeu sobre essa linguagem de programação visual e seus comandos básicos na palestra. Para experimentar o Scratch você mesmo, siga o link e clique em “Participar”. Uma vez registrado, você pode começar a programar online. Sim, a propósito, hoje o Scratch está parcialmente russificado. A ajuda, porém, ainda está em inglês. Se desejar, você pode brincar e também ver o código dos projetos dos alunos que foram demonstrados na palestra. Aqui está o Pikachu Pastry Catch . Ou um projeto com separação de resíduos em diferentes recipientes: https://scratch.mit.edu/projects/71161586/ David e a empresa pedem que você não se preocupe se achar que não consegue realizar projetos tão complexos: este nível já requer alguma habilidade .

Exercício

  1. Para entender melhor os processos que acontecem no Scratch, você pode baixar o código-fonte de diversos projetos aqui . Brinque e veja. Aprender o código de outra pessoa é muito útil. Esta é uma das melhores maneiras de descobrir o que há dentro desses programas nos quais você ainda não amadureceu. Depois de começar a entender como esses aplicativos funcionam, você poderá seguir em frente com segurança.

  2. Agora é hora de fazer algo sozinho. O desafio é se divertir e ao mesmo tempo implementar um pequeno projeto do zero. Pode ser animação, jogo, ação interativa.

Requisitos do projeto:
  • O programa deve conter pelo menos dois sprites (personagens, imagens), e um deles definitivamente não deve ser um gato =).
  • Deve haver pelo menos três scripts (ações).
  • Pelo menos uma condição, um loop e uma variável devem ser executados.
  • Pelo menos um som deve ser incluído no programa.
Ou seja, em essência, seu projeto será mais complexo que os escritos na palestra, mas mais simples que os brinquedos demonstrados sobre Pikachu e coleta de lixo. Portanto, seu projeto provavelmente usará várias dezenas de quebra-cabeças que compõem o código do Scratch. Se algo não funcionar, talvez seja necessário mudar sua abordagem para resolver o problema. O principal é ir sem medo! Convidamos você a tirar dúvidas e compartilhar seus projetos nos comentários.

Scratch: um guia rápido para ação

O sprite é o objeto central do projeto. Qualquer personagem – um gato, um avião, uma bola – é um sprite. Se você adicionou dois gatos diferentes, estes serão dois sprites diferentes. Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 6Cada sprite possui scripts que descrevem seu comportamento. Estes são blocos de ação. Fantasias são a aparência dos objetos. Os próprios sprites são essencialmente apenas desenhos. Cada sprite pode ter vários trajes. Para criar um sprite, você precisa selecionar seu traje original na biblioteca do Scratch, desenhar o seu próprio no editor integrado, fazer upload de qualquer imagem ou até mesmo tirar uma foto usando sua webcam e carregá-la. Todos os sprites são colocados no chamado palco. O palco é essencialmente a nossa tela, o cenário do programa. Você também pode anexar sons da biblioteca a um sprite ou cena, ou pode carregá-los ou gravá-los você mesmo usando um microfone. Para iniciar a execução do programa, você precisa clicar na bandeira verde no canto superior direito da janela da cena. Mas antes de fazer isso, você precisa colocar o seguinte bloco no programa: Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 7E anexar alguns blocos a ele, como se fosse uma peça de design. Por exemplo: Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 8Neste caso, ao clicar na bandeira, o sprite ao qual as ações estão anexadas dá 50 passos e mia. Temos muitos blocos. Eles são divididos em três abas: roteiros, figurinos e sons. Vamos fazer um programa simples com uma condição. Se for cumprido, o gato miará; se não for cumprido, ficará em silêncio. Os operadores estão indicados em verde. Aqueles que testam se uma condição é verdadeira ou falsa têm cantos agudos nas laterais. Estruturas e loops de teste de condição são mostrados em laranja. Eles têm buracos especiais onde você pode colocar outros blocos.

Ciclos:

Repetir um número infinito de vezes: Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 9Repetir algo um certo número de vezes: Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 10Repetir uma ação se a condição for atendida: Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 11Você pode criar variáveis ​​no bloco Dados. No exemplo abaixo, criamos uma variável x, e imediatamente surgiram ações que podem ser realizadas com ela. Você pode definir o escopo das variáveis: para todos os sprites ou para um. Materiais adicionais para palestras CS50: Semana 0 (aulas 1 e 2) - 12A bandeira verde não é a única ação. Também na seção Eventos você pode encontrar diversas outras condições de controle. Por exemplo, você pode escolher o que fazer ao clicar em um botão ou no próprio sprite com o mouse. Se precisar de informações adicionais, você pode encontrá-las, por exemplo, aqui .

O que mais

Se o seu acesso à Internet deixa muito a desejar, recomendamos baixar o editor offline do Scratch em https://scratch.mit.edu/scratch2download/ . Então não se esqueça de enviar seu projeto para http://scratch.mit.edu/ usando Arquivo > Carregar do Computador.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION