Please enable JavaScript to use CodeHS

Fundamentos de ciencias de la computación AP en Python

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 le 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(), put_ball(), take_ball() and turn_left().
Description

En esta lección, los estudiantes desarrollarán 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 facilita 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 aprenden diseño y descomposición de arriba hacia abajo como los procesos de dividir 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 precondiciones y postcondiciones. Las precondiciones son suposiciones que hacemos sobre lo que es verdadero antes 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, se presentará a los estudiantes a SuperKarel y a las APIs. SuperKarel incluye comandos como turn_right() y turn_around() ya que son comúnmente utilizados. Estos comandos vienen preinstalados con la librería de 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 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 i in range(4):
    # 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 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 if. Una condición es una función que devuelve una respuesta verdadera/falsa. Python utiliza las declaraciones if como una forma de tomar decisiones y ejecutar código específico. Las declaraciones if son útiles para escribir el código que se pueda 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 declaraciones condicionales, más específicamente las declaraciones de if/else. Las declaraciones de if/else permiten hacer una cosa si una condición es verdadera y algo más de lo contrario.

Escribimos declaraciones if/else de esta manera:

if front_is_clear():
    # código a ejecutar si front es clear
elif:
    # 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 an If/Else statement is appropriate to be used
Description

En esta lección, se presenta a los estudiantes un nuevo tipo de bucle: los while loops. Los while loops permiten que Karel repita un código mientras se cumple una determinada condición. Los while loops permiten crear soluciones generales a problemas que funcionarán en varios mundos de Karel, en lugar de solo en 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 e 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, se le presenta a los estudiantes Ultra Karel. Ultra Karel tiene todas las habilidades de Super Karel, más dos nuevas funciones (paint y color_is) agregadas a la API.

Los estudiantes explorarán la API Ultra Karel y usarán la capacidad de Ultra Karel para pintar la cuadrícula del mundo de Ultra Karel 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