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
Description

En esta lección, los estudiantes usarán la funcionalidad de coloración de la cuadrícula de Karel para crear una imagen digital.

Objective

Students will be able to:

  • Develop a program for creative expression, or to satisfy personal curiosity
  • Develop an algorithm and implement it using Karel’s JavaScript library of commands and conditions
  • Collaborate in the development of programs
  • Make a plan for their solution by breaking their problem down into solvable subproblems using Top Down Design
  • Develop abstractions to manage the complexity of their program (write several reusable functions that solve small subproblems)

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 1.1 Creative development can be an essential process for creating computational artifacts. (LO 1.1.1)
  • EU 1.2 Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem. (LOs 1.2.1, 1.2.3, 1.2.4, 1.2.5)
  • EU 2.2 Multiple levels of abstraction are used to write programs or create other computational artifacts. (LO 2.2.1)
  • EU 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages. (LOs 4.1.1, 4.1.2)
  • EU 5.1 Programs can be developed for creative expression, to satisfy personal curiosity, to create new knowledge, or to solve problems (to help people, organizations, or society). (LOs 5.1.1, 5.1.2, 5.1.3)
  • EU 5.3 Programming is facilitated by appropriate abstractions. (LO 5.3.1)
Description

Definimos qué es el “código”, encontramos ejemplos en el mundo real y aprendemos sobre la programación como un ejemplo específico de código.

Objective

Students will be able to explain what code is in their own words, and provide examples of code in their lives.

Description

Aprendemos sobre algunas de las aplicaciones de los programas de computadora.

Objective

Students understand why programming is a useful skill, and can explain ways in which programs are being used today. Students will be able to analyze the positive and negative effects of programs and communicate their findings to their classmates.

Description

En esta lección, los estudiantes aprenderán cómo imprimir mensajes en la consola utilizando el comando JavaScript println.

Objective

Students will be able to:

  • Write a JavaScript program by typing commands with proper syntax in the start function
  • Write a program that prints out a message to the user
Description

En esta lección, los estudiantes aprenden cómo asignar valores a variables, manipular esos valores variables y usarlos en las declaraciones del programa. Esta es la lección introductoria sobre cómo los datos se pueden almacenar en variables.

Objective

Students will be able to:

  • Explain what variables are and what they are used for
  • Use the different types of variables in JavaScript
  • Distinguish between declaring, initializing and assigning variables
  • Create their own variables with proper naming conventions
  • Print out the values stored in variables
Description

En esta lección, los estudiantes aprenden cómo pueden permitir a los usuarios ingresar información en sus programas y usar esa entrada en consecuencia.

Objective

Students will be able to:

  • Create programs that ask the user for input
  • Store user input in variables and print it back to the user
  • Choose the proper input function to use depending on the type of information needed
Description

En esta lección, los estudiantes aprenden sobre los diferentes operadores matemáticos que pueden usar para realizar cálculos matemáticos y crear programas útiles que calculen información para el usuario.

Objective

Students will be able to:

  • Describe the different mathematical operators we can use in programs
  • Create programs that use basic math to compute useful things
  • Create programs that take in user input, do simple computations with the input, and produce useful output
Description

En esta lección, los estudiantes aprenderán los conceptos básicos de crear objetos gráficos. La creación gráfica se basa en establecer el tipo, la forma, el tamaño, la posición y el color en el lienzo del artista antes de agregar a la pantalla. Usando los conceptos geométricos y el concepto de getWidth() y getHeight(), se pueden crear múltiples objetos gráficos en JavaScript.

Objective

Students will be able to:

  • Create graphical JavaScript programs that draw shapes on the canvas
  • Locate points on the graphics canvas using (x, y) coordinates
Description

En esta lección, los estudiantes se introducen en la forma en que se puede tomar la entrada del ratón del usuario utilizando el método hecho para hacer clic en el ratón.

Objective

Students will be able to:

  • Describe how events are different than timers
  • Use mouse click events to create programs that respond to user clicks
Description

En esta lección, los estudiantes revisan el contenido con un quiz de la unidad de 25 preguntas.

Objective

Students will be able to:

  • Prove their knowledge of basic coding concepts through a multiple choice quiz
Description

En esta lección, los estudiantes aprenderán más sobre los valores booleanos. Los booleanos se refieren a un valor que es verdadero o falso, y se usan para probar si una condición específica es verdadera o falsa.

Objective

