Unit Overview

Los estudiantes definen funciones que mapean atributos de su juego de un marco a otro, permitiéndoles mover sus peligros, objetivos y proyectiles.

Espanol

Ingles

Normas y declaraciones de evidencia:

Los estándares con el prefijo BS son específicos de Bootstrap; Otros son del Common Core. Pase el mouse sobre cada estándar para ver sus correspondientes declaraciones de evidencia. Nuestra Documento de estándares Muestra qué unidades cubren cada estándar.

• F-IF.1-3: The student uses function notation to describe, evaluate, and interpret functions in terms of domain and range

• evaluation of functions using function notation for inputs in their domains

• F-LE.5: The student interprets expressions for functions in terms of the situations they model

• interpretation of the parameters in a linear or exponential function in terms of a context

• BS-DR.2: The student can derive test cases for a given contract and purpose statement

• given a Contract and a Purpose Statement, write multiple examples or test cases

• given multiple examples, identify patterns in order to label and name the variables

• BS-DR.3: Given multiple test cases, the student can define a function

• given examples and labeled variable(s), define the function

• BS-IDE: The student is familiar with using a REPL, entering expressions properly, and interpreting error messages

• look to error messages as a way of diagnosing syntax errors

• BS-PL.1: The student is familiar with declaring values and applying built-in functions using the programming language

• interpreting a function application and identifying its arguments

• BS-PL.2: The student is comfortable using and writing Contracts for built-in functions

• representing a function’s input and output using a contract

• using a function by refering to its contract

• BS-PL.3: The student is able to use the syntax of the programming language to define values and functions

• defining and using functions

Duración: 70 Minutos
Glosario:
• contrato: una declaración del nombre, dominio y rango de una función

• declaración de propósito: una breve descripción de lo que hace una función

• ejemplos: muestra el uso de una función en entradas específicas y el cálculo que debe realizar la función en esas entradas

• variable: algo que cambia

Materiales:
Preparación:
 Tipos Funciones Values Number + - * / sqr sqrt expt 1 ,4 ,44.6 String string-append string-length "hello" Image rectangle circle triangle ellipse star scale rotate put-image (circle 25 "solid" "red")

Cazando Errores

Repaso

Objetivos de aprendizaje

• Gain more experience understanding and correcting programming errors

Declaraciones de evidencia

• Students will be able to read error messages for basic syntax errors

• Students will be able to edit programs to eliminate basic syntax errors

Materiales

• Lapiceros/lápices para los estudiantes, marcadores de pizarra para profesores

• Cartel de clase (Lista de reglas, tabla de lenguaje, calendario del curso)

• Tabla de Lenguaje (Vea abajo)

• "Bug Hunting" [Bugs.rkt de source-files.zip | WeScheme] precargado en las máquinas de los estudiantes

Preparación

• Los estudiantes están registrados en WeScheme.org, o han abierto DrRacket.

Cazando Errores (Tiempo 20 mins)

• Cazando ErroresDepurando (buscando y corrigiendo problemas en el código) es una parte importante de la programación, así que es una buena idea practicar buscando errores en código.

Abre el programa Bug Hunting en una nueva ventana, y observa si puedes encontrar errores en cada expresión. Haz clic en "Run" y lee el mensaje de error cuidadosamente. Después de corregir cada uno, hacer clic en Run te mostrará el mensaje de error del siguiente problema.

Make sure students understand that the goal is not to FIX the bugs, but rather just to find them.

Movimiento de peligro y objetivo

Repaso

Objetivos de aprendizaje

• Students learn to move game elements through functions that compute attributes in one frame from attributes in the previous frame

Declaraciones de evidencia

• Students will be able to write functions that take in one dimension of a game element’s coordinate and produce the next coordinate value in that dimension

• Students will learn how to control speed of movement through functions

• Los estudiantes agregarán movimiento al peligro (danger) de sus juegos

• Los estudiantes agregarán movimiento al objetivo (target) de sus juegos

Materiales

• Lapiceros/lápices para los estudiantes, marcadores de pizarra para profesores

• El Libro de Trabajo del Estudiante

• Todas las computadoras de los estudiantes deben tener sus plantillas de juego precargadas, con sus archivos de imagen enlazados

• Cartel de clase (Lista de reglas, tabla de lenguaje, calendario del curso)

• Tabla de Lenguaje (Vea abajo)

Preparación

Movimiento de peligro y objetivo (Tiempo 30 minutos)

• Ve a la Página 1 de tu libro de trabajo hasta la sección update-danger.

