Please enable JavaScript to use CodeHS

Ciencias de la computación, Nivel A (Nitro)

Description

En esta lección, los estudiantes aprenderán y practicarán cómo utilizar el esqueleto principal de Java, el cual incluye la clase y los argumentos del método principal. Utilizarán los comandos System.out.print ySystem.out.println para visualizar Strings de literales en el editor. Esta lección corresponde al tema 1.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • call system class methods to generate output to the console
  • recognize the difference between display behavior of System.out.print and System.out.println
  • create string literals
Description

En esta lección, los estudiantes aprenderán sobre variables. Las variables permiten almacenar información, como números, palabras o expresiones de verdadero/falso. Se puede considerar una variable como una caja donde se almacena información. En Java, las variables se componen de tres cosas: un nombre, un tipo y un valor. Esta lección corresponde al tema 1.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • declare, initialize and assign a value to a variable
  • identify the most appropriate data type category for a particular specification
  • categorize a data type as either primitive or reference
  • declare a final variable
Description

En esta lección, los estudiantes aprenden cómo usar expresiones aritméticas en Java. Las expresiones aritméticas permiten el uso de operaciones matemáticas dentro de Java. Los estudiantes también aprenderán sobre el operador de módulo (%) y cómo se evalúa. Dichas expresiones se pueden usar para matemáticas básicas e incluso para algoritmos más complejos. Esta lección corresponde al tema 1.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • evaluate arithmetic expressions in a program code
  • use the modulus operator (%)
Description

En esta lección, los estudiantes aprenderán cómo usar el operador de incremento (++), el operador de disminución (--) y los operadores de asignación de compuestos (+=, −=, *=, /=, %=). El operador de incremento (++) y el operador de disminución (--) se usan para agregar 1 o restar 1 al valor almacenado de una variable. Un nuevo valor se le asigna a la variable. Esta lección corresponde al tema 1.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Evaluate what is stored in a variable as a result of an expression with an assignment statement
  • Use a compound assignment operators (+=, −=, *=, /=, %=) in place of the assignment operator
  • Use an increment operator (++) or decrement operator (−−) to add 1 or subtract 1 from the stored value of a variable
Description

En esta lección, los estudiantes aprenderán cómo recibir datos introducidos por el usuario con la clase de Scanner en Java. Después de crear un nuevo objeto tipo Scanner, aprenderán los siguientes comandos, los cuales les permitirán tomar datos desde el usuario.

String name = input.nextLine();
int number = input.nextInt();
double decimal = input.nextDouble();
Objective

Students will be able to:

  • import and initialize a new Scanner to take in user input
  • create variables that take the assigned value of the user input.
  • choose the correct command that will allow the program to receive the input value that corresponds with its desired data type

Enduring Understandings

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

  • EU (Var-1) To find specific solutions to generalizable problems, programmers include variables in their code so that the same algorithm runs using different input values. (LOs 1.A, 1.B)
Description

En esta lección, los estudiantes aprenderán cómo cambiar el tipo de datos de un valor a través del proceso de moldeado. También utilizarán el moldeado para ayudar a redondear los valores duplicados al entero más cercano. Los estudiantes explorarán el rango de variables permitidas en Java y comprenderán el desbordamiento de enteros cuando se intente usar un valor fuera de este rango. Esta lección corresponde al tema 1.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Evaluate arithmetic expressions that use casting
  • Understand that integer values in Java are stored using a finite amount (4 bytes) of memory. Therefore, an int value must be in the range from Integer.MIN_VALUE to Integer.MAX_ VALUE inclusive
  • Understand when an expression evaluates to an int value outside of the allowed range, an integer overflow occurs
  • Recognize and use implicit casting
  • Use casting to round to the nearest integer
Description

En esta lección, los estudiantes conocen a las clasess y los objetos. Estos son los cimientos de la programación orientada a objetos.
Los estudiantes aprenderán sobre objetos que tienen un estado y un comportamiento, y sobre clases, que son las plantillas para crear objetos. Esta lección corresponde al tema 2.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Explain the relationship between a class and an object
  • Create classes with instance variables