Students will be able to:

  • Create boolean variables to represent meaningful yes/no values
  • Print out the value of a boolean variable

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages. (LO 4.1.1)
  • EU 5.5 Programming uses mathematical and logical concepts. (LO 5.5.1)
Description

En esta lección, los estudiantes aprenderán sobre operadores lógicos. Los operadores lógicos permiten a los estudiantes conectar o modificar las expresiones booleanas. Tres de los operadores lógicos son: !, ||, &&.

  • ! = NO
  • || = O
  • && = Y
Objective

Students will be able to:

  • Describe the meaning and usage of each logical operator: OR (||), AND (&&), and NOT (!)
  • Construct logical statements using boolean variables and logical operators
Description

En esta lección, los estudiantes aprenden a usar operadores de comparación. Los operadores de comparación permiten a los estudiantes comparar dos valores.

Objective

Students will be able to:

  • Explain the meaning of each of the comparison operators (<, <=, >, >=, ==, !=)
  • Create programs using the comparison operators to compare values
  • Predict the boolean result of comparing two values
  • Print out the boolean result of comparing values
Description

En esta lección, los estudiantes aprenden a usar las declaraciones If como una forma de tomar decisiones y ejecutar un código específico dependiendo de la validez de una condición.

Objective

Students will be able to:

  • Explain the purpose of if statements
  • Create their own if statements to selective choose which code is executed in their programs
Description

En esta lección, los estudiantes aprenderán cómo usar teclas de teclado para controlar los eventos. Los Eventos Key capturan cuando el usuario presiona las teclas en el teclado. Esto permite a los estudiantes escribir programas que tomen entradas del teclado para cambiar lo que está sucediendo en el programa.

Objective

Students will be able to:

  • Create interactive programs that use events to respond to the keyboard input.
Description

En esta lección, los estudiantes aprenderán con mayor detalle sobre los For Loops. Los For Loops en JavaScript se escriben y ejecutan de la misma manera que los ejercicios de Karel, excepto que los estudiantes explorarán modificar la declaración de inicialización, la declaración de prueba y las declaraciones de incremento de los bucles.

Objective

Students will be able to:

  • Create for loops in JavaScript
  • Explain the purpose of for loops
  • Utilize for loops to avoid typing out repeated code
  • Use the loop counter i inside the for loop code to do something different on each iteration
Description

En esta lección, los estudiantes explorarán con más detalle cómo pueden modificar la declaración de inicialización, la declaración de prueba y la declaración de incremento en un For Loop.

Objective

Students will be able to:

  • Explain the three parts of the for loop (initialization statement, test statement, increment statement)
  • Create for loops that iterate differently than the basic for loop structure (ie count by twos or count backwards)
Description

En esta lección, los estudiantes aprenderán cómo crear For Loops para resolver problemas cada vez más desafiantes mediante el uso de bucles y estructuras de control de ramificación.

Objective

Students will be able to:

  • Explain the purpose of for loops
  • Create for loops to solve increasingly challenging problems
  • Create nested for loops
Description

En esta lección, los estudiantes aprenderán cómo la aleatorización puede mejorar un programa y usarse en combinación con diversas estructuras de control.

Objective

Students will be able to:

  • Explain why random numbers are a useful part of computer programs
  • Create random values in a program
  • Utilize the DOCS for the Randomizer class in order to learn how to generate random values
Description

En esta lección, los estudiantes explorarán los While Loops y variables de JavaScript. Esto combina las ideas de crear variables, actualizar variables a lo largo de un bucle y determinar la condición final correcta.

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
Description

En esta lección, los estudiantes aprenderán cómo crear un loop and a half. Un loop and a half es una forma específica de escribir un While Loop con la condición que es verdadero. Dentro del bucle, los estudiantes crean un valor de SENTINEL para salir del bucle cada vez que se cumple esa condición, lo que hace que el bucle termine.

Objective

Students will be able to:

  • Explain how the loop-and-a-half structure is different from a traditional while loop
  • Explain what an infinite loop is
  • Explain what the break statement does
  • Create programs that use the loop-and-a-half structure to repeat code until a SENTINEL is met, causing the program to break out of the loop
Description

En esta lección, los alumnos repasan los contenidos con un cuestionario de la unidad de 15 preguntas.

Objective

Students will be able to:

  • Prove their knowledge of control structures through a multiple choice quiz
Description

