Skip Navigation

Utah Core  •  Curriculum Search  •  All CTE/Information Technology Education Lesson Plans  •  USOE CTE/Information Technology Education Home Page


CTE/Information Technology Education Curriculum
Computer Programming I
Course Preface Course Preface
Printable Version Printable Version (pdf)


arrow icon Course Introduction


Core Standards of the Course

Standard 1
Students will be familiar with and use a programming environment.

Objective 1
Demonstrate knowledge of external and internal computer hardware.

  1. Describe the functions of basic computer hardware devices (monitor, printer, CD-ROM drive, floppy drive, keyboard, mouse, adapters, other devices).
  2. Describe the functions of the internal components of computers (CPU, RAM, ROM, Motherboard, graphics card, hard drive).
  3. Utilize the binary numbering system (translate from binary to decimal and vice-versa).

Objective 2
Demonstrate knowledge of software concepts.

  1. Define the distinction between computer software and hardware.
  2. Identify software categories such as Application Software, Web Based Software, OS, Utility Software (anti virus, system tools).
  3. Describe the difference between an interpreted language vs a compiled language
  4. Describe the difference between a low level and high level language

Objective 3
Develop the ability to use a current operating system.

  1. Demonstrate how to open and save files.
  2. Demonstrate how to move, rename, copy, compress and delete files.
  3. Demonstrate how to display and print files.
  4. Create and use appropriate directory and path structures
  5. Demonstrate how to execute a program.

Objective 4
Demonstrate the ability to use the editor to write code.

  1. Demonstrate the process of selecting a block of text.
  2. Demonstrate how to move, copy, and delete blocks of text.

Objective 5
Demonstrate the ability to compile, debug and execute programs.

  1. Demonstrate how to use the editor to compile and run programs.
  2. Understand the difference between syntax, run-time, and login errors.
  3. Demonstrate how to debug programs.
  4. Optional — Use a debugger to set break-points, and step through code to track down errors at runtime

Standard 2
Students will employ accepted programming methodology.

Objective 1
Demonstrate the ability to use good programming style.

  1. Demonstrate how to use white space properly.
  2. Employ proper naming conventions (such as Camel Case and Pascal Case).
  3. Construct programs with meaningful identifiers.

Objective 2
Follow the major steps of a Software Development Life Cycle (SDLC).

  1. Prepare specifications and requirements for computer programs.
  2. Design solutions using algorithms such as flow charts, pseudo code, and basic UML.
  3. Implement the code for a program.
  4. Test programs for effectiveness and completeness.
  5. Provide documentation for a program (such as internal and external documentation).

Objective 3
Identify the syntactical components of a program

  1. Identify keywords, identifiers, operators, operands, and literals
  2. Identify the entry-point of a program
  3. Identify statements and expressions in a program
  4. Identify subroutines in a program

Standard 3
Students will properly use language-fundamental commands and operations.

Objective 1
Demonstrate the ability to use basic elements of a specific language.

  1. Write programs using a language-specific template.
  2. Declare, initialize, and assign values to constants and variables.
  3. Output text with formatting.
  4. Demonstrate the ability to use input/output commands.
  5. Output values stored in identifiers.

Objective 2
Employ basic arithmetic expressions in programs.

  1. Use basic arithmetic operators (addition, subtraction, modulus, multiplication, division)
  2. Understand order of operation of expressions
  3. Write expressions that mix floating-point and integer expressions.
  4. Write expressions to accumulate values.

Objective 3
Demonstrate the ability to use data types in programs.

  1. Declare and use primitive data types (integer, floating point, Boolean)
  2. Declare and use reference (non-primitive) types
  3. Declare and use constants.
  4. Optional — Declare and use enumerators as a list of constants

Objective 4
Demonstrate the ability to use strings in programs.

  1. Declare string identifier.
  2. Input string identifiers.
  3. Output string identifiers.

Standard 4
Students will properly employ control structures.

Objective 1
Demonstrate the ability to use relational and logical operators in programs.

  1. Compare values using relational operators.
  2. Form complex expressions using logical operators.

Objective 2
Demonstrate the ability to use decisions in programs.

  1. Employ simple IF structures.
  2. Use IF-ELSE structures.
  3. Write programs with nested IF-ELSE structures.
  4. Make multiple-way selections (switch, case).

Objective 3
Demonstrate the ability to use loops in programs.

  1. Use initial, terminal, and incremental values in loops.
  2. Construct both pre-test and post-test loops.
  3. Demonstrate how to use counted loops.
  4. Describe the use of flagged (sentinel-controlled) loops.
  5. Utilize nested loops.
  6. Explain how to avoid infinite loops.
  7. Accumulate running totals using loops.

