Please enable JavaScript to use CodeHS

Introducción a la programación con Karel el Perro (Ace)

Description

En esta lección, se presenta a los alumnos el CódigoHS y cómo Karel el Perro puede recibir una serie de instrucciones para realizar una tarea sencilla.

Objective

Students will be able to:

  • Write their first Karel program by typing out all of the Karel commands with proper syntax

  • Explain how giving commands to a computer is like giving commands to a dog

Description

En esta lección, los alumnos aprenden más cosas sobre Karel y el mundo de Karel. Los alumnos aprenden sobre las paredes en el mundo de Karel, las direcciones a las que puede mirar Karel y cómo identificar una ubicación en el mundo de Karel utilizando filas y columnas. En estos ejercicios, los alumnos empezarán a ver las limitaciones de los comandos de Karel. Los alumnos tendrán que aplicar el conjunto limitado de órdenes de Karel a situaciones nuevas. Por ejemplo, ¿cómo pueden hacer que Karel gire a la derecha, aunque Karel no conozca el comando turnRight?

Objective

Students will be able to…

  • Identify the direction that Karel is facing
  • Predict what direction Karel will be facing after executing a series of commands
  • Identify a location in Karel’s world using Row, Column terminology
Description

En esta lección, los alumnos aprenderán cómo pueden crear sus propios comandos para Karel llamando y definiendo funciones. Las funciones permiten a los programadores crear y reutilizar nuevos comandos que hacen que el código sea más legible y escalable.

Objective

Students will be able to:

  • Define a function, and successfully implement functions in their code.
  • Teach Karel a new command by creating a turnRight() function
Description

En esta lección, los alumnos aprenden con más detalle qué son las funciones y cómo pueden utilizarlas para dividir sus programas en partes más pequeñas y hacerlos más fáciles de entender.

Objective

Los estudiantes podrán: * Crear funciones para enseñar a Karen comandos nuevos * Explicar la diferencia entre definir y llamar una función * Utilizar estas funciones para escribir programas de Karel de mejor calidad y que van más allá de los comandos dados en la caja de herramientas que Karel comenzó.

Description

Las funciones son usadas para enseñar a Karel una palabra o un comando. Usar funciones nos permite desglosar nuestro programa en piezas mas pequeñas y que sea más fácil de entender.

Objective

Students will be able to…
* Create their own functions
* Utilize functions to create higher order programs that go beyond the basic toolbox of Karel commands
* Debug programs that use functions incorrectly

Description

En esta lección, los alumnos profundizarán en su comprensión de las funciones aprendiendo sobre la función principal. La función principal ayuda a organizar la legibilidad del código creando un lugar designado donde se puede almacenar el código que se va a ejecutar en un programa:

function main(){
   turnRight();
}

function turnRight(){
   turnLeft();
   turnLeft();
   turnLeft();
}

main();
Objective

Los estudiantes podrán: * Explicar la funcionalidad de la función main * Usar la función main apropiadamente en sus programas * Mejorar la legibilidad en sus códigos

Description

En esta lección, los alumnos aprenden sobre Diseño descendente y Descomposición. El diseño descendente es el proceso de descomponer un gran problema en partes más pequeñas.

Objective

Students will be able to:

  • Break a large problem down into smaller, simpler problems
  • Write methods that solve the simpler problems, and use them as building blocks to solve the larger problem
  • Compare programs and identify good vs poor decomposition
Description

En esta lección, los alumnos aprenden a dar estilo a sus programas incluyendo comentarios. Los comentarios permiten a los alumnos dejar notas en su programa que facilitan la lectura a los demás. Los comentarios se escriben en inglés sencillo.

Comentar tu código Ejemplo:

/*
 * comentarios multilínea
 */

// comentarios de una sola línea
Objective

Students will be able to:

  • Explain the preconditions and postconditions of a function
  • Create clear and readable comments in their code that help the reader understand the code
  • Explain the purpose of comments
Description

¡En esta lección se presenta a los alumnos Super Karel! Dado que comandos como “girar a la derecha” y “girar alrededor” se utilizan con tanta frecuencia, los alumnos no deberían tener que definirlos en cada programa. Aquí es donde entra en juego Super Karel. Super Karel es igual que Karel, pero Super Karel ya sabe cómo girar a la derecha y girar alrededor, ¡así que los alumnos ya no tienen que definir esas funciones!

Objective

Students will be able to:

  • Write programs that use Supe rKarel instead of Karel
  • Utilize the new toolbox of commands that Super Karel provides over Karel
  • Read documentation to understand how to use a library (Super Karel is an example of this)
Description

En esta lección, los alumnos aprenden a utilizar bucles for en sus programas. El For Loop permite a los alumnos repetir una parte concreta del código un número fijo de veces.

Los For Loop se escriben así