Description

En esta lección, los estudiantes crearán y usarán constructores. El constructor, o signatura de una clase, permite la creación de un nuevo objeto. Los estudiantes crearán objetos mediante la invocación de constructores con parámetros. Los parámetros son valores que se transfieren a un constructor. Estos parámetros se denominan parámetros reales. Esta lección corresponde al tema 2.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create and use constructors
  • Create objects by calling constructors with parameters
Description

En esta lección, los estudiantes se familiarizarán con la sobrecarga de métodos. Esto es cuando se escriben varios métodos diferentes con el mismo nombre. Mientras la lista de parámetros de cada método sea diferente, ¡el mismo nombre de método se puede usar varias veces! Esta lección corresponde al tema 2.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Explain the purpose of method overloading
  • Create classes that overload methods
  • Explain how null objects do not point to any particular object data
  • Create programs that use other classes as a client to solve a specific problem
Description

En esta lección, los estudiantes profundizarán en la creación e invocación de los métodos de una clase. Los métodos son procedimientos que definen y permiten el control del comportamiento de un objeto. Una vez que se instancia un objeto, las variables de instancia se pueden usar en los diferentes métodos que se crean. Los estudiantes también aprenderán sobre el proceso de abstracción de los métodos, lo que nos permite poder usarlos sin conocer todos los detalles y código subyacentes. Esta lección corresponde al tema 2.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create and call class methods
  • Call non-static void methods without parameters
Description

En esta lección, los estudiantes desarrollarán lo que han aprendido y descubrirán cómo invocar a un método vacío con parámetros. Así como los constructores pueden tener valores de parámetros, los métodos pueden tener parámetros formales que también afectan el estado del objeto. ¡Los métodos también se pueden sobrecargar al igual que los constructores! Esta lección corresponde al tema 2.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Call non-static void methods with parameters
Description

En esta lección, los estudiantes aprenderán cómo llamar un método no-void (no vacía) y cómo arrojar el valor de un método utilizando la palabra clave return (retornar). La palabra clave de retorno devuelve una variable o un valor de regreso al programa ya existente para que pueda ser usado más adelante en el mismo programa. Esta lección corresponde al tema 2.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create and call non-void methods with parameters and return values
Description

En esta lección, los estudiantes aprenderán sobre la inmutabilidad de los Strings como objetos. Una vez que se ha creado un objeto String, este no puede cambiarse o manipularse. La única forma de cambiar un valor de String es volver a asignarle una variable con un valor diferente. Los estudiantes también practicarán la concatenación de Strings utilizando operadores como + y += y usarán secuencias de escape como \" y \n. Esta lección corresponde al tema 2.6 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create String objects for a String class
  • Concatenate Strings using operators and escape sequences
Description

En esta lección, los estudiantes verán a los Strings como una secuencia de caracteres, y utilizarán métodos de String del paquete java.lang. Los estudiantes aprenderán sobre paquetes, bibliotecas y documentación. El siguiente método de String se examinarán en esta lección:

name.length() 
name.substring(2, 6)
name.indexOf(“d”)
name.equals(“Karel”)
name.compareTo(“Karel”)

Esta lección corresponde al tema 2.7 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Call String methods for a String class
  • Explain the importance of APIs, documentation and packages in Java

Enduring Understandings

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

  • EU Var-1 To find specific solutions to generalizable problems, programmers include variables in their code so that the same algorithm runs using different input values. (LO’s 1.E, 1.D)
  • EU Mod-1 Some objects or concepts are so frequently represented that programmers can draw upon existing code that has already been tested, enabling them to write solutions more quickly and with a greater degree of confidence. (LO’s 1.G, 1.F, 1.C)
Description

