Skip Navigation

Utah Core  •  Curriculum Search  •  All CTE/Computer Science & Information Technology Lesson Plans  •  USBE CTE/Computer Science & Information Technology website


CTE/Computer Science & Information Technology Curriculum Computer Programming 2
Printable Version Printable Version (pdf)


arrow icon Course Introduction


Core Standards of the Course

Strand 1
Students will demonstrate static (array), dynamic (vector, Arraylist, etc.) list structures, and strings.

Standard 1
Demonstrate the ability to use static arrays/lists in programs.

  1. Declare and initialize arrays/lists of all applicable types
  2. Perform data input to and output from arrays/lists
  3. Perform operations on arrays/lists including sort arrays
  4. Iterate through the structure (i.e., for-each, enhanced for, or iterators)

Standard 2
Demonstrate the ability to use dynamic arrays/lists (i.e. vectors, Arraylist, or generic lists).

  1. Declare and initialize a dynamic array/list
  2. Add and remove items from the array/list
  3. Output data from arrays/lists
  4. Perform operations on arrays/lists
  5. Iterate through the structure (i.e. for-each, enhanced for, or iterators)
  6. Use a loop to iterate through the structure

Standard 3
Demonstrate the ability to use strings in programs.

  1. Compare string values
  2. Find the length of a string
  3. Copy part or all of string values into other strings
  4. Concatenate string values
  5. Locate substring positions
  6. Insert strings into other strings

Performance Skills
Students demonstrate mastery of static and dynamic arrays, lists, and strings in projects.

Strand 2
Students will properly use sequential files.

Standard 1
Demonstrate the ability to use sequential files in programs.

  1. Create and initialize sequential files
  2. Store data to sequential files
  3. Retrieve data from sequential files
  4. Update sequential files

Performance Skills
Demonstrate sequential file access utilizing reading and writing operations.

Strand 3
Create user defined functions using top-down design and functional decomposition.

Standard 1
Students will understand and properly apply scope.

  1. Understand that variables and functions have scope, which influences where they can be declared and accessed
  2. Declare and access local variables in a program
  3. Declare and access global variables in a program

Standard 2
Students will understand and implement function inputs and outputs.

  1. Understand the correlation between arguments (inputs) and parameters (variables)
  2. Understand that functions may or may not require arguments
  3. Understand that functions may or may not return values
  4. Define function(s):
    • with parameters
    • without parameters
    • with return values
    • without return values
    • default parameters

Standard 3
Students will understand and implement functional decomposition. (Breaking a program down into one or more functions.)

  1. Identify repetitive or redundant code in an application
  2. Understand the role abstraction plays in computer programming
  3. Demonstrate how to abstract multiple steps into a function
  4. Identify the characteristics of a well-defined function
    • Examples: shorter code, efficiency, reduced memory consumption, high reliability, readability,abstraction

Performance Skills
Create several user defined functions with and without inputs and/or return values.

Strand 4
Students will properly demonstrate object-oriented programming techniques.

Standard 1
Demonstrate the ability to use built-in classes.

  1. Instantiate objects
  2. Use object data members (i.e., Java’s arr. length)
  3. Use object member functions (methods)

Standard 2
Demonstrate the ability to create user-defined classes.

  1. Create and use data members (instance variables)
  2. Create a constructor to initialize the data members
  3. Create and use member functions (methods)

Performance Skills
Properly employ object-oriented programming techniques.

Strand 5
Students will properly demonstrate code comprehension and debugging techniques.

Standard 1
Demonstrate the ability to comprehend code outcomes.

  1. Tracing -Cognitively following the passes of a loop, nested function calls, change in value of global andlocal scoped variables, etc
  2. Debugging -Utilizing 3rd party tools (IDE’s) to step through a program and troubleshoot
  3. Testing -Validating the outputs of a program and testing its robustness. (i.e., boundary conditions,invalid inputs, unexpected scenarios, incorrect results, etc.)

Performance Skills
Demonstrate code comprehension and debugging techniques by tracing, debugging, and testing programs.

Strand 6
Students will apply appropriate programming skill as an effective member of a team demonstrating the ability to collaborate with others (

Standard 1
Demonstrate the ability to apply knowledge to a programming project.

  1. Formalize specifications
  2. Choose proper input parameters
  3. Choose appropriate data structures and processing
  4. Design appropriate output
  5. Use appropriate test data
  6. Write good documentation

Standard 2
Demonstrate the ability to use teamwork and collaboration in a programming project.

  1. Divide a project among programmers.
  2. Present work to a group.
  3. Coordinate work with others in the group.
  4. Complete assigned work according to predetermined deadlines
  5. Participate in a peer performance evaluation.
  6. Demonstrate professionalism in team relationships, communication, timeliness, and attitude

Performance Skills
Apply appropriate programming skills as an effective member of a team.

Strand 7
Students will demonstrate knowledge of current ethical issues dealing with computers and information in a global society using 21st Century Skills.

Standard 1
Demonstrate knowledge of the social and ethical consequences of computers.

  1. Explain the ethical reasons for creating reliable and robust software
  2. Explain the impact software can have on society (i.e., privacy, piracy, copyright laws, ease of use, ete.)
  3. Show how security concerns can be addressed in an application (i.e., biometrics, passwords,information hiding, etc.)
  4. Describe how computer-controlled automation affects a workplace and society
  5. Give examples of ways to protect information on computer systems (attacks, viruses, malware, etc.)

Performance Skills
Demonstrate knowledge of current ethical issues dealing with computers and information in society.

Strand 8
Students will be aware of career opportunities in the Computer Programming/Software Engineering industry and of its history.

Standard 1
Investigate career opportunities, trends, and requirements related to computer programming/software engineering careers.

  1. Identify the members of a computer programming/software engineering team: team leader, analyst,senior developer, junior developer, and client/subject matter expert
  2. Describe work performed by each member of the computer programming/software engineering team
  3. Investigate trends and traits associated with computer programming/software engineering careers(creativity, technical, leadership, collaborative, problem solving, design, etc.)
  4. Discuss related career pathways

Performance Skills
Develop awareness of career opportunities in the computer programming/software engineering industry and of its history.

Workplace Skills
Workplace Skills taught:

  • Communication
  • Problem Solving
  • Teamwork
  • Critical Thinking
  • Dependability
  • Accountability
  • Legal requirements / expectations

UEN logo - in partnership with Utah State Board of Education (USBE) and Utah System of Higher Education (USHE).  Send questions or comments to USBE Specialist - Kristina  Yamada and see the CTE/Computer Science & Information Technology website. For general questions about Utah's Core Standards contact the Director - THALEA  LONGHURST.

These materials have been produced by and for the teachers of the State of Utah. Copies of these materials may be freely reproduced for teacher and classroom use. When distributing these materials, credit should be given to Utah State Board of Education. These materials may not be published, in whole or part, or in any other format, without the written permission of the Utah State Board of Education, 250 East 500 South, PO Box 144200, Salt Lake City, Utah 84114-4200.