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
Description

En esta lección, los alumnos utilizarán las funciones de coloreado de cuadrículas 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

Conocemos algunas de las aplicaciones de los programas informáticos.

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 alumnos aprenderán a imprimir mensajes en la consola utilizando el comando print de Python.

Objective

Students will be able to:

  • Write a Python program by typing commands with proper syntax
  • Write a program that prints out a message to the user
Description

En esta lección, los alumnos aprenden a asignar valores a las variables, a manipular esos valores variables y a utilizarlos en las declaraciones del programa. Esta es la lección introductoria sobre cómo se pueden almacenar datos 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 Python
  • 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 alumnos aprenden a permitir que los usuarios introduzcan información en sus programas, y a utilizar esa información 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 alumnos aprenden los distintos operadores matemáticos que pueden utilizar 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 alumnos aprenderán los fundamentos de la creación de objetos gráficos. La creación de gráficos se basa en establecer el tipo, la forma, el tamaño, la posición y el color en el lienzo del artista antes de añadirlos a la pantalla. Utilizando conceptos geométricos, se pueden crear múltiples objetos gráficos en Python.

Objective

Students will be able to:

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

En esta lección, se presenta a los alumnos una forma de obtener información del ratón del usuario mediante el método del clic del 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 alumnos repasan el contenido con un Quiz de la Unidad de 15 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 alumnos aprenderán más cosas sobre los valores booleanos. Los valores booleanos se refieren a un valor que es verdadero o falso, y se utilizan para comprobar si una condición concreta 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 alumnos aprenderán qué son los operadores lógicos. Los operadores lógicos permiten conectar o modificar expresiones booleanas. Tres operadores lógicos son y, o y no.

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 alumnos aprenden a utilizar los operadores de comparación. Los operadores de comparación permiten 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 alumnos aprenden sobre las declaraciones if como forma de tomar decisiones y ejecutar código específico en función 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 alumnos aprenderán a utilizar las teclas del teclado para controlar eventos. Los eventos de teclado capturan cuando el usuario pulsa teclas en el teclado. Esto permite a los alumnos escribir programas que toman la entrada del teclado para cambiar lo que ocurre 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 alumnos aprenderán con más detalle los For Loops. Los For Loops en Python se escriben y ejecutan de la misma manera que los ejercicios de Karel, salvo que ahora los alumnos explorarán la modificación de la sentencia de inicialización, la sentencia de prueba y las declaraciones de incremento de los loops.

Objective

Students will be able to:

  • Create for loops in Pythion
  • 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 alumnos 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 different parameters of the range function (starting value, ending value, and incrementer)
  • 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 alumnos aprenderán a crear For Loops para resolver problemas cada vez más complicados utilizando for loops anidados y estructuras de control de bifurcació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 alumnos aprenderán cómo los números aleatorios pueden mejorar un programa y utilizarse 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 Random Numbers function in order to learn how to generate random values
Description

En esta lección, los alumnos explorarán los while loops y las variables de Python. Esto combina las ideas de crear variables, actualizar variables a lo largo de un loop 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 alumnos aprenderán a 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 True. Dentro del bucle, los alumnos crean un valor SENTINEL para salir del bucle siempre que se cumpla esa condición, haciendo 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 el contenido con un Quiz 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 alumnos aprenden sobre funciones y parámetros en el contexto de Python, basándose en sus conocimientos previos sobre el trabajo con funciones en Karel. Esta lección se centra específicamente en definir y llamar funciones, y en pasar parámetros sencillos y únicos a las funciones.

Objective

Students will be able to:

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

En esta lección, los alumnos trabajarán y definirán y llamarán a sus propias funciones que toman varios parámetros como entrada e imprimen la salida.

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own Python functions
  • Utilize (call) their Python 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 alumnos siguen 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 (establecer el tamaño, establecer el color, establecer la ubicación, etc.).

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own Python functions
  • Utilize (call) their Python 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 Python functions
Description

En esta lección, los alumnos aprenden sobre los valores de retorno para poder escribir funciones que realicen algún trabajo y devuelvan el resultado o lo utilicen 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 alumnos 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 exploraremos el ámbito de una variable, es decir, dónde está “definida” o dónde 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 alumnos exploran la forma que tiene Python de tratar los errores con excepciones.

Objective

Students will be able to:

  • create programs that can gracefully handle exceptions
  • continue to function when an error is raised
Description

En esta lección, los alumnos echarán un vistazo entre bastidores a Karel. Aunque ya están familiarizados con los comandos básicos, esta lección explora detalles sobre cómo se crea la API de Karel. Los alumnos comprenderán mejor las API y, al mismo tiempo, aplicarán 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

