JavaRush /Blog Java /Random-ES /Materiales adicionales para las conferencias CS50: Semana...
Bender
Nivel 1
Маунтин-Вью

Materiales adicionales para las conferencias CS50: Semana 0 (Conferencias 1 y 2)

Publicado en el grupo Random-ES
Quien aún no haya visto las conferencias de Harvard sobre los conceptos básicos de programación, vaya aquí: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Introducción. Estructura del curso CS50

Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 1¡Amigos! En la introducción os recordaremos (o os contaremos a quien sea) la estructura del CS50. El curso tiene una duración de 12 semanas. Cada semana hay dos conferencias, así como todo tipo de seminarios y explicaciones. Publicaremos artículos como este tan pronto como las conferencias estén listas. Contendrá una breve descripción de las conferencias, notas sobre “cortos” e información adicional, así como traducciones de trabajos prácticos. Las conferencias de la semana cero cubrieron los siguientes temas:
  • Sistema de numeración binario.
  • ASCII
  • Algoritmos y pensamiento algorítmico.
  • Compiladores
  • lenguaje cero
  • Expresiones booleanas
  • Condiciones
  • Ciclos
  • variables
  • Funciones
  • matrices
  • Corrientes
  • Eventos
Objetivos de la semana 0:
  • Comprender cómo se puede representar la información digitalmente.
  • Aprenda conceptos y construcciones de software básicos.
  • Crea tu propia animación, juego o actividad interactiva usando Scratch.
  • Impresiona a tus amigos =).

CS50 Semana 0 (Conferencia 1-2): notas

Algoritmos

Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 2Esperamos que ya hayas visto las conferencias y hayas comprendido que el algoritmo divide la solución de problemas (varios problemas, matemáticos o “cómo llegar a la estación de metro N”) en pasos. Además, cada paso debe completarse en un tiempo finito y debe haber un cierto número de pasos en sí. Además, el siguiente paso depende del anterior. Puede leer más sobre algoritmos, por ejemplo, aquí . Si sabes inglés, aquí tienes una maravillosa animación TED de David Malan: https://youtu.be/6hfOvs8pY1k Aunque en general la información del vídeo repite la de la conferencia =).

sistema de números binarios

Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 3Tenemos 10 dedos y el sistema es decimal. Es decir, podemos representar cualquier número, por grande que sea, usando los números 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Dependiendo de dónde esté el número en el número, puede significar cosas diferentes: si este dígito es el último, entonces está ubicado en el lugar de las unidades, el penúltimo está en el lugar de las decenas, aún más a la izquierda está en el lugar de las centenas, y así sucesivamente. Básicamente, cualquier número se puede escribir como una suma de dígitos, cada uno de los cuales se multiplica por diez elevado a una determinada potencia. En el caso de unidades, cero. Por ejemplo, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . El número por el que se multiplican los dígitos se llama base del sistema numérico. Para el sistema decimal, la base lógicamente es diez. La computadora no tiene dedos, pero hay dos estados: condicionalmente "fluye corriente" y "no fluye corriente", cero y uno. En consecuencia, todos los números (y la información en general) en la memoria de la computadora constan de solo dos dígitos: 0 y 1. Su ubicación, como en el caso del sistema numérico decimal, indica el dígito. Solo que ahora el número se puede descomponer en la suma de dígitos multiplicados no por potencias de diez, sino por potencias de dos. 0 en binario = 0 1 en binario = 1 2 en binario = 10 7 10 =111 2 Aprende a convertir de binario a decimal. Probablemente ya entiendas cómo se hace esto: simplemente tomamos el dígito del número comenzando desde el más a la derecha y lo multiplicamos por la base a la potencia correspondiente a su dígito, y sumamos todo con cada dígito. Ejemplo: Encontremos el análogo decimal del número binario 101101 2 El más a la derecha = 1*2 0 El siguiente cero = 0*2 1 El tercero desde la derecha = 1*2 2 El cuarto = 1*2 3 .. y así sucesivamente 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 Imagina ocho bombillas dispuestas en fila. Cada uno de ellos tiene su propio interruptor. Cada una de las bombillas es una descarga. ¿Qué te imaginas? Recuerda la primera conferencia (existe un dispositivo de este tipo allí) o aquí tienes un widget: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Reproducir Con él, practica “sentir” el sistema binario. Conversión de decimal a binario. Aquí también todo es muy sencillo, si comprendes la esencia. Aquí tenemos el número 57 10 . Para convertirlo al sistema binario, es necesario determinar qué potencia máxima de dos no excede este número. 2 6 = 64. Esto es claramente demasiado. Pero 2 5 = 32. Ahora hemos determinado el dígito más significativo. 32 10= 100000 2 . Ahora estamos buscando el siguiente dígito. 57-32 = 25. Ahora para 25 buscamos una potencia de dos que no supere 25. 2 4 = 16. Esto significa que nuestro siguiente dígito también es igual a 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, esto es menor que 9. Esto significa que el siguiente dígito también será uno. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, es decir, solo queda una potencia, 2 0 . Por tanto, 57 10 = 111001 2 . Si de repente algo no queda claro, puedes leer más en el Wikilibro, y si dominas el inglés, aquí tienes una pequeña adición a la conferencia.

