Juan RamírezAprendizajeEN
CS50x · Semana 0Harvard University9 partes

La primera clase de CS50 en nueve partes cortas. Toca todo.

Resumen de la Semana 0 de CS50x (Scratch): cómo las computadoras representan números, texto, colores y multimedia en binario, qué es un algoritmo, pseudocódigo, abstracción y Scratch. Escrito como yo lo entendí, con algo para probar en cada idea.

CS50x · Semana 001 / 09

La IA, y por qué lo básico sigue importando

Idea claveCS50 no te enseña a escribir código, te enseña a pensar. La IA ayuda, pero el piloto sigues siendo tú.

  • Malan arma un chatbot en unas diez líneas de Python sobre una API: un servicio de otra empresa sobre el que escribes tu propio código.
  • El user prompt es lo que escribe la persona. El system prompt es la instrucción fija que va detrás. Misma pregunta, otra respuesta.
  • Las calculadoras existen y aun así vale la pena saber sumar. Igual pasa con la IA y el código.
  • El pato de goma: explica tu problema en voz alta, aunque sea a un pato, y muchas veces encuentras el error tú solo.
System prompt vs user promptPruébalo
  1. Sistema

    (vacío)

  2. Usuario

    ¿Qué es CS50?

  3. Asistente

    CS50 es la introducción de Harvard a la ciencia de la computación, con David J. Malan. Empieza con Scratch y pasa por C, Python, SQL y desarrollo web.

Respuestas escritas a mano para mostrar la idea. Aquí nada llama a una IA de verdad.

CS50x · Semana 002 / 09

Qué es realmente la ciencia de la computación

Idea claveEs el estudio de la información: cómo representarla y cómo procesarla para resolver problemas.

  • Todo problema tiene la misma forma: entrada → un algoritmo (la caja negra) → salida.
  • Pensamiento computacional es usar esa idea en problemas de la vida real, no solo en computadoras.
  • Antes de resolver nada hay que acordar cómo representar entradas y salidas. Spoiler: con ceros y unos.
Entrada → caja negra → salidaPruébalo
Entrada50
Algoritmo?
Salida110010

Ejecútalo y luego mira adentro. El algoritmo son solo los pasos del medio.

CS50x · Semana 003 / 09

Binario: contar con bombillos

Idea claveUna computadora solo sabe prendido (1) y apagado (0). Si cada posición pesa distinto, puedes contar sorprendentemente alto.

  • El decimal usa columnas de 1, 10, 100. El binario usa columnas de 1, 2, 4, 8… cada una es el doble.
  • Un bit es un dígito binario. Un byte son 8 bits: 256 combinaciones, de 0 a 255.
  • Dentro del chip los bombillos son transistores: miles de millones de interruptores diminutos.
  • Con 32 bits cuentas hasta unos 4 mil millones. Hoy casi todas las computadoras usan 64.
Un byte, ocho bombillosPruébalo
Binario
01001000
Decimal
72
Como ASCII
H

Toca un bombillo para cambiar ese bit. Suma los números encima de los prendidos y te da el decimal.

CS50x · Semana 004 / 09

El texto son números que acordamos

Idea claveCada letra es solo un número en el que todos estuvimos de acuerdo. La A es 65, la B es 66, y así.

  • Mandar “HI!” por chat son 3 bytes: 72, 73 y 33. Ese mapa de letras a números es ASCII.
  • La minúscula es la mayúscula + 32. Cambia un solo bit y la A se vuelve a.
  • ASCII solo alcanza para el inglés. Unicode llega a 32 bits, así que cubre todos los idiomas y los emoji. 😂 es el número 128.514.
  • ¿65 es la letra A o el número 65? Depende del contexto: el programa decide cómo leerlo.
Letras a bytesPruébalo
H72
I73
!33

Escribe lo que quieras. La columna del 32 es la única diferencia entre mayúscula y minúscula.

CS50x · Semana 005 / 09

Color, imágenes, video y sonido

Idea claveLo multimedia son números en capas: color → píxel → imagen → video.

  • RGB: cuánto rojo, verde y azul, cada uno de 0 a 255. Un byte cada uno, tres bytes por color.
  • Un píxel es un punto con su propio color. Millones de ellos son la razón por la que una foto pesa megas.
  • Un video son muchas imágenes por segundo, como un flipbook. La música se puede guardar como notas: tono, duración, volumen.