En esta lección, los estudiantes aprenden sobre funciones y parámetros en el contexto de JavaScript que se basa en su conocimiento previo de trabajar con funciones en Karel. Esta lección se centra específicamente en definir y llamar a las funciones, y transmitir parámetros simples y únicos a las funciones.

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own JavaScript functions
  • Utilize (call) their JavaScript functions to solve simple problems
  • Define and call functions that take in parameters as input
Description

En esta lección, los estudiantes trabajarán y definirán y llamarán sus propias funciones que toman múltiples parámetros como entrada e salida de impresión.

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own JavaScript functions
  • Utilize (call) their JavaScript functions to solve simple problems
  • Define functions that take in multiple parameters as input, and use print statements for output
Description

En esta lección, los estudiantes continúan trabajando con múltiples parámetros que crean gráficos como salida, lo cual es muy útil, ya que crear varios objetos gráficos diferentes implica escribir el mismo código una y otra vez (establezca el tamaño, establezca el color, establezca la ubicación, etc).

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own JavaScript functions
  • Utilize (call) their JavaScript functions to simplify their graphics programs
  • Identify repeated code that can be simplified with functions and parameters
  • Define functions that take in multiple parameters as input, and create graphics as output
  • Pass parameters of the correct number and type to their defined JavaScript functions
Description

En esta lección, los estudiantes aprenden sobre los valores de retorno para que puedan escribir funciones que trabajen y envíen el resultado o use más adelante en el programa.

Objective

Students will be able to:

  • Explain the purpose of returning a value from a function.
  • Define functions that return values.
  • Create programs that define and call functions with return values and store the result for later use.
Description

En esta lección, los estudiantes trabajan y definen funciones con valores de retorno y más de un parámetro.

Objective

Students will be able to…

  • Explain the purpose of returning a value from a function.
  • Create functions that return values.
  • Create programs that call functions with return values and use the return values to solve a higher-order problem.
Description

En esta lección exploramos el alcance de una variable, que es donde la variable está “definida” o donde existe.

Objective

Students will be able to:

  • Identify the scope of a variable
  • Identify which variables are in scope at a given point in a program
Description

En esta lección, los estudiantes echarán un vistazo detrás de escena de Karel. Si bien están familiarizados con los comandos básicos, esta lección explora los detalles sobre cómo se crea la API de Karel. Los estudiantes obtendrán una mejor comprensión de las API y al mismo tiempo que aplican conceptos de gráficos y funciones.

Objective

Students will be able to:

  • Understand how an API abstracts away detail for a program such as Karel
  • Use functions and event-driven programming to create a simple API
Description

¡Use tu conocimiento de JavaScript básico para crear algunos programas divertidos! Los estudiantes crearán sus propios dibujos fantasmas de Pac-Man, un juego de adivinanzas y un dibujo de su propia elección. Esto permitirá a los estudiantes ser creativos con su código para mostrar lo que han aprendido.

Objective

Students will be able to…

  • Synthesize the skills and concepts from the JavaScript and Graphics, JavaScript Control Structures, and the Functions and Parameters units to solve increasingly difficult programming challenges
  • Break down a large problem into smaller parts using Top Down Design, and solve each of these smaller parts using functions
  • Create helpful comments with preconditions and postconditions to help the reader understand the code
  • Find and fix bugs in large programs
Description

Esta lección es una evaluación sumativa de los objetivos de aprendizaje de la unidad.

Objective

Assess student achievement of the learning goals of the unit

Description

En esta lección, los estudiantes aprenden sobre listas/arrays y cómo acceder a un elemento en una matriz con un índice para que puedan crear colecciones ordenadas de artículos y usarlas en sus programas.

Objective

Students will be able to:

  • Define an array
  • Access certain elements of an array by using an index
Description

En esta lección, los estudiantes continúan trabajando con la indexación de array para obtener y asignar valores de array para que puedan incorporar array/listas en sus programas y manejar datos de manera más eficiente.

Objective

Students will be able to:

  • Use indexing to call and assign items in an array
Description

En esta lección, los estudiantes aprenden cómo agregar y eliminar elementos al final de un array utilizando los métodos push y pop.

Objective

Students will be able to:

  • Add elements at the end of an array using the push method
  • Remove elements from the end of an array using the pop method
Description

En esta lección, los estudiantes podrán obtener el tamaño de una Array y aprender a recorrer una Array para que puedan tener más funcionalidad con Array en sus programas.

Objective