• Lee el problema de palabra cuidadosamente, y presta atención a qué toma la función.

• Llena el Contrato y Declaración de propósito para la función, usando lo que encerraste para ayudarte a elegir el Dominio.

• Escribe dos Ejemplos para la función.

• Encierra y etiqueta lo que varía entre esos ejemplos, y etiquétalo con un nombre de variable.

• Define la función.

If students are working on their own, check their work to make sure every last step is being executed correctly. If the class is working through it together, be sure to ask students to justify each step in terms of a prior step. Tip: tell students that they must get your permission before typing in their code, then use that expectation to check each student’s paper carefully.

• Poniendo todo eso unido, update-danger es definido por:   (Nota: Tú podrías tener diferentes ejemplos o nombres de variable.)

Abre tu archivo de juego guardado y desplaza hasta que encuentres la definición para update-danger. ¿Es correcto el contrato? Asegúrate que coincida con lo que tienes en tu libro de trabajo, agrega tus ejemplos, y corrige la definición. ¡Cuando haces clic en "Run" tú deberías ver tu peligro volar a través de la pantalla!

• Ahora es tiempo de animar el objetivo, el cual se mueve en la dirección opuesta.

Ve a la Página 1 de tu libro de trabajo hasta la sección update-target.

• Lee el problema de palabra cuidadosamente, y presta atención a qué toma la función.

• Llena el Contrato y Declaración de Propósito para la función, usando lo que encerraste para ayudarte a elegir el Dominio.

• Escribe dos Ejemplos para la función.

• Encierra y etiqueta lo que varía entre esos ejemplos, y etiquétalo con un nombre de variable.

• Define la función.

For students who finish these quickly, have them experiment with making the Target and Danger move faster or slower, or change direction altogether. Be sure that they are typing in Examples, and updating those examples to keep up with any changes to their definition.

Movimiento de Proyectil (Opcional)

Repaso

OPTIONAL: students discover that the "mystery" definitions in the game are actually used to add projetiles, and adapt these definitions to add a custom projectile and projectile animation to their game.

Objetivos de aprendizaje

• Students learn to move game elements through functions that compute attributes in one frame from attributes in the previous frame

Declaraciones de evidencia

• Students will be able to write functions that take in one dimension of a game element’s coordinate and produce the next coordinate value in that dimension

• Los estudiantes agregarán movimiento al proyectil de sus juegos

Materiales

Preparación

Movimiento de Proyectil (Opcional) (Tiempo 15 minutos)

• Movimiento de Proyectil (Opcional)Esta plantilla de juego también tiene un objeto misterioso, el cual es definido al final de la pantalla. El "Misterio" es realmente un proyectil, el cual será ubicado en la posición del jugador cada vez que la barra espaciadora sea presionada. Como puedes ver, el mystery es definido para ser una pequeña estrella gris, pero tu puedes cambiarla por la imagen que desees. Si tienes un juego donde el jugador es un mono, puedes cambiar la definición de mystery para que sea la imagen de una banana, para que el mono tire bananas cada vez que presiones la barra espaciadora. Un juego que se desarrolla en el espacio podría tener un alíen tirando cristales, o un juego deportivo podría tratarse de un atleta lanzando un balón.
• Cambia la definición de mystery, para que tu proyectil luzca de la forma que desees. No olvides usar scale y rotate si tienes que cambiar ligeramente la imagen.

• Usa las instrucciones de diseño para escribir update-mystery, para que el proyectil se mueva de izquierda a derecha. Pista: esto será muy parecido a tus soluciones para update-danger y update-target!

Be careful when introducing Projectiles into the game! Many students will actually be less creative when using them, as it will automatically push their mindset towards the standards "shoot the bad guy" format. Many teachers choose to skip this section entirely, or else add it after the games are complete.

Concluyendo

Repaso

Objetivos de aprendizaje

Declaraciones de evidencia

Materiales

Preparación

Concluyendo (Tiempo 5 minutos)

• Concluyendo¡Felicidades - tienes los inicios de un juego funcional! Sin embargo, varias cosas siguen incompletas:

• El jugador no se mueve

• Cuando el objetivo y el peligro se mueven fuera de la pantalla, nunca regresan

• Nada sucede cuando el jugador colisiona con el peligro o el objetivo

Las siguientes lecciones incrementarán lo que conoces sobre las funciones, de tal manera que puedas definir funciones para implementar en cada una de esas características.

• Have students volunteer what they learned in this lesson

• Reward behaviors that you value: teamwork, note-taking, engagement, etc

• Pass out exit slips, dismiss, clean up.