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
Amigos! 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
- 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
Esperamos 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
Temos 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
O 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
Entã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
-
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.
-
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.
- 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.
GO TO FULL VERSION