Students will be able to:

  • Determine the length of an array using the length property
  • Use the length of an array and a for loop to loop through the elements in an array
  • Loop over an array to filter or print certain elements based on tested criteria
Description

En esta lección, los estudiantes podrán obtener la longitud de una array y recorrer una array para que puedan usar matrices en problemas que involucran números aleatorios y gráficos de JavaScript.

Objective

Students will be able to:

  • Use the length of an array and a for loop to loop through the elements in an array
  • Loop over an array to filter or print certain elements based on tested criteria
  • Using iteration on arrays for problems involving randomness and graphics
Description

En esta lección, los estudiantes aprenden y usan otro método en una lista, indexOf para encontrar elementos en las listas dentro de sus programas.

Objective

Students will be able to:

  • Use the indexOf method to find the index of a particular element in an array.
Description

En esta lección, los estudiantes aprenderán cómo usar los métodos splice y remove para eliminar un elemento de una matriz y así agregar más funcionalidad a sus programas.

Objective

Students will be able to:

  • Use the splice and remove methods to remove an element from an array.
Description

Aprendemos qué son simulaciones, cómo se usan y simulamos la gravedad y el Juego de la Vida de Conway.

Description

Esta lección es una evaluación sumativa de los objetivos de aprendizaje de la unidad.

Objective

Assess student achievement of the learning goals of the unit

Description

¿Cómo almacenan y manipulan la información de las computadoras? En esta lección, los estudiantes aprenden cómo las computadoras abstractan la información complicada en fragmentos manejables que luego pueden almacenar y manipular.

Objective

Students will be able to:

  • explore and explain abstraction and the different ways that we can represent digital information.
Description

En esta lección, los estudiantes aprenderán qué es un sistema numérico, la diferencia entre el sistema de números decimales y el sistema de números binarios, y cómo convertir entre decimal y binario.

Objective

Students will be able to:

  • Represent numbers in different number systems
  • Understand how to convert between the decimal and binary system
Description

En esta lección, los estudiantes aprenderán qué es un sistema numérico, la diferencia entre el sistema de números decimales y el sistema de números binarios, y cómo convertir entre decimal y binario.

Objective

Students will be able to :

  • Understand the binary system
  • Encode various types of information using binary
Description

En esta lección, los estudiantes aprenderán cómo las computadoras dividen imágenes en valores concretos que se pueden almacenar. Los estudiantes aprenderán cómo las imágenes se representan digitalmente usando píxeles.

Objective

Students will be able to:

  • Understand how images can be encoded as data
Description

En esta lección, los estudiantes aprenderán sobre el sistema de números hexadecimales y cómo es útil para almacenar información digital. También aprenderán a convertir números del sistema hexadecimal a binario y viceversa.

Objective

Students will be able to:

  • Understand how to convert between the hexadecimal and binary system
Description

En esta lección, los estudiantes aprenderán cómo el esquema de codificación RGB nos permite codificar los colores como datos numéricos. Define la cantidad de luz roja, verde y azul en un píxel.

Objective

Students will be able to:

  • Encode colors
  • Encode color images as data
Description

En esta lección, los estudiantes aprenderán cómo incluir imágenes en sus programas y manipular sus píxeles usando Webimage. Los estudiantes aprenderán cómo los filtros de imagen manipulan los datos de píxeles almacenados.

Objective

Students will be able to:

  • Include images in their programs
  • Manipulate the stored pixel data arbitrarily
Description

En esta lección, los estudiantes aprenderán cómo las computadoras encogen información digital para hacer que el almacenamiento de imágenes, videos y texto sea más eficiente.

Objective

Students will be able to:

  • have a basic understanding of how data can be compressed.
Description

En esta lección, los estudiantes aprenderán qué es compresión con pérdida, los beneficios y desventajas del uso de este tipo de compresión, y dónde es apropiado usar compresión con pérdida.

Objective

Students will be able to:

  • understand different types of compressions, and the benefits and drawbacks to each.
Description

En esta lección, los estudiantes aprenden cómo las computadoras encriptan y descifran la información. Los estudiantes aprenden la diferencia entre el cifrado asimétrico y simétrico.

Objective

Students will be able to:

  • Explain what cryptography is and how it is used
  • Analyze an encryption and determine if it is weak or strong
  • Explain the difference between an easy and hard problem in computer science
  • Explain the difference between algorithms that run in a reasonable amount of time and those that do not run in a reasonable amount of time
  • Explain the difference between solvable and unsolvable problems in computer science
  • Explain the existence of undecidable problems in computer science