ASCII

Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 4La computadora sólo entiende ceros y unos, y su memoria se puede representar como una larguísima hilera de bombillas con interruptores, como viste arriba. Ya entendemos cómo representar números en una computadora. ¿Qué pasa con el resto de la información? ¿Cartas, imágenes? Digamos que hay 26 letras en el alfabeto inglés. Es decir, teóricamente podemos representar letras con números del 0 al 25, sólo en el sistema binario. Surge la siguiente pregunta: ¿cómo podemos saber si tenemos una letra minúscula o mayúscula? ¿Qué pasa con los signos de puntuación? ¿Señales invisibles como espacios? En resumen, ¡necesitamos un sistema de codificación, Cap! En la década de 1960, había muchos esquemas diferentes que codificaban caracteres. La falta de uniformidad resultó ser un problema y, en 1963, el American Standards Institute, ANSI, desarrolló e introdujo el esquema de codificación ASCII (American Standard Code for Information Interchange). Cada carácter ASCII consta de siete bits, o siete bits, cada uno de los cuales puede tomar el valor 0 o 1. 7 bits pueden contener números del 0 al 127 en binario, lo que significa que tenemos 128 números para codificar caracteres. ¿Parecería que esto es suficiente para codificar el habla escrita en inglés? Contemos: az - 26 opciones AZ - 26 más 0-9 - 10 ,;:~& y otros signos de puntuación - 32 Y un espacio más. Total: 95 caracteres. Las 33 opciones vacantes restantes se utilizan para los llamados caracteres de control, como avance de línea o retorno de carro: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Es importante distinguir entre caracteres 0-9 y valores numéricos 0-9. Los caracteres del 0 al 9 están representados por los valores ASCII del 48 al 57. Es interesante notar que los cuatro bits más a la derecha de estos valores ASCII son representaciones binarias de los valores numéricos 0-9. Esto simplifica un poco la forma de convertir entre valores ASCII y sus valores numéricos reales. ¿Empecemos a programar?

Rascar

Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 5Entonces, rasca. En la conferencia le hablaron sobre este lenguaje de programación visual y sus comandos básicos. Para probar Scratch usted mismo, siga el enlace y haga clic en "Unirse". Una vez registrado, podrá comenzar a programar en línea. Sí, por cierto, hoy Scratch está parcialmente rusificado. La ayuda, sin embargo, sigue estando en inglés. Si lo desea, puede jugar y también mirar el código de los proyectos de los estudiantes que se demostraron en la conferencia. Aquí está la captura de pastelería de Pikachu . O un proyecto de clasificación de residuos en diferentes contenedores: https://scratch.mit.edu/projects/71161586/ David y la empresa te piden que no te preocupes si crees que no puedes hacer proyectos tan complejos: este nivel ya requiere cierta habilidad. .