En esta lección, los estudiantes aprenderán a convertir los tipos primitivos en tipos de objetos utilizando una clase contenedor. Aprenderán cómo Java convierte tipos de forma automática utilizando autoboxing y unboxing. Esta lección corresponde al tema 2.8 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create Integer and Double objects for wrapper classes
  • Call Integer and Double methods for wrapper classes
Description

En esta lección, los estudiantes aprenderán sobre métodos estáticos. Los métodos estáticos son métodos que se pueden ser llamados sin crear un objeto. Más específicamente, los estudiantes descubrirán y practicarán el uso de métodos estáticos en la clase Math de Java. Los siguientes métodos de clase Math serán examinados en esta lección:

Math.abs(x)
Math.pow(base, exponent)
Math.sqrt(x)
Math.random()
Math.round()
Math.cos()
Math.sin()
Math.PI

Esta lección corresponde al tema 2.9 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Call static methods
  • Evaluate expressions that use the Math class methods
Description

En esta lección, los estudiantes aprenderán sobre expresiones booleanas y operadores relacionales. Los operadores relacionales son construcciones en la programación que permiten la comparación entre los valores de dos expresiones. Esta lección corresponde al tema 3.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Evaluate Boolean expressions that use relational operators in program code
Description

En esta lección, los estudiantes aprenderán sobre las estructuras de control y las declaraciones If. Las declaraciones If se usan en programación cuando hay un conjunto de declaraciones que deben ejecutarse solo cuando ciertas condiciones se cumplan. Esta lección está relacionada con la Colocación Avanzada en las Ciencias Computacionales A, tema 3.2.

Objective

Students will be able to:

  • Represent branching logical processes by using flowcharts
  • Use if statements
Description

En esta lección, los estudiantes ampliarán su conocimiento de las estructuras de control y aprenderán sobre las declaraciones If-Else. Esta lección corresponde al tema 3.3 de Programación Avanzada de Ciencias Computacionales..

Objective

Students will be able to:

  • Use if/else statements
Description

En esta lección, los estudiantes llevarán las estructuras de control un paso más allá y aprenderán cómo implementar una declaración con una condición Else-If. Esta lección corresponde al tema 3.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Use an else if statement

Enduring Understandings

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

  • EU Con-1 The way variables and operators are sequenced and combined in an expression determines the computed result. (LO’s 1.E)
  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.A)
Description

En esta lección, los estudiantes determinarán el verdadero-falso de las expresiones booleanas compuestas. También examinarán la evaluación del cortocircuito y las declaraciones anidadas if. Esta lección corresponde al tema 3.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Evaluate compound Boolean expressions in program code
Description

En esta lección, los estudiantes examinarán las leyes de De Morgan y determinarán cuándo las expresiones booleanas compuestas son equivalentes. Usarán tablas de verdadero-falso para mostrar expresiones booleanas equivalentes. Esta lección corresponde al tema 3.6 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Compare and contrast equivalent Boolean expressions
  • Apply De Morgan’s Laws to Boolean expressions
Description

En esta lección, los estudiantes aprenderán las diferentes formas de comparar objetos y cómo esta difiere de la comparación de tipos primitivos. Con los objetos, debido a que la variable apunta a una ubicación, el uso de == no es posible, ya que la dirección de la memoria se está comparando entre objetos, en vez de valores reales. Los estudiantes descubrirán y usarán el método .equals. Esta lección corresponde al tema 3.7 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Compare object references using Boolean expressions in program code
Description

En esta lección, los estudiantes aprenderán cómo y cuándo usar un while loop. El código repetitivo se puede evitar utilizando un while loop. Estos bucles se usan para repetir un conjunto de declaraciones hasta que una condición se cumpla. Esta lección corresponde al tema 4.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent iterative processes using a while loop
  • Execute a return or break statement inside an iteration statement to halt the loop and exit the method or constructor
  • Develop an algorithm
  • Identify if an integer is or is not evenly divisible by another integer
  • Determine a minimum or maximum value
  • Compute a sum, average, or mode