for(let i = 0; i < 4; i++)
{
    // Código a repetir 4 veces
}
Objective

Students will be able to:

  • Create for loops to repeat code a fixed number of times
  • Explain when a for loop should be a used
  • Utilize for loops to write programs that would be difficult / impossible without loops
Description

Esta lección proporciona a los alumnos más práctica en la creación y depuración de For Loop. El For Loop te permite repetir una parte concreta del código un número fijo de veces.

Objective

Students will be able to:

  • Create for loops to repeat code a fixed number of times
  • Debug programs with incorrect for loop usage
  • Explain when a for loop should be used
Description

En esta lección, los alumnos aprenden sobre la sentencia condicional “si”. El código dentro de una “sentencia if” sólo se ejecutará SI la condición es verdadera.

if (frontIsClear()) {
    // Código a ejecutar sólo si el frente está despejado
}
Objective

Students will be able to:

  • Use conditions to gather information about Karel’s world (is the front clear, is Karel facing north, etc)
  • Create if statements that only execute code if a certain condition is true
Description

En esta lección, los alumnos aprenden una estructura de control adicional, las sentencias if/else. Las sentencias if/else permiten a los alumnos hacer una cosa si una condición es verdadera, y otra en caso contrario.

Las sentencias if/else se escriben así:

if (frontIsClear()) {
      // código a ejecutar si el frente está despejado
 } else {
      // código a ejecutar en caso contrario
}
Objective

Students will be able to:

  • Explain the purpose of an If/Else statement
  • Create If/Else statements to solve new types of problems
  • Identify when it is appropriate to use an If/Else statement
Description

En esta lección, los alumnos aprenden más sobre las estrategias de depuración y practican el uso de las sentencias if / else.

Objective

Students will be able to:

  • Use debugging strategies to find and fix errors in their code.
  • Identify different types of errors in their code.
  • Explain the meaning of different error messages.
  • Explain the purpose of an If/Else statement
  • Create If/Else statements to solve new types of problems
Description

En esta lección, se presenta a los alumnos un nuevo tipo de loop: los while loop. Los while loop permiten a Karel repetir código mientras una determinada condición sea cierta. Los while loop permiten a los alumnos crear soluciones generales a problemas que funcionarán en varios mundos de Karel, en lugar de en uno solo.

Objective

Students will be able to:

  • Explain the purpose of a while loop
  • Create while loops to repeat code while a condition is true
  • Utilize while loops to solve new types of problems
  • Test their solutions on different Karel worlds
Description

Esta lección proporciona a los alumnos práctica adicional en el uso de while loop.

Objective

Students will be able to:

  • Explain the purpose of a while loop
  • Create while loops to repeat code while a condition is true
  • Utilize while loops to solve new types of problems
  • Test their solutions on different Karel worlds
Description

En esta lección, los alumnos repasan cómo deben sangrar su código para que sea más fácil de leer.

Objective

Students will be able to:

  • Explain why it is important to indent code
  • Identify proper indentation
  • Modify a program to have proper indentation
  • Write programs with proper indentation
Description

En esta lección, los alumnos aprenden a combinar e incorporar las distintas estructuras de control que han aprendido para crear programas más complejos.

Objective

Students will be able to:

  • Identify the different control structures we can use to modify the flow of control through a program
  • Combine control structures to solve complicated problems
  • Choose the proper control structure for a given problem
Description

En esta lección, los alumnos adquieren práctica adicional con las estructuras de control. Los alumnos seguirán viendo las distintas formas en que los bucles if, if/else, while y for afectan a su código y a lo que Karel puede hacer.

Objective

Students will be able to:

  • Debug common errors in code
  • Use control structures to create general solutions that work on all Karel worlds
Description

En esta lección se presenta a los alumnos Ultra Karel. Ultra Karel tiene todas las capacidades de Super Karel, además de dos nuevas funciones (paint y isColor) añadidas a la API. Los alumnos también aprenden sobre los parámetros de las funciones y cómo utilizarlos al llamar a las nuevas funciones.

Objective

Students will be able to:

  • Explain the difference between Karel, Super Karel, and Ultra Karel.
  • Use the paint command to color a location.
  • Use the isColor condition to check the color of a location.
  • Explain what a parameter is and be able to use it with the new paint command.
Description

En este módulo, los alumnos sintetizarán todas las habilidades y conceptos aprendidos en el módulo Karel para resolver puzzles Karel cada vez más desafiantes.

Objective

Students will be able to:

  • Define a problem in their own words and plan out a solution to the problem
  • Break a large problem down into smaller pieces and solve each of the pieces, then use these solutions as building blocks to solve the larger problem
  • Utilize the proper control structures to create general solutions that solve multiple Karel worlds
  • Write clear and readable code using control structures, functions, decomposition, and comments