Algorithms & Programming
An algorithm is a sequence of steps designed to accomplish a specific task. Algorithms are translated into programs, or code, to provide instructions for
computing devices. Algorithms and programming control all computing systems, empowering people to communicate with the world in new ways and
solve compelling problems.
By the end of grade 2 By the end of grade 5 By the end of grade 8 By the end of grade 12
• Individuals develop and
follow directions as part of
daily life.
• A sequence of steps can be
expressed as an algorithm
that a computer can process.
• Real world information can
be stored and manipulated in
programs as data (e.g.,
numbers, words, colors,
images).
• Computers follow precise
sequences of steps that
automate tasks.
• Complex tasks can be
broken down into simpler
instructions, some of which
can be broken down even
further.
• People work together to
develop programs for a
purpose, such as expressing
ideas or addressing
problems.
• The development of a
program involves
identifying a sequence of
events, goals, and expected
outcomes, and addressing
errors (when necessary).
• Different algorithms can
achieve the same result.
• Some algorithms are more
appropriate for a specific use
than others.
• Programming languages
provide variables, which are
used to store and modify
data.
• A variety of control
structures are used to change
the flow of program
execution (e.g., sequences,
events, loops, conditionals).
• Programs can be broken
down into smaller parts to
facilitate their design,
implementation, and review.
Programs can also be
created by incorporating
smaller portions of programs
that already exist.
• Individuals develop
programs using an iterative
process involving design,
implementation, testing, and
review.
• Individuals design
algorithms that are reusable
in many situations.
• Algorithms that are readable
are easier to follow, test, and
debug.
• Programmers create
variables to store data values
of different types and
perform appropriate
operations on their values.
• Control structures are
selected and combined in
programs to solve more
complex problems.
• Programs use procedures to
organize code and hide
implementation
details. Procedures can be
repurposed in new
programs. Defining
parameters for procedures
can generalize behavior and
increase reusability.
• Individuals design and test
solutions to identify
problems taking into
consideration the diverse
needs of the users and the
community.
• Individuals evaluate and
select algorithms based on
performance, reusability,
and ease of implementation.
• Programmers choose data
structures to manage
program complexity based
on functionality, storage,
and performance trade-offs.
• Trade-offs related to
implementation, readability,
and program performance
are considered when
selecting and combining
control structures.
• Complex programs are
designed as systems of
interacting modules, each
with a specific role,
coordinating for a common
overall purpose. Modules
allow for better management
of complex tasks.
• Complex programs are
developed, tested, and
analyzed by teams drawing
on the members’ diverse
strengths using a variety of
resources, libraries, and
tools.
New Jersey Department of Education