Description

Esta lección es una evaluación sumativa de los objetivos de aprendizaje de la unidad.

Objective

Assess student achievement of the learning goals of the unit

Description

En este proyecto, los estudiantes implementarán una forma de criptografía conocida como esteganografía.

La esteganografía es el arte y la ciencia de ocultar mensajes secretos de tal manera que nadie aparte del receptor previsto sabe sobre la existencia del mensaje. En información digital, la esteganografía es la práctica de ocultar un archivo, mensaje, imagen o video dentro de otro archivo, mensaje, imagen o video.

Objective

Students will be able to…

  • Explain the connection between cryptography and encoding information digitally
  • Create a program that encodes secret information in the binary pixel data of an image

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 1.1 Creative development can be an essential process for creating computational artifacts. (LO 1.1.1)
  • EU 1.2 Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem. (LOs 1.2.1, 1.2.4, 1.2.5)
  • EU 2.1 A variety of abstractions built on binary sequences can be used to represent all digital data. (LO 2.1.2)
  • EU 2.2 Multiple levels of abstraction are used to write programs or create other computational artifacts. (LO 2.2.1)
  • EU 3.1 People use computer programs to process information to gain insight and knowledge. (LO 3.1.2)
  • EU 5.4 Programs are developed, maintained, and used by people for different purposes. (LO 5.4.1)
Description

¡En este proyecto, los estudiantes jugarán con diferentes formas de modificar píxeles para crear su propio filtro de imagen!

Entendimientos Duraderos

Esta lección se desarrolla hacia los siguientes Entendimientos Duraderos (EUS) y Objetivos de Aprendizaje (LOS). Los estudiantes deben entender eso…

  • El desarrollo creativo de la UE 1.1 puede ser un proceso esencial para crear artefactos computacionales. (LO 1.1.1)
  • EU 1.2 Computing permite a las personas usar procesos de desarrollo creativo para crear artefactos computacionales para la expresión creativa o resolver un problema. (LOS 1.2.1, 1.2.4, 1.2.5)
  • UE 2.1 Se puede utilizar una variedad de abstracciones basadas en secuencias binarias para representar todos los datos digitales. (LO 2.1.2)
  • UE 2.2 Múltiples niveles de abstracción se utilizan para escribir programas o crear otros artefactos computacionales. (LO 2.2.1)
  • UE 3.1 Las personas usan programas de computadora para procesar información para obtener información y conocimiento. (LO 3.1.2)
  • Los programas de la UE 5.4 son desarrollados, mantenidos y utilizados por personas para diferentes fines. (LO 5.4.1)
Objective

Students will be able to…

  • Create a program that manipulates image pixel data in a creative way, resulting in a novel image filter
Description

En esta lección, los estudiantes tendrán una discusión de alto nivel sobre lo que es Internet y cómo funciona Internet. También se discutirán los temas de anonimato y censura.

Objective

Students will be able to:

  • Understand what the internet is
  • Understand how the internet works
  • Discuss the issue of anonymity
  • Understand the legal and ethical concerns surrounding internet censorship
Description

En esta lección, exploramos el hardware que constituye Internet y exploramos las características de ese hardware que definen nuestra experiencia en Internet.

Objective

Students will be able to:

  • Discuss and answer questions about the hardware that powers the internet
Description

En esta lección, los estudiantes explorarán cómo el hardware de Internet se comunica con las direcciones de Internet y el protocolo de Internet.

Objective

Students will be able to:

  • Discuss the necessity of internet protocols
  • Recognize the hierarchy of elements in an IP address
Description

En esta lección, los estudiantes aprenden qué es una URL y qué sucede cuando visitan una URL.

Objective

Students will be able to:

  • Describe the process that occurs when typing in a URL, from sending a request and response over the Internet to viewing a webpage
Description

En esta lección, los estudiantes explorarán el sistema DNS y cómo asigna los nombres de dominio legibles por humanos en direcciones IP accesibles reales.

Objective

Students will be able to:

  • Understand the DNS system and how it works
  • Recognize the DNS system as an abstraction
Description

En esta lección, los alumnos exploran cómo llegan los mensajes de una dirección de Internet a otra.

Objective

Students will be able to:

  • Explain how computers communicate using routers
  • Explain what considerations are made when choosing a route
  • Discuss how routers are fault-tolerant because of redundancy
Description