Ejercicio

  1. Para comprender mejor los procesos que suceden en Scratch, puedes descargar el código fuente de varios proyectos desde aquí . Juega y mira. Aprender el código de otra persona es muy útil. Esta es una de las mejores maneras de descubrir qué hay dentro de esos programas en los que usted aún no ha madurado. Una vez que comience a comprender cómo funcionan estas aplicaciones, podrá seguir adelante con seguridad.

  2. Ahora es el momento de hacer algo usted mismo. El desafío es divertirse y al mismo tiempo implementar un pequeño proyecto desde cero. Podría ser animación, juego, acción interactiva.

Requerimientos del proyecto:
  • El programa debe contener al menos dos sprites (personajes, imágenes), y uno de ellos definitivamente no debe ser un gato =).
  • Debe haber al menos tres guiones (acciones).
  • Se debe ejecutar al menos una condición, un bucle y una variable.
  • Se debe incluir al menos un sonido en el programa.
Es decir, en esencia, su proyecto será más complejo que los escritos en la conferencia, pero más simple que los juguetes mostrados sobre Pikachu y la recolección de basura. Por lo tanto, su proyecto probablemente utilizará varias docenas de acertijos que componen el código Scratch. Si algo no funciona, es posible que deba cambiar su enfoque para resolver el problema. ¡Lo principal es ir sin miedo! Te invitamos a hacer preguntas y compartir tus proyectos en los comentarios.

Scratch: una guía rápida para la acción

El sprite es el objeto central del proyecto. Cualquier personaje (un gato, un avión, una pelota) es un duende. Si agregaste dos gatos diferentes, estos son dos sprites diferentes. Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 6Cada sprite tiene scripts que describen su comportamiento. Estos son bloques de acción. Los disfraces son la apariencia de los objetos. Los sprites en sí son esencialmente solo dibujos. Cada sprite puede tener múltiples disfraces. Para crear un objeto, debes seleccionar su disfraz original de la biblioteca de Scratch, dibujar el tuyo propio en el editor integrado, cargar cualquier imagen o incluso tomar una foto con tu cámara web y cargarla. Todos los sprites se colocan en el llamado escenario. El escenario es esencialmente nuestro lienzo, el escenario del programa. También puedes adjuntar sonidos de la biblioteca a un objeto o escena, o puedes cargarlos o grabarlos tú mismo usando un micrófono. Para comenzar a ejecutar el programa, debe hacer clic en la bandera verde en la esquina superior derecha de la ventana de la escena. Pero antes de hacer esto, debe colocar el siguiente bloque en el programa: Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 7Y adjuntarle algunos bloques, como si fuera una pieza de diseño. Por ejemplo: Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 8En este caso, al hacer clic en la bandera, el sprite al que están adjuntas las acciones da 50 pasos y maúlla. Tenemos muchos bloques. Se dividen en tres pestañas: guiones, vestuario y sonidos. Hagamos un programa simple con una condición. Si se cumple, el gato maúllará; si no se cumple, permanecerá en silencio. Los operadores están indicados en verde. Los que prueban si una condición es verdadera o falsa tienen esquinas afiladas en los lados. Las estructuras y bucles de prueba de condición se muestran en naranja. Tienen agujeros especiales donde puedes colocar otros bloques.

Ciclos:

Repetir un número infinito de veces: Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 9Repetir algo un número determinado de veces: Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 10Repetir una acción si se cumple la condición: Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 11Puedes crear variables en el bloque de Datos. En el siguiente ejemplo, creamos una variable x e inmediatamente hubo acciones que se pueden realizar con ella. Puedes establecer el alcance de las variables: para todos los sprites o para uno. Materiales adicionales para las conferencias CS50: Semana 0 (conferencias 1 y 2) - 12La bandera verde no es la única acción. También en la sección Eventos puede encontrar otras condiciones de control. Por ejemplo, puedes elegir qué hacer cuando haces clic en un botón o en el propio objeto con el mouse. Si necesita información adicional, puede encontrarla, por ejemplo, aquí .

Qué otra cosa

Si su acceso a Internet deja mucho que desear, le recomendamos descargar el editor Scratch sin conexión en https://scratch.mit.edu/scratch2download/ . Entonces no olvides enviar tu proyecto a http://scratch.mit.edu/ usando Archivo > Cargar desde computadora.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION