INFORMATICA
INFORMATICA
INFORMATICA
Bienvenidos
Cuando David estaba en primer año, estaba demasiado intimidado para tomar
cursos de informática. Para cuando era estudiante de segundo año, encontró el coraje de
tomar el equivalente de CS50, pero solo pasa / falla.
De hecho, dos tercios de los estudiantes de CS50 nunca han tomado un curso de
CS antes.
Y lo más importante también:
Lo que finalmente importa en este curso no es tanto dónde terminas en relación con tus
compañeros de clase sino dónde terminas en relación contigo mismo cuando
comenzaste
¿Qué es la informática?
La informática es fundamentalmente la resolución de problemas.
Podemos pensar en la resolución de problemas como el proceso de tomar algo
de entrada (detalles sobre nuestro problema) y generar algo de salida (la solución a
nuestro problema). La "caja negra" en el medio es informática.
Necesitamos una forma de representar las entradas, de modo que podamos almacenar y trabajar
con información de manera estándar.
Binario
1 2 3
o El 3está en la columna de las unidades, el 2está en la columna de las
decenas y el 1está en la columna de las centenas.
o Entonces 123es 100 × 1 + 10 × 2 + 1 × 3 = 100 + 20 + 3 = 123.
o Cada lugar para un dígito representa una potencia de diez, ya que hay
diez dígitos posibles para cada lugar.
En binario, con solo dos dígitos, tenemos potencias de dos para cada valor
posicional:
4 2 1
0 0 0
o Esto todavía sería igual a 0.
Ahora, si cambiamos el valor binario a, digamos 0 1 1, el valor decimal sería 3.
4 2 1
0 1 1
Si quisiéramos representar 8, necesitaríamos otro dígito:
8 4 2 1
1 0 0 0
Y el binario tiene sentido para las computadoras porque las alimentamos con
electricidad, que puede estar encendida o apagada, por lo que cada bit solo necesita estar
encendido o apagado. En una computadora, hay millones o miles de millones de
interruptores llamados transistores que pueden almacenar electricidad y representar un
poco al estar "encendidos" o "apagados".
Con suficientes bits o dígitos binarios, las computadoras pueden contar hasta
cualquier número.
8 bits forman un byte .
Representando datos
Para representar letras, todo lo que tenemos que hacer es decidir cómo se
asignan los números a las letras. Algunos humanos, hace muchos años, decidieron
colectivamente un mapeo estándar llamado ASCII . La letra "A", por ejemplo, es el
número 65, y "B" es 66, y así sucesivamente. El mapeo también incluye signos de
puntuación y otros símbolos. Otros caracteres, como letras con acento y emoji, son parte
de un estándar llamado Unicode que usa más bits que ASCII para acomodar todos estos
caracteres.
o Cuando recibimos un emoji, nuestra computadora en realidad solo recibe
un número decimal como 128514( 11111011000000010en binario, si puede leerlo más
fácilmente) que luego se asigna a la imagen del emoji.
Una imagen también se compone de muchos puntos cuadrados más pequeños, o
píxeles, cada uno de los cuales se puede representar en binario con un sistema llamado
RGB, con valores de luz roja, verde y azul en cada píxel. Al mezclar diferentes
cantidades de cada color, podemos representar millones de colores:
o Los valores rojo, verde y azul se combinan para obtener un color
amarillo claro:
Podemos escribir pseudocódigo , una sintaxis informal que es solo una versión más específica
del inglés (u otro lenguaje humano) que representa nuestro algoritmo:
Levante la guía telefónica
2 Abierto a la mitad de la guía telefónica
3 Mira la página
4 Si Smith está en la página
5 Llama a Mike
6 De lo contrario si Smith está más temprano en el libro
7 Abierto a la mitad de la mitad izquierda del libro
8 Regrese a la línea 3
9 De lo contrario, si Smith está más tarde en el libro
10 Abierto a la mitad de la mitad derecha del libro
11 Regrese a la línea 3
12 más
13 Salir
Y las preguntas que deciden a dónde vamos se llaman expresiones booleanas , que finalmente
resultan en un valor de verdadero o falso:
Levante la guía telefónica
2 Abierto a la mitad de la guía telefónica
3 Mira la página
4 Si Smith está en la página
5 Llama a Mike
6 De lo contrario si Smith está más temprano en el libro
7 Abierto a la mitad de la mitad izquierda del libro
8 Regrese a la línea 3
9 De lo contrario, si Smith está más tarde en el libro
10 Abierto a la mitad de la mitad derecha del libro
11 Regrese a la línea 3
12 más
13 Salir
Finalmente, tenemos palabras que conducen a ciclos, donde podemos repetir partes de nuestro
programa, llamadas bucles :
Levante la guía telefónica
2 Abierto a la mitad de la guía telefónica
3 Mira la página
4 Si Smith está en la página
5 Llama a Mike
6 De lo contrario si Smith está más temprano en el libro
7 Abierto a la mitad de la mitad izquierda del libro
8 Regrese a la línea 3
9 De lo contrario, si Smith está más tarde en el libro
10 Abierto a la mitad de la mitad derecha del libro
11 Regrese a la línea 3
12 más
13 Salir
Rasguño
Podemos usar el bloque "join" para combinar dos frases para que Scratch pueda decir "hola,
David":
Entonces podemos usar el bloque "respuesta" junto con nuestro propio texto, "hola", como dos
entradas al algoritmo de unión ...
... que pasamos nuevamente como entrada al bloque "decir":
Podemos intentar hacer que Scratch (el nombre del gato) diga miau:
Pero cuando hacemos clic en la bandera verde, escuchamos el maullido una y otra vez de
inmediato. Nuestro primer error o error! Podemos agregar un bloque para esperar, para que los
maullidos suenen más normales.
Podemos hacer que Scratch apunte hacia el mouse y avance hacia él:
Con múltiples sprites o personajes, podemos tener diferentes conjuntos de bloques para cada
uno de ellos:
o Para una marioneta, tenemos estos bloques que dicen "Marco!", Y luego
un bloque de "evento de transmisión". Este "evento" se utiliza para que nuestros dos
sprites se comuniquen entre sí, como enviar un mensaje secreto. Así que nuestro otro
títere puede esperar a que este evento diga "¡Polo!":
El siguiente paso es abstraer parte de nuestro código en una función, o hacer que
sea reutilizable de diferentes maneras. Podemos hacer un bloque llamado "tos" y poner
algunos bloques dentro de él:
o Ahora, todos nuestros sprites pueden usar el mismo bloque de "tos", en
tantos lugares como queramos.
Incluso podemos poner varias veces en nuestra función de tos, por lo que solo
necesitamos un solo bloque para toser cualquier cantidad de veces: