• EU 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages.
  • EU 4.2 Algorithms can solve many, but not all, computational problems.

Start by reading through:

The above chapter readings include specific knowledge for EK's marked in bold. Work to include unmarked learning objectives in the CS Field Guide is currently in progress.

  • EK 4.1.1A Sequencing, selection, and iteration are building blocks of algorithms.
  • EK 4.1.1B Sequencing is the application of each step of an algorithm in the order in which the statements are given.
  • EK 4.1.1C Selection uses a Boolean condition to determine which of two parts of an algorithm is used.
  • EK 4.1.1D Iteration is the repetition of part of an algorithm until a condition is met or for a specified number of times.
  • EK 4.1.1E Algorithms can be combined to make new algorithms.
  • EK 4.1.1F Using existing correct algorithms as building blocks for constructing a new algorithm helps ensure the new algorithm is correct.
  • EK 4.1.1G Knowledge of standard algorithms can help in constructing new algorithms.
  • EK 4.1.1H Different algorithms can be developed to solve the same problem.
  • EK 4.1.1I Developing a new algorithm to solve a problem can yield insight into the problem.
  • EK 4.1.2A Languages for algorithms include natural language, pseudocode, and visual and textual programming languages.
  • EK 4.1.2B Natural language and pseudocode describe algorithms so that humans can understand them.
  • K 4.1.2C Algorithms described in programming languages can be executed on a computer.
  • EK 4.1.2D Different languages are better suited for expressing different algorithms.
  • EK 4.1.2E Some programming languages are designed for specific domains and are better for expressing algorithms in those domains.
  • EK 4.2.1A Many problems can be solved in a reasonable time.
  • EK 4.2.1B Reasonable time means that the number of steps the algorithm takes is less than or equal to a polynomial function (constant, linear, square, cube, etc.) of the size of the input.

  • EK 4.2.1C Some problems cannot be solved in a reasonable time, even for small input sizes.

  • EK 4.2.1D Some problems can be solved but not in a reasonable time. In these cases, heuristic approaches may be helpful to find solutions in reasonable time.
  • EK 4.2.2A A heuristic is a technique that may allow us to find an approximate solution when typical methods fail to find an exact solution.
  • EK 4.2.2B Heuristics may be helpful for finding an approximate solution more quickly when exact methods are too slow.
  • EK 4.2.4A Determining an algorithm’s efficiency is done by reasoning formally or mathematically about the algorithm.
  • EK 4.2.4B Empirical analysis of an algorithm is done by implementing the algorithm and running it on different inputs.
  • EK 4.2.4C The correctness of an algorithm is determined by reasoning formally or mathematically about the algorithm, not by testing an implementation of the algorithm.

  • EK 4.2.4D Different correct algorithms for the same problem can have different efficiencies.

  • EK 4.2.4E Sometimes, more efficient algorithms are more complex.
  • EK 4.2.4F Finding an efficient algorithm for a problem can help solve larger instances of the problem.
  • EK 4.2.4G Efficiency includes both execution time and memory usage.

  • EK 4.2.4H Linear search can be used when searching for an item in any list; binary search can be used only when the list is sorted.