Tres bytes, un colorPruébalo
RGB
72 · 73 · 33
Leído como texto
H I !

72, 73, 33 es “HI!” en un chat y este verde oliva en un editor de fotos. Los mismos bytes, otro contexto.

CS50x · Semana 006 / 09

Algoritmos: el directorio telefónico

Idea claveUn algoritmo es una lista de pasos que resuelve un problema. No basta con que funcione: también tiene que ser rápido.

  • Página por página funciona, pero 1.000 páginas pueden ser 1.000 pasos.
  • De dos en dos es el doble de rápido. Si te pasas del nombre, devuélvete una página.
  • Partir el libro por la mitad cada vez toma unos 10 pasos para 1.000 páginas. Si duplicas el libro cuesta un paso más. Eso es log₂ n.
Tres formas de encontrar un nombrePruébalo
Página por página0 pasos
De dos en dos0 pasos
Partir a la mitad0 pasos

página 620 / 1.000

Peor caso · n
1.000
Peor caso · n / 2
500
Peor caso · log₂ n
10

Los tres llegan. Cambia a 2.000 páginas: partir a la mitad solo necesita un paso más.

CS50x · Semana 007 / 09

Pseudocódigo y los cuatro bloques

Idea claveCasi todo programa se arma con funciones, condicionales, expresiones booleanas y bucles.

  • Las funciones son los verbos: abrir, mirar, llamar.
  • Los condicionales son bifurcaciones. Las expresiones booleanas son las preguntas de sí o no que eligen el camino.
  • Los bucles repiten pasos (“vuelve a la línea 3”). Este termina porque el libro se va achicando.
  • El último “si no” es el caso borde: ¿y si la persona no está? Olvidar casos así es lo que congela los programas.
Ejecuta el pseudocódigoPruébalo
  1. 1Toma el directorio
  2. 2Ábrelo por la mitad
  3. 3Mira la página
  4. 4Si la persona está en la página
  5. 5 Llámala
  6. 6Si no, si la persona está antes
  7. 7 Abre la mitad de la parte izquierda
  8. 8 Vuelve a la línea 3
  9. 9Si no, si la persona está después
  10. 10 Abre la mitad de la parte derecha
  11. 11 Vuelve a la línea 3
  12. 12Si no
  13. 13 Termina
0 líneas ejecutadas

Avanza línea por línea. Busca a Zoe: no está en el libro, así que el último “si no” salva el programa.

CS50x · Semana 008 / 09

Abstracción: de transistores a Python

Idea claveCada capa esconde la complejidad de la de abajo. Construimos sobre lo que alguien más ya resolvió.

  • Empresas como Intel y AMD deciden qué patrones de bits significan sumar, guardar o imprimir.
  • Un compilador traduce un lenguaje a otro, por ejemplo C a código máquina.
  • El chatbot de la parte 1 es la misma idea: alguien más hizo la parte difícil y tú escribes diez líneas encima.
Pela las capasPruébalo
  1. 01Pythonprint("hello, world")Esto lo escribes tú.

Cada capa hace el mismo trabajo que la de arriba, con más detalle y menos ayuda.

CS50x · Semana 009 / 09

Scratch: programar con bloques

Idea claveScratch, del MIT, tiene las mismas ideas que C o Python, sin preocuparte por comas ni llaves.

  • Los eventos arrancan todo (“al hacer clic en la bandera”). Los argumentos entran a una función, el valor de retorno sale de ella y el efecto secundario es lo que ves u oyes.
  • Copiar y pegar es mala señal: un “repetir 3” está mejor diseñado que tres bloques iguales.
  • “Por siempre” + “si”: sin el bucle, el gato revisa una sola vez si lo estás acariciando, y el momento ya pasó.
  • Los proyectos grandes se arman en pasos pequeños. Empieza por la versión más chiquita que funcione.
Copiar y pegar vs un buclePruébalo

Copiado · 4 bloques

al hacer clic en la banderadecir Miaudecir Miaudecir Miau

Bucle · 3 bloques

al hacer clic en la banderarepetir 3decir Miau
…
al hacer clic en la banderapor siempresi toca el ratóndecir ¡Rrrr!

Mueve el slider. La versión copiada no para de crecer, el bucle se queda en tres bloques.

Fin del capítuloCS50x · Semana 0

Copia este resumen y pégalo en tu propio Claude. Va con un prompt y el transcript oficial, para que preguntes lo que quieras y te haga preguntas.