Please enable JavaScript to use CodeHS

Fundamentos de ciencias de la computación AP en JavaScript

Description

En esta lección, los estudiantes discutirán cómo se usa la computación. También establecerán metas para este curso y más allá.

Objective

Students will be able to:

  • Identify and brainstorm ways computers have impacted their own lives, as well as society, economy, and culture
  • Develop their own learning objectives for the course by reflecting on why they are taking this course
Description

En esta lección, los estudiantes son presentados a Karel el perro y cómo a Karel se les puede dar un conjunto de instrucciones para realizar una tarea simple.

Objective

Students will be able to:

  • Recognize, explain, and use the commands that Karel can be given. These commands are: move(), putBall(), takeBall() and turnLeft().
Description

En esta lección, los estudiantes se basan en su comprensión de cómo Karel el perro puede recibir un conjunto de instrucciones para realizar una tarea simple.

Objective

Students will be able to:

  • Recognize, explain, and use the commands that Karel can be given
  • Debug and rework their code as well as someone else’s code
Description

En esta lección, los estudiantes aprenderán cómo definir y llamar a una función utilizando la sintaxis adecuada.

Objective

Students will be able to:

  • Define and call functions
Description

En esta lección, las funciones se utilizarán para enseñar a Karel una nueva palabra o comando. El uso de funciones permite que los programas se descompongan en piezas más pequeñas y facilite la comprensión.

Objective

Students will be able to:

  • Understand what functions are, how they are used and how using them improves programs
  • Design and implement their own functions to solve problems
Description

En esta lección, los estudiantes aprenderán la importancia de escribir código legible y cómo usar la función de inicio puede ayudar a lograr esto.

Objective

Students will be able to:

  • Explain the importance of writing readable code
  • Analyze and compare the readability of different programs
  • Use the start function to make their programs more readable
Description

En esta lección, los estudiantes aprenden diseño y descomposición descendente como los procesos de romper grandes problemas en piezas más pequeñas y manejables. Las funciones mejoran la legibilidad del código y evitan el código repetido.

Objective

Students will be able to:

  • Break a large problem down into smaller, simpler problems
  • Write functions 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 estudiantes aprenderán cómo utilizar comentarios en su código para explicar qué está haciendo su código. Los comentarios deben incluir condiciones previas y postcondiciones. Las condiciones previas son suposiciones que hacemos sobre lo que es verdadero antes de de llamar a una función en nuestro programa. Las postcondiciones son lo que debería ser verdadero después de llamar a una función en nuestro programa.

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, los estudiantes aprenderán sobre la abstracción. La abstracción es el acto de gestionar la complejidad al disociar la información y los detalles para centrarse en conceptos relevantes.

Objective

Students will be able to:

  • Understand abstraction as the different levels of detail and complexity
  • Understand the importance of abstracting away complexity to solve problems more efficiently
Description

En esta lección, los estudiantes serán presentados a SuperKarel y los APIs. SuperKarel incluye comandos como turnRight() y turnAround() ya que se usan tan comúnmente. Estos comandos vienen pre-empaquetados con la Biblioteca SuperKarel (API).

Objective

Students will be able to:

  • Write programs that use SuperKarel instead of Karel
  • Utilize the new toolbox of commands that SuperKarel provides over Karel
  • Read the documentation to understand how to use an API (SuperKarel is an example of this)
Description

En esta lección, los estudiantes aprenden a usar For Loops en sus programas. El For Loop te permite repetir una parte específica del código un número fijo de veces.

Un For Loop se escribe de la siguiente manera:

for(var i = 0; i < 4; i ++)
{
// El código se 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 would be a useful tool
  • Utilize for loops to write programs that would be difficult/impossible without loops
Description

En esta lección, los estudiantes aprenderán sobre las condiciones y las declaraciones de IF. Una condición es una función que devuelve una respuesta verdadera/falsa. JavaScript utiliza las declaraciones IF como una forma de tomar decisiones y ejecutar código específico. Si las declaraciones son útiles para escribir el código que se puede usar en diferentes situaciones.

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 to only execute code if a certain condition is true
Description

En esta lección, los estudiantes analizarán más profundamente las sentencias condicionales, más específicamente las declaraciones f/Else. Las declaraciones de If/Else permiten hacer una cosa si una condición es verdadera o hacer otra distinto si no lo es.

Escribimos declaraciones if/else de esta manera:

if (frontIsClear()) {
    // código para ejecutar si el frente está claro
} else {
    // código para ejecutar lo 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 an If/Else statement is appropriate to be used
Description

En esta lección, los estudiantes se les presenta un nuevo tipo de bucle: While Loops. Los While Loops permiten que Karel repita el código mientras una determinada condición es verdadera. Los While Loops permiten la creación de soluciones generales a problemas que funcionarán en múltiples mundos de Karel, en lugar de solo uno.

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 estudiantes echan un vistazo a todas las estructuras de control. Las estructuras de control pueden ser selectivas, como las declaraciones if y if/else y se basan en una condición. Otras estructuras de control son iterativas y permiten un código repetido como los For Loops y los While Loops. Básicamente, las estructuras de control controlan la forma en que se ejecutan los comandos.

Objective

Students will be able to:

  • Identify the different control structures that can be used 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

La depuración es una parte muy importante de la programación. En esta lección, los estudiantes aprenden a depurar efectivamente sus programas.

Objective

Students will be able to use debugging strategies to find and fix errors in their code.

Description

En esta lección, los estudiantes se introducen a los algoritmos que son instrucciones paso a paso que resuelven un problema. Los programas implementan algoritmos. Todos los algoritmos se construyen utilizando secuenciación, selección e iteración. Karel tiene estructuras de control para cada uno de estos. Esta lección está diseñada para evaluar el conocimiento de los estudiantes sobre las estructuras de control y el diseño de algoritmos en preparación para los próximos desafíos de Karel.

Objective

Students will be able to:

  • Analyze an algorithm and explain why it works
  • Use control structures to create general algorithms that work on all Karel worlds
Description

En esta lección, los estudiantes aprenderán la forma correcta de sangrar su código. La sangría es especialmente importante cuando se usa múltiples bucles, funciones y declaraciones if que muestran la estructura del código. La sangría proporciona un buen enfoque visual para ver qué comandos están dentro frente a fuera de un bucle o una declaración if.

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 estudiantes se presentan a Ultra Karel! Ultra Karel tiene todas las habilidades de Super Karel, más dos nuevas funciones (paint y isColor) agregadas a la API.

Los estudiantes explorarán la API Ultra Karel y usarán la capacidad de Ultra Karel para pintar el mundo de la cuadrícula para crear imágenes digitales. Los estudiantes crearán algoritmos generalizados que resuelven problemas de Ultra Karel para múltiples mundos.

Esta lección es la primera vez que los estudiantes usan funciones que aceptan parámetros como entradas.

Objective

Students will be able to:

  • Use Ultra Karel commands to paint Karel’s world
  • Call functions that accept parameters as inputs
  • Explain the relationship between a function and a parameter
  • Create generalized Ultra Karel algorithms that correctly solve multiple Karel worlds
  • Identify differences between the Super Karel API and the Ultra Karel API
Description

En esta lección, los estudiantes sintetizarán todas las habilidades y conceptos aprendidos en la unidad Karel para resolver rompecabezas de 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
Description

En esta lección, los estudiantes completan una evaluación sumativa de los objetivos de aprendizaje de la unidad.

Objective

Students will be able to:

  • Prove their knowledge of control structures, functions, decomposition, and comments through a multiple choice quiz