Objective 4
Demonstrate the ability to use modularity in programs.

  1. Demonstrate how to use language-defined subroutines.
  2. Develop and utilize subroutines.
  3. Utilize value and reference parameters.
  4. Understand the scope of identifiers in subroutines.
  5. Return values from subroutines.

Standard 5
Students will demonstrate knowledge of current ethical issues dealing with computers and information in society.

Objective 1
Understand ethical responsibility of software developers

  1. Explain the ethical reasons for creating reliable and robust software.
  2. Explain the impact software can have on society.
  3. Show how security concerns can be addressed in a program.

Objective 2
Demonstrate knowledge of the social and ethical consequences of computers.

  1. Describe how computer-controlled automation affects a workplace and society.
  2. Explain the ramifications of society's dependence on computers.
  3. Identify advantages and disadvantages of changing workplace environments.

Objective 3
Demonstrate knowledge of the right to privacy.

  1. Explain how computers can compromise privacy.
  2. Exhibit knowledge of privacy laws.
  3. Describe responsibilities of people who control computer information.

Objective 4
Demonstrate knowledge of computer, information and software security.

  1. Exhibit knowledge of copyright laws.
  2. Explain how computers could erroneously be used to compromise copyright laws.
  3. Give examples of ways to protect information on computer systems.
  4. Identify ways to protect against computer viruses.

Standard 6
Students will develop an awareness of career opportunities in the Computer Programming/Software Engineering industry and of its history.

Objective 1
Identify personal interests and abilities related to Computer Programming/Software Engineering careers

  1. Identify personal creative talents
  2. Identify technical/programming talents
  3. Identify organizational and leadership skills
  4. Explore aptitude for innovation
  5. Determine aptitude for working as a member of a Computer Programming/Software Engineering team

Objective 2
Identify Computer Science career fields

  1. Understand the work of a Software Engineer
  2. Understand what a Systems Analyst does
  3. Understand the kind of work performed by a Applications Programmer (Gaming, Multimedia Etc.)

Objective 3
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, Sr. Developer, Jr. Developer, and Client/Subject Matter Expert
  2. Describe work performed by each member of the Computer Programming/Software Engineering team
  3. Investigate trends associated with Computer Programming/Software Engineering careers
  4. Develop a realistic Student Education Occupation Plan (SEOP) to help guide further educational pursuits

Objective 4
Identify factors for employ ability and advancement in Computer Programming/Software Engineering careers

  1. Survey existing Computer Programming/Software Engineering businesses to determine what training is required
  2. Survey universities and colleges to determine higher education options
  3. Develop employability competencies/characteristics: responsibility, dependability, respect, and cooperation
  4. Achieve high standards of personal performance
  5. Develop a positive work ethic
  6. Compile a portfolio of the individual and group programs developed during the course

Objective 5
Discuss relevant history of software development

  1. Discuss relevant history of computer technology
  2. Identify key points in the history of the Computer Programming/Software Engineering industry

Standard 7
Students will employ arrays.

Objective 1
Demonstrate the ability to use arrays in programs.

  1. Declare arrays all applicable types.
  2. Initialize arrays.
  3. Input data into arrays.
  4. Output data from arrays.
  5. Perform operations on arrays.
  6. Perform sequential searches on arrays.

Objective 2
Demonstrate the ability to use dynamic arrays (i.e. vectors, arraylists, or generic lists)

  1. Declare a dynamic array
  2. Add and remove items from the array
  3. Output data from arrays.
  4. Perform operations on arrays.
  5. Iterate through the loop (i.e. foreach loop)

Objective 3
Demonstrate the ability to use strings in programs.

  1. Compare string identifiers.
  2. Find the length of a string.
  3. Copy part or all of string identifiers into other strings.
  4. Concatenate string identifiers.
  5. Locate and delete sub-string positions.
  6. Insert strings into other strings.

Standard 8
Students will properly employ object-oriented programming techniques.

Objective 1
Demonstrate the ability to use classes.

  1. Instantiate objects.
  2. Use object data members.
  3. Use object member functions (methods).

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

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

Objective 3
Demonstrate proper design principles with classes

  1. Create classes that are well encapsulated (data members private).
  2. Properly use modifiers and accessors (getters and setters).
  3. Understand private and public modifiers

Standard 9
Students will properly use sequential files.

Objective 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.

Standard 10
Students will apply appropriate programming skill as an effective member of a team.

Objective 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.

Objective 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.

© Utah Education Network in partnership with the Utah State Board of Education and Higher Ed Utah.
UEN does not endorse and is not responsible for content on external websites linked to from this page.
(800) 866-5852     |     KUEN CPB Compliance    |     Captioning