En esta lección, los estudiantes aprenden sobre la última pieza del rompecabezas de cómo funciona Internet: paquetes y protocolos. Toda la información enviada a través de Internet se divide en pequeños grupos de bits llamados paquetes. El formato para crear y leer paquetes se define mediante protocolos abiertos para que todos los dispositivos puedan leer paquetes de todos los demás dispositivos.

Objective

Students will be able to:

  • Explain the packet process and how protocols (TCP/IP and HTTP) are vital to the exchange of information on the Internet
  • Explain the HyperText Transfer Protocol
Description

En esta lección, los estudiantes aprenden sobre tres métodos que utilizan las computadoras para procesar tareas: computación secuencial, paralela y distribuida. La computación secuencial ejecuta cada paso en orden uno a la vez, mientras que las tareas del proceso de computación paralela y distribuida simultáneamente en el mismo o en más de un dispositivo, respectivamente.

Objective

Students will be able to:

  • differentiate between sequential, parallel, and distributed computing
  • explain the benefits and challenges of using parallel and distributed computing
Description

En esta lección, los estudiantes discutirán las formas en que los protocolos que hemos mencionado pueden ser explotados, y algunos métodos de protección que tenemos. Aprendemos sobre el impacto del delito cibernético y cómo podemos combatir los ataques cibernéticos con ciberseguridad. La criptografía es la piedra angular de la comunicación segura.

Objective

Students will have an understanding of why cybersecurity is necessary, and some practical measures that they can take themselves to improve their security on the internet.

Description

En esta lección, a los estudiantes se les presentan diferentes formas en que Internet impacta sus vidas. Internet afecta la forma en que las personas se comunican (correos electrónicos, redes sociales, chat de video) y colaboran para resolver problemas. Ha revolucionado la forma en que las personas pueden aprender e incluso comprar cosas. Debido a que Internet está presente en casi todas las facetas de la vida de las personas, existen preocupaciones éticas y legales graves que se derivan de Internet.

Objective

Students will be able to:

  • Analyze the different ways that the Internet impacts their lives by learning about how the Internet contributes to collaboration, communication, etc
  • Evaluate whether the Internet has a more positive or negative effect on their community by citing examples from the lesson
  • Explain what the digital divide is and articulate their own opinions related to it
Description

En esta lección, los estudiantes aprenderán qué son las leyes de derechos de autor y cómo evitar la infracción de los derechos de autor. Explorarán por qué las leyes de derechos de autor son importantes y cómo protegen a los creadores.

Objective

Students will be able to:

  • Explain what copyright laws are and why they are important
  • Find images they are legally allowed to use in their projects
  • Accurately attribute images they find and want to use
Description

Esta lección es una evaluación sumativa de los objetivos de aprendizaje de la unidad.

Objective

Assess student achievement of the learning goals of the unit

Description

En esta práctica, los estudiantes elegirán una innovación que fue habilitada por Internet y explorará los impactos positivos y negativos de su innovación en la sociedad, la economía y la cultura. Los estudiantes desarrollarán un artefacto computacional que ilustra, representa o explica el propósito de la innovación, su función o su efecto, e incrustará este artefacto en su sitio web de cartera personal.

Objective

Students will be able to…

  • Communicate the beneficial and harmful effects of a computing innovation
  • Develop a computational artifact to represent a computing innovation of choice
  • Cite relevant and credible sources in their arguments
  • Gain practice for the AP Explore Performance Task

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 1.1 Creative development can be an essential process for creating computational artifacts. (LO 1.1.1)
  • EU 1.2 Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem. (LOs 1.2.1, 1.2.2)
  • EU 6.1 The Internet is a network of autonomous systems. (LO 6.1.1)
  • EU 7.1 Computing enhances communication, interaction, and cognition. (LO 7.1.1)
  • EU 7.5 An investigative process is aided by effective organization and selection of resources. Appropriate technologies and tools facilitate the accessing of information and enable the ability to evaluate the credibility of sources. (LOs 7.5.1, 7.5.2)
Description

En esta lección, los estudiantes aprenderán cómo se utilizan las computadoras para recopilar, almacenar, manipular y visualizar datos para responder preguntas y obtener conocimiento del mundo.

Objective

Students will be able to examine and analyze the growing importance of data in technology and their lives

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 3.1 People use computer programs to process information to gain insight and knowledge. (LO 3.1.1)
  • EU 3.2 Computing facilitates exploration and the discovery of connections in information. (LOs 3.2.1, 3.2.2)