Description

En esta lección. Los estudiantes aprenderán a usar for loops en sus programas. El for loop permite a los estudiantes repetir una parte específica del código un cierto número de veces.

for(int i = 0; i < 4; i++)
{
        // El código se repetirá cuatro veces
}

Esta lección corresponde al tema 4.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent iterative processes using a for loop
Description

En esta lección, los estudiantes aprenderán cómo desarrollar algoritmos usando Strings. Los estudiantes recorrerán Strings usando un comando For loop y el comado print.length() (imprimir longitud).

for(int i = 0; i < string.length(); i++)
{
        String character = string.substring(i, i+1);
}

Esta lección corresponde al tema 4.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Develop an algorithm using Strings
  • Find if one or more substrings has a particular property
  • Determine the number of substrings that meet specific criteria
  • Create a new string with the characters reversed
Description

En esta lección, los estudiantes aprenderán sobre bucles anidados (nested loops). Los bucles anidados son while loops que se colocan dentro de otros bucles para crear programas más complejos. Cuando un bucle está anidado dentro de otro bucle, el bucle interno debe completar todas sus iteraciones antes de que el bucle exterior pueda continuar. Esta lección corresponde al tema 4.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent nested iterative processes

Enduring Understandings

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

  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.C, 2.D, 2.E, 2.F, 2.G)
Description

En esta lección, los estudiantes examinarán el concepto de análisis de pseudocódigo. Esto incluye la exactitud, la eficiencia y la capacidad de ser entendido de un algoritmo. Esta lección corresponde al tema 4.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Compute statement execution counts of iterative statements
  • Compute informal run-time comparison of iterative statements
Description

En esta lección, los estudiantes explorarán y aprenderán la anatomía de las clases. Tomarán una inmersión más profunda en lo que hace el especificador de acceso y cómo se puede usar dentro de los programas para hacer que los datos sean públicos o privados. Los estudiantes aprenderán sobre la encapsulación y la responsabilidad que los programadores tienen de elegir si los datos deben ser accesibles, modificables, ambos o ninguno. Esta lección corresponde al tema 5.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Designate access and visibility constraints to classes, data, constructors, and methods
  • Designate private visibility of instance variables to encapsulate the attributes of an object
Description

En esta lección, los estudiantes ampliarán sus conocimientos sobre constructores. Crearán constructores que tomen los objetos como si fueran un parámetro formal. Esta lección corresponde al tema 5.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Define instance variables for the attributes to be initialized through the constructors of a class
Description

En esta lección, los estudiantes aprenderán cómo documentar sus programas utilizando comentarios. Los comentarios son importantes para la programación porque permiten que otros programadores interpreten y usen fácil y correctamente el código del programa. También se pueden usar como herramienta de depuración. Esta lección corresponde al tema 5.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Describe the functionality and use of program code through comments
Description

En esta lección, los estudiantes examinarán los métodos de accesorios con más detalle. Esta lección corresponde al tema 5.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Define behaviors of an object through non-void methods without parameters written in a class
Description

En esta lección, los estudiantes examinarán los métodos de mutiladores con más detalle. Los métodos de mutadores a menudo son métodos nulos utilizados para cambiar el valor de las variables estáticas y de instancia. Esta lección corresponde al tema 5.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Define behaviors of an object through void methods with or without parameters written in a class
Description

En esta lección, los estudiantes examinarán la forma en la que se escriben las clases con más detalle. Es una buena práctica de programación para evitar alterar objetos dentro de los métodos, a menos que el método requiera alteraciones del objeto. Los métodos de accesor y getter realizan cambios obvios en los objetos, pero la mayoría de los métodos no deben intentar hacer cambios a menos que sea explícitamente necesario. Esta lección corresponde al tema 5.6 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Discuss changes to both primitive and reference formal parameters in methods
Description