¡Utiliza tus conocimientos de Python básico para crear algunos programas divertidos! Los alumnos crearán sus propios dibujos Fantasma de Pac-Man, un Juego de Adivinanzas y un dibujo de su propia elección. Esto permitirá a los alumnos ser creativos con su código para demostrar lo que han aprendido.

Objective

Students will be able to…

  • Synthesize the skills and concepts from the Python and Graphics, Python 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
  • Una tupla es un tipo de datos heterogéneo e inmutable que almacena una secuencia ordenada de cosas.
  • Heterogéneo significa que una única tupla puede almacenar distintos tipos de cosas.
  • Puedes acceder a partes de una tupla utilizando índices
  • Puedes encontrar la longitud de una tupla utilizando len.
  • Puedes concatenar tuplas con otras tuplas.
Objective

Students will be able to:
* Create and store information in tuples.
* Explain the characteristics of a tuple.

Description
  • Una lista es un tipo de datos mutable y heterogéneo que almacena una secuencia ordenada de cosas.
  • Puedes convertir listas en strings y strings en listas.
  • Puedes iterar sobre listas igual que con strings.
  • Una tupla puede almacenarse como una cosa en una lista.
  • Una lista puede almacenarse como una cosa en una tupla.
Objective

Students will be able to:
* Understand and explain the characteristics of a list.
* Use lists to store and recall information.

Description
  • Una lista es un tipo de datos mutable y heterogéneo que almacena una secuencia ordenada de cosas.
  • Puedes convertir listas en strings y strings en listas.
  • Puedes iterar sobre listas igual que con strings.
  • Una tupla puede almacenarse como una cosa en una lista.
  • Una lista puede almacenarse como una cosa en una tupla.
Objective

Students will be able to:
* Understand and explain the characteristics of a list.
* Use for loops to go through items in a list.

Description
  • Los métodos son como funciones que se invocan sobre los objetos.
  • Los métodos de lista pueden invocarse sobre listas
Objective

Students will be able to:
* Apply useful list methods to alter and access information about a list.

Description

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

Objective

Students will be able to:
* Explain how simulations can be used to simulate real-life events.
* Create a basic computer science simulation

Description

SWBAT completa un quiz de unidad de 15 preguntas.

Objective

SWBAT complete Unit Quiz.

Description

¿Cómo almacenan y manipulan la información los ordenadores? En esta lección, los alumnos aprenden cómo los ordenadores abstraen información complicada en trozos 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 alumnos aprenderán qué es un sistema numérico, la diferencia entre el sistema numérico decimal y el sistema numérico binario, 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 alumnos aprenderán qué es un sistema numérico, la diferencia entre el sistema numérico decimal y el sistema numérico binario, 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 alumnos aprenderán cómo los ordenadores descomponen las imágenes en valores concretos que pueden almacenarse. Los alumnos aprenderán cómo se representan digitalmente las imágenes mediante píxeles.

Objective

Students will be able to:

  • Understand how images can be encoded as data
Description

En esta lección, los alumnos conocerán el sistema numérico hexadecimal y su utilidad para almacenar información digital. También aprenderán a convertir números del sistema hexadecimal al 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 alumnos 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 alumnos aprenderán a incluir imágenes en sus programas y a manipular sus píxeles utilizando WebImage. Los alumnos 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 alumnos aprenderán cómo los ordenadores reducen la información digital, para que el almacenamiento de imágenes, vídeos y texto sea más eficaz.

Objective

Students will be able to:

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

En esta lección, los alumnos aprenderán qué es la compresión con pérdidas, las ventajas e inconvenientes de utilizar este tipo de compresión y en qué casos es adecuado utilizar la compresión con pérdidas.

Objective

Students will be able to:

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

En esta lección, los alumnos aprenden cómo los ordenadores cifran y descifran la información. Los alumnos aprenden la diferencia entre encriptación asimétrica y simétrica.

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 alumnos pondrán en práctica una forma de criptografía conocida como Esteganografía.

La esteganografía es el arte y la ciencia de ocultar mensajes secretos de forma que nadie, aparte del destinatario previsto, conozca la existencia del mensaje. En la información digital, la esteganografía es la práctica de ocultar un archivo, mensaje, imagen o vídeo dentro de otro archivo, mensaje, imagen o vídeo.

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 alumnos jugarán con distintas formas de modificar los píxeles para crear su propio filtro de imagen.

Comprensión permanente