Description

En esta lección, los estudiantes aprenderán sobre el impacto de representar visualmente los datos para hacer que la información sea más fácil de analizar y usar.

Objective

Students will be able to:

  • Explain the importance of visually depicting data to make information easier to use and to understand trends and changes in information
Description

En esta lección, los estudiantes aprenden cómo las computadoras se pueden usar para recopilar y almacenar datos. Aprenden las mejores prácticas para interpretar datos que se presentan. Las visualizaciones de datos pueden ser muy útiles para reconocer los patrones y responder preguntas, pero también puede usarse para confundir si están sesgadas o llenas de prejuicios.

Objective

Students will be able to:

  • Understand how computers collect and store data
  • Analyze data interpretation by learning ways in which data can be skewed
  • How to think meta-cognitively about the data being represented
Description

Los estudiantes trabajarán con un socio para responder una pregunta de interés personal utilizando un conjunto de datos disponible públicamente. Los estudiantes necesitarán producir visualizaciones de datos y explicar cómo estas visualizaciones condujeron a sus conclusiones. Desarrollarán un artefacto computacional que ilustra, representa o explica sus hallazgos, comunicará sus hallazgos a sus compañeros de clase e incrusta su artefacto en su sitio web de portafolio personal.

Objective

Students will collaborate to process data and gain knowledge about a question of interest to them, and present their data driven insight to their classmates

Description

En esta lección, los alumnos recibirán una introducción a Crear Tarea de Rendimiento y al Examen AP de Principios de las Ciencias de la computación. Se centrarán en comprender los componentes A, B y C de Crear Tarea de Rendimiento leyendo las cinco páginas iniciales de la Guía del Alumno. Mediante un debate guiado, los alumnos tendrán la oportunidad de resolver cualquier duda que puedan tener sobre los requisitos de la tarea.

Objective

Students will be able to:

  • Identify and explain components A, B, and C of the Create Performance Task in AP Computer Science Principles.
  • Analyze task requirements and generate thoughtful questions to clarify doubts and deepen understanding.
  • Actively engage in group discussions, share questions, and collaborate with peers to gain a comprehensive understanding of the task and exam.
Description

Esta lección cubre las directrices para Crear Tarea de Rendimiento, la Política de Integridad Académica y las estrategias para que los alumnos se preparen y naveguen por la tarea de forma ética.

Objective

Students will be able to:

  • Understand and apply the guidelines for the Create Performance Task.
  • Comprehend the Academic Integrity and Plagiarism Policy, incorporating external ideas ethically and providing proper attribution.
  • Develop effective strategies for preparation and ethical navigation of the Create Performance Task.
Description

Esta lección es un examen práctico que prepara a los alumnos para el examen AP de Principios de Informática que se llevará a cabo en mayo. Al igual que el examen AP, esta lección consiste en una prueba de opción múltiple que evalúa los objetivos de aprendizaje del curso.

Objective

Students will be able to…

  • Explain the format of the AP Computer Science Principles exam
  • Identify course topics that they have a strong understanding of
  • Identify course topics that they need to review
Description

En esta lección, los estudiantes se presentan al concepto de pensamiento de diseño y aprenden los pasos en el ciclo de diseño.

Objective

Students will be able to:

  • Define design thinking
  • Name the steps in the design cycle
Description

En esta lección, los estudiantes serán introducidos a la creación de prototipos. Se les darán pautas para este paso y se mostrarán ejemplos para crear con éxito prototipos de sus propias ideas finales del proyecto.

Objective

Students will be able to:

  • Explain what prototyping is and why it is an important part of the design process
Description

En esta lección, los estudiantes explorarán el paso de prueba del proceso de diseño. Verán ejemplos buenos y malos de prácticas de prueba y podrán recibir comentarios sobre sus propios prototipos antes de pasar al proceso de construcción.

Objective

Students will be able to:

  • Describe why testing is an important part of the design process
  • Explore good and bad testing practices in order to receive helpful feedback on their final project ideas
Description

En este módulo de programación final, los estudiantes reunirán todos los conceptos aprendidos en todo el curso para crear un sitio web. Trabajarán con compañeros o en grupos para desarrollar creativamente un sitio web que incluya aspectos de cada parte del curso.

Objective

Students will be able to:

  • Connect all they’ve learned to create a final website
  • Work in pairs or groups to create a product