En esta lección, los estudiantes analizarán más profundamente las variables y métodos estáticos. Las variables estáticas pertenecen a su clase, y todos los objetos de una clase comparten una sola variable estática. Esta lección corresponde al tema 5.7 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Define behaviors of a class through static methods
  • Define the static variables that belong to the class.

Enduring Understandings

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

  • EU Mod-2 Programmers use code to represent a physical object or nonphysical concept, real or imagined, by defining a class based on the attributes and/or behaviors of the object or concept. (LO’s 2.A, 2.B, 2.C, 2.D, 2.E, 2.F, 2.G)

  • EU Mod-3 When multiple classes contain common attributes and behaviors, programmers create a new class containing the shared attributes and behaviors forming a hierarchy. Modifications made at the highest level of the hierarchy apply to the subclasses. (LO’s 3.A)

Description

En esta lección, los estudiantes aprenderán sobre los rangos y los accesos. La colocación de una variable dentro de un programa afecta el alcance de la variable, es decir, el lugar desde donde puede ser usado y accedido dentro de un programa. Los estudiantes aprenderán cómo evitar los errores de rango y acceso utilizando la descomposición del método. Esta lección corresponde al tema 5.8 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Explain where variables can be used in the program code
Description

En esta lección, los estudiantes aprenderán cómo la palabra clave this puede ser usada en los programas. La palabra clave this hace referencia al objeto actual, cuyos métodos y constructores están siendo llamados. Esta lección corresponde al tema 5.9 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Evaluate object reference expressions that use the keyword this
Description

En esta lección, los estudiantes explorarán varias áreas relacionadas con las implicaciones éticas y sociales de los sistemas informáticos. Esto incluye el código de ética de la computación profesional, la confiabilidad del sistema, los problemas legales, las preocupaciones de propiedad intelectual y el sesgo en la informática. Esta lección corresponde al tema 5.10 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Explain the ethical and social implications of computing systems
Description

En esta lección, los estudiantes aprenderán sobre arrays y su creación. El uso de objetos array permite que múltiples elementos relacionados sean representados utilizando una sola variable. Esta lección corresponde al tema 6.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent collections of related primitive or object reference data using one-dimensional (1D) array objects
Description

En esta lección, los estudiantes aprenderán cómo recorrer arrays. Las declaraciones iterativas se pueden usar para acceder a todos los elementos en un array. A esto se le llama recorrer un array. Esta lección corresponde al tema 6.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Traverse the elements in a 1D array
Description

En esta lección, los estudiantes echarán un vistazo a los bucles optimizados. Un bucle optimizado es un método alternativo para recorrer una array, en lugar de usar while loops o for loops. Esta lección corresponde al tema 6.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Traverse the elements in a 1D array object using an enhanced for loop
Description

En esta lección, los estudiantes aprenderán cómo se utilizan los arrays para desarrollar algoritmos. Examinarás las técnicas comunes utilizadas en el análisis de arrays. Esta lección corresponde al tema 6.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Recognize and identify common algorithms that utilize array traversals

Enduring Understandings

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

  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.I)

  • EU Var-2 To manage large amounts of data or complex relationships in data, programmers write code that groups the data together into a single data structure without creating individual variables for each value. (LO’s 2.A, 2.B, 2.C)

Description

En esta lección, los estudiantes aprenderán sobre ArrayLists y su creación. Las ArrayLists son similares a los arrays, excepto que estos son una lista mutable de referencias de objetos. Un ArrayLists proporciona una forma conveniente de crear arrays ajustables. Esta lección corresponde al tema 7.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent collections of related object reference data using ArrayList objects
Description

En esta lección, los estudiantes aprenderán y utilizarán métodos que permitan alterar el estado de las ArrayLists. Estos métodos son los siguientes:

  • boolean add(E obj)
  • void add(int index, E obj)
  • E get(int index)
  • int size()
  • E set(int index, E obj)
  • E remove(int index)

Esta lección corresponde al tema 7.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Use methods associated with ArrayLists
Description