Esta lección se basa en la siguiente Comprensión Permanente (UE) y Objetivos de Aprendizaje (LOs). Los alumnos deben comprender que…

  • UE 1.1 El desarrollo creativo puede ser un proceso esencial para crear artefactos computacionales. (OA 1.1.1)
  • EU 1.2 La informática permite a las personas utilizar procesos de desarrollo creativo para crear artefactos computacionales con fines de expresión creativa o para resolver un problema. (LO 1.2.1, 1.2.4, 1.2.5)
  • UE 2.1 Para representar todos los datos digitales pueden utilizarse diversas abstracciones basadas en secuencias binarias. (LO 2.1.2)
  • EU 2.2 Se utilizan múltiples niveles de abstracción para escribir programas o crear otros artefactos computacionales. (LO 2.2.1)
  • UE 3.1 Las personas utilizan programas informáticos para procesar información con el fin de obtener información y conocimientos. (LO 3.1.2)
  • EU 5.4 Los programas son desarrollados, mantenidos y utilizados por las personas con 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 alumnos mantendrán un debate de alto nivel sobre qué es Internet y cómo funciona. También se tratarán los temas del anonimato y la 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, exploraremos el hardware que compone Internet y exploraremos 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 alumnos explorarán cómo se comunica el hardware de Internet utilizando 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 alumnos aprenden qué es una URL y qué ocurre 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 alumnos explorarán el sistema DNS y cómo asigna nombres de dominio legibles por humanos a direcciones IP reales accesibles.

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 alumnos aprenden sobre la última pieza del puzzle del funcionamiento de Internet: Paquetes y Protocolos. Toda la información enviada por Internet se divide en pequeños grupos de bits llamados paquetes. El formato para crear y leer paquetes se define mediante protocolos abiertos, de modo que todos los dispositivos puedan leer los 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 alumnos debatirán sobre las formas en que se pueden explotar los protocolos de los que hemos hablado, y sobre algunos métodos de protección que tenemos. Aprenderemos sobre el impacto de la ciberdelincuencia y cómo podemos combatir los ciberataques con la 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, se presenta a los alumnos diferentes formas en que Internet influye en sus vidas. Internet afecta a la forma en que la gente se comunica (correos electrónicos, redes sociales, videochat) y colabora para resolver problemas. Ha revolucionado la forma en que la gente puede aprender e incluso comprar cosas. Dado que Internet está presente en casi todas las facetas de la vida de las personas, existen graves problemas éticos y legales derivados 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 alumnos aprenderán qué son las leyes de derechos de autor y cómo evitar infringirlas. Explorarán por qué son importantes las leyes de derechos de autor 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 Tarea Práctica de Alto Rendimiento, los alumnos elegirán una innovación que haya sido posible gracias a Internet y explorarán las repercusiones positivas y negativas de dicha innovación en la sociedad, la economía y la cultura. Los alumnos desarrollarán un artefacto computacional que ilustre, represente o explique el propósito de la innovación, su función o su efecto, e incrustarán este artefacto en el sitio web de su portafolio 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 alumnos aprenderán cómo se utilizan los ordenadores para recopilar, almacenar, manipular y visualizar datos con el fin de responder a preguntas y adquirir conocimientos sobre el 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 alumnos aprenderán sobre el impacto de representar visualmente los datos para que la información sea más fácil de analizar y utilizar.

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 alumnos aprenden cómo pueden utilizarse los ordenadores para recoger y almacenar datos. Aprenden las mejores prácticas para interpretar los datos que se presentan. Las visualizaciones de datos pueden ser muy útiles para reconocer patrones y responder preguntas, pero también pueden utilizarse para engañar 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 alumnos trabajarán con un compañero para responder a una pregunta de interés personal utilizando un conjunto de datos de acceso público. Los alumnos deberán elaborar visualizaciones de datos y explicar cómo estas visualizaciones les han llevado a sus conclusiones. Desarrollarán un artefacto computacional que ilustre, represente o explique sus conclusiones, comunicarán sus conclusiones a sus compañeros de clase e incrustarán su artefacto en el sitio web de su 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

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, 1.2.4)
  • EU 3.1 People use computer programs to process information to gain insight and knowledge. (LOs 3.1.2, 3.1.3)
  • EU 3.2 Computing facilitates exploration and the discovery of connections in information. (LO 3.2.1)
  • EU 7.1 Computing enhances communication, interaction, and cognition. (LO 7.1.1)
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 celebrará 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, se introduce a los alumnos en el concepto de pensamiento de diseño y aprenden los pasos del 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, se introducirá a los alumnos en la creación de prototipos. Se les darán pautas para este paso y se les mostrarán ejemplos para que puedan crear con éxito prototipos de sus propias ideas para el proyecto final.

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 alumnos 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 obtener 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 final de programación, los alumnos reunirán todos los conceptos aprendidos a lo largo del 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