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
¡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
- 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
Esperamos 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
Tenemos 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
La 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
Entonces, 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
-
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.
-
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.
- 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.
GO TO FULL VERSION