En esta lección, los estudiantes aprenderán cómo recorrer ArrayLists. Para esto, en lugar de usar .length y corchetes ([]) para acceder a los elementos en una lista, utilizaremos size() y get(). Esta lección corresponde al tema 7.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Traverse ArraysLists using a for or while loop
  • Access elements in an ArrayList using iteration statements
  • Remove elements in an ArrayList
Description

En esta lección, los estudiantes desarrollarán algoritmos usando ArrayLists. Examinarán los algoritmos estándares para eliminar e insertar elementos mientras atraviesa un ArrayList. Esta lección corresponde al tema 7.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Identify standard ArrayLists algorithms such as inserting and deleting elements
  • Modify standard ArrayLists algorithms
  • Develop an ArrayLists algorithm
Description

En esta lección, los estudiantes explorarán y analizarán una búsqueda secuencial. La búsqueda secuencial es un algoritmo que busca arreglos de datos en un orden secuencial, verificando cada valor desde el índice 0 hasta el final del conjunto de datos para ver en qué índice se puede ubicar un elemento específico.Esta lección corresponde al tema 7.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Apply linear search algorithms to search for specific information in array or ArrayList objects
Description

En esta lección, los estudiantes explorarán y analizarán el ordenamiento pro selección y el ordenamiento por inserción. Ordenamiento por Selección intercambia el valor mínimo que queda en un array con el valor del índice actual del array. Ordenamiento por Inserción desplaza la sección ya ordenada de un array para colocar el valor actual del array en el índice correcto. Esta lección corresponde al tema 7.6 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Apply selection sort and insertion sort algorithms to sort the elements of array or ArrayList objects
  • Compute statement execution counts and informal run-time comparison of sorting algorithms

Enduring Understandings

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

  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.J, 2.K, 2.L, 2.M)

  • EU Var-2 To manage large amounts of data or complex relationships in data, programmers write code that groups the data together into a single data structure without creating individual variables for each value. (LO’s 2.D, 2.E)

Description

En esta lección, los estudiantes discutirán los problemas éticos sobre cómo y por qué se recopilan los datos. Analizarán los riesgos para la privacidad personal cuando se trabaja con sistemas informáticos e Internet; y discutirán cómo los programas informáticos pueden tener impactos benéficos y/o dañinos para la seguridad personal. Por último, se considerará y enfatizará la importancia que los programadores tienen respecto a salvaguardar la privacidad personal. Esta lección corresponde al tema 7.7 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Explain the risks to privacy from collecting and storing personal data on computer systems
  • Explain the role that programmers have considering safeguarding personal privacy
  • Explain the beneficial and harmful impacts that computer use and the creation of programs have on personal security
Description

En esta lección, los estudiantes explorarán y usarán Arrays 2D. Un array 2D es una array que almacena arrays. Esta lección corresponde al tema 8.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Represent collections of related primitive or object reference data using two-dimensional (2D) array objects
Description

En esta lección, los estudiantes extenderán su conocimiento sobre arrays 2D al aprender a recorrerlos. Cuando intentamos acceder a todos los elementos en una array 2D, podemos hacerlo de dos maneras diferentes. El Row-major order atraviesa el array 2D accediendo a cada valor en una fila antes de pasar a la siguiente fila, y column-major order atraviesa cada columna moviéndose hacia abajo por cada fila antes de pasar a la siguiente columna. Esta lección corresponde al tema 8.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Traverse 2D arrays using nested for loops
  • Traverse 2D arrays using nested enhanced for loops

Enduring Understandings

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

  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.N)

  • EU Var-2 To manage large amounts of data or complex relationships in data, programmers write code that groups the data together into a single data structure without creating individual variables for each value. (LO’s 2.F, 2.G)

Description

En esta lección, los estudiantes aprenderán sobre superclases y subclases. Una superclase es una clase padre que contiene atributos y comportamientos comunes utilizados por las subclases (hijos). Las subclases pueden aprovechar los atributos y comportamientos existentes de la superclase sin repetirlos en su código. Esta lección corresponde al tema 9.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Create an inheritance relationship from a subclass to the superclass
Description

En esta lección, los estudiantes escribirán constructores para subclases. El constructor de superclase se puede llamar desde la primera línea de un constructor de subclase utilizando la palabra clave Super y estableciendo los parámetros apropiados. Esta lección corresponde al tema 9.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Write constructors for subclasses
Description

En esta lección, los estudiantes aprenderán cómo sobrescribir los métodos en una relación de superclase/subclase. La invalidación de un método ocurre cuando un método público en una subclase tiene la misma signatura de método que un método público en la superclase. Esta lección corresponde al tema 9.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Override a method in a superclass/subclass relationship
Description

En esta lección, los estudiantes usarán la palabra clave super. Esta palabra clave se puede usar para llamar a los constructores y métodos de una superclase incluso si el método ha sido sobrescrito. Esta lección corresponde al tema 9.4 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Use the super keyword to call a superclass’s constructors and methods
Description

En esta lección, los estudiantes crearán referencias utilizando jerarquías de herencia. Un objeto puede asumir diferentes formas dependiendo de su implementación. Java puede llamar al método correcto incluso cuando un objeto está disfrazado como un tipo de referencia más genérico. Esto se conoce como polimorfismo. Esta lección corresponde al tema 9.5 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Define reference variables of a superclass to be assigned to an object of a subclass in the same hierarchy

Enduring Understandings

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

  • EU Mod-3 When multiple classes contain common attributes and behaviors, programmers create a new class containing the shared attributes and behaviors forming a hierarchy. Modifications made at the highest level of the hierarchy apply to the subclasses. (LO’s 3.B, 3.C)
Description

En esta lección, los estudiantes se sumergirán más en el polimorfismo. Al momento de compilación, los métodos que estén dentro o hayan sido heredados por el tipo declarado, determinarán si la llamada de método no-estático es correcta. Al momento de la ejecución, el método en el tipo de objeto real se ejecutará para una llamada de método no-estático. Esta lección corresponde al tema 9.6 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Call methods in an inheritance relationship
Description

En esta lección, los estudiantes invocarán y usarán la superclase Objetos (objects). Esta clase es la superclase de todas las demás clases en Java. Esta lección corresponde al tema 9.7 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Call Object class methods through inheritance
  • Utilize the Object class through inheritance
Description

En esta lección, los estudiantes aprenderán sobre la recursividad y los métodos recursivos. Un método recursivo es un método que se invoca a sí mismo. Los métodos recursivos contienen al menos un caso de base, que detiene la recursión, y al menos una llamada recursiva. Esta lección corresponde al tema 10.1 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Determine the result of executing recursive methods

Enduring Understandings

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

  • EU Con-2 Programmers incorporate iteration and selection into code as a way of providing instructions for the computer to process each of the many possible input values. (LO’s 2.O)
Description

En esta lección, los estudiantes examinarán y aplicarán una búsqueda recursiva, como la búsqueda binaria. El algoritmo de búsqueda binaria comienza en el medio de un array ordenado o una ArrayList, y elimina la mitad del array o la lista en cada iteración hasta que el valor deseado se encuentre o se hayan eliminado todos los elementos. Esta lección corresponde al tema 10.2 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Apply recursive search algorithms to information in String, 1D array, or ArrayList objects
Description

En esta lección, los estudiantes usarán métodos recursivos para clasificar un array llamado Merge Sort (Ordenamiento por Mezcla). Merge Sort es un algoritmo de clasificación recursivo que se puede usar para ordenar elementos en un array o una ArrayList. Esta lección corresponde al tema 10.3 de Programación Avanzada de Ciencias Computacionales.

Objective

Students will be able to:

  • Apply recursive algorithms to sort elements of an array or ArrayList objects