Go To Curriculum Resources

Computer Programming I

UEN | Curriculum Search | All CTE/Information Technology Education Lesson Plans |
USOE CTE/Information Technology Education Home Page

Credit: 1.00
Course Preface
Core Code: 35-02-00-00-030
Printable Version: Computer Programming I (pdf)


Course Description
A beginning through intermediate course in computer programming/software engineering and applications. The course introduces students to the fundamentals of computer programming, simple control and data structures, basic operating system commands, sequential files, arrays, classes, recursive processes, and the use of text files. Students will learn to design, code, and test their own programs. It is recommended that teachers use the Scheme system to introduce programming concepts and problem solving skills to beginning programming students, followed by an introduction to C++, Visual Basic or Java. Prerequisite: Completion of, or concurrent enrollment in Algebra I, Keyboarding Proficiency and Computer Technology (Computer Literary)


Core Standards of the Course

Standard 110201-01
Students will be familiar with and use a programming environment.

Objective 110201-0101
Demonstrate knowledge of external and internal computer hardware.
  • Describe the functions of basic computer hardware devices (monitor, system board, printer, CD-ROM drive, hard drive, floppy drive, keyboard, mouse, adapters, ports, other devices).
  • Describe the functions of the internal components of computers (CPU, RAM, ROM, registers, ALL).
  • Translate to and from binary code (Computer number systems).

Objective 110201-0102
Demonstrate knowledge of software concepts.
  • Define computer software.
  • Explain the process of software installation.

Objective 110201-0103
Develop the ability to use a current operating system.
  • Demonstrate how to load, save and back up files.
  • Demonstrate how to rename and delete files.
  • Demonstrate how to move, copy and compress files.
  • Demonstrate how to display and print files.
  • Demonstrate the ability to manage files on a PC and network.
    • Create Folders
    • Create and use appropriate directory and path structures
    • Copy files between folders
    • Understand the organization of files on a hard drive and a network
  • Demonstrate how to execute a program.

Objective 110201-0104
Demonstrate the ability to use the editor to enter programs.
  • Demonstrate how to enter text and commands.
  • Illustrate the process of selecting a block of text.
  • Demonstrate how to move blocks of text.
  • Demonstrate how to copy blocks of text.
  • Explain how to delete blocks of text.

Objective 110201-0105
Demonstrate the ability to compile, debug and execute programs.
  • Demonstrate how to use the editor to compile and run programs.
  • Understand the difference between syntax, run-time, and login errors.
  • Demonstrate how to debug programs.

Standard 110201-02
Students will employ accepted programming methodology.

Objective 110201-0201
Demonstrate the ability to use good programming style.
  • Demonstrate how to use white space properly.
  • Employ the use of case-sensitive commands for clarity.
  • Construct programs with meaningful identifiers.

Objective 110201-0202
Employ the proper steps to programming in order.
  • Prepare specifications for computer programs.
  • Design solutions using computer programs.
  • Develop the code for a program.
  • Test programs for effectiveness and completeness.
  • Provide full documentation for a program.

Objective 110201-0203
Employ proper program design process.
  • Use step-wise refinement (top-down design) in programming.
  • Employ program modularity in writing programs.
  • Produce logical algorithms to solve problems with a computer program.

Objective 110201-0204
Demonstrate the ability to program for automatic error checking (robustness).
  • Explain how to protect program execution from incorrect input.
  • Describe how to protect program execution from run-time errors.
  • Employ verification to protect program results from logic errors.

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

Objective 110201-0301
Demonstrate the ability to use basic elements of a specific language.
  • Write programs using a language-specific template.
  • Declare and assign values to constants and variables in programs.
  • Employ arithmetic expression in programs.
  • Output text with formatting.
  • Demonstrate how to pause programs in order to view the output.
  • Demonstrate the ability to use input/output commands in programs.
  • Input values into identifiers.
  • Output values stored in identifiers.

Standard 110201-04
Students will properly employ control structures.

Objective 110201-0401
Demonstrate the ability to use relational and logical operators in programs.
  • Compare values using relational operators.
  • Form complex expressions using logical operators.
  • Demonstrate how to use operator overloading (C++ and Java).

Objective 110201-0402
Demonstrate the ability to use decisions in programs.
  • Employ simple IF structures.
  • Use IF-ELSE structures.
  • Write programs with nested IF-ELSE structures.
  • Make multiple-way selections (switch, case).

Objective 110201-0403
Demonstrate the ability to use loops in programs.
  • Use initial, terminal, and incremental values in loops.
  • Construct both pre-test and post-test loops.
  • Demonstrate how to use counted loops.
  • Describe the use of flagged (sentinel-controlled) loops.
  • Utilize nested loops.
  • Explain how to avoid infinite loops.
  • Accumulate running totals using loops.

Objective 110201-0404
Demonstrate the ability to use sub-programs in programs.
  • Demonstrate how to use language-predefined sub-programs.
  • Call sub-programs.
  • Develop sub-programs.
  • Send to and retrieve data from sub-programs.
  • Utilize value, constant, and reference parameters.
  • Understand the scope of identifiers in sub-programs.

Standard 110201-05
Students will employ proper static data structures.

Objective 110201-0501
Demonstrate the ability to use simple data types in programs.
  • Declare and use integer identifiers.
  • Declare and use character identifiers.
  • Declare and use floating point (real) identifiers.
  • Declare and use Boolean identifiers.
  • Declare and use constants.

Objective 110201-0502
Demonstrate the ability to use static arrays in programs.
  • Declare arrays all applicable types.
  • Initialize arrays.
  • Input data into arrays.
  • Output data from arrays.
  • Perform operations on arrays.
  • Perform sequential searches on arrays.
  • Perform a quadratic sort on an array.
  • Utilize multidimensional arrays.

Objective 110201-0503
Demonstrate the ability to use strings in programs.
  • Declare string identifier.
  • Input string identifiers.
  • Output string identifiers.
  • Compare string identifiers.
  • Find the length of a string.
  • Copy part or all of string identifiers into other strings.
  • Concatenate string identifiers.
  • Locate and delete sub-string positions.
  • Insert strings into other strings.

Standard 110201-06
Students will properly employ object-oriented programming techniques.

Objective 110201-0601
Demonstrate the ability to use classes.
  • Use objects.
  • Use object data members.
  • Use object member functions (methods).

Objective 110201-0602
Demonstrate the ability to create and use user-defined classes.
  • Create and use user-defined data members.
  • Create and use user-defined methods.

Standard 110201-07
Students will properly use sequential files.

Objective 110201-0701
Demonstrate the ability to use sequential files in programs.
  • Create and initialize sequential files.
  • Store data to sequential files.
  • Retrieve data from sequential files.
  • Update sequential files.

Standard 110201-08
Students will apply appropriate programming skill as an effective member of a team.

Objective 110201-0801
Demonstrate the ability to apply knowledge to a programming project.
  • Formalize specifications.
  • Choose proper input parameters.
  • Choose appropriate data structures and processing.
  • Design appropriate output.
  • Use appropriate test data.
  • Write good documentation.

Objective 110201-0802
Demonstrate the ability to use teamwork and collaboration in a programming project.
  • Divide a project among programmers.
  • Present work to a group.
  • Coordinate work with others in the group.
  • Complete assigned work according to predetermined deadlines.
  • Participate in a peer performance evaluation.
  • Demonstrate professionalism in team relationships, communication, timeliness, and attitude.

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

Objective 110201-0901
Demonstrate knowledge of programmer ethics.
  • Show knowledge of the importance of correct programming.
  • Check for program correctness using verification.
  • Know proper and improper standards in programming.

Objective 110201-0902
Demonstrate knowledge of the social and ethical consequences of computers.
  • Describe how computer-controlled automation affects workers and management.
  • Explain the ramifications of society's dependance on computers.
  • Identify advantages and disadvantages of changing workplace environments.

Objective 110201-0903
Demonstrate knowledge of the right to privacy.
  • Explain how computers can compromise privacy.
  • Exhibit knowledge of privacy laws.
  • Describe responsibilities of people who control computer information.

Objective 110201-0904
Demonstrate knowledge of computer, information and software security.
  • Exhibit knowledge of copyright laws.
  • Explain how computers can be used to compromise copyright laws.
  • Give examples of ways to protect information on computer systems.
  • Identify ways to protect against computer viruses.

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

Objective 110201-1001
Develop career awareness related to working in the Computer Programming/Software Engineering industry.
  • Identify personal interests and abilities related to Computer Programming/Software Engineering careers
    • Identify personal creative talents
    • Identify technical/programming talents
    • Identify organizational and leadership skills
    • Explore aptitude for innovation
    • Determine aptitude for working as a member of a Computer Programming/Software Engineering team
  • Identify Computer Science career fields Software Engineer
    • Software Engineer
    • Systems Analyst
    • Applications Programmer (Gaming, Multimedia Etc.)
  • Investigate career opportunities, trends, and requirements related to Computer Programming/Software Engineering careers Identify the members of a Computer Programming/Software Engineering team: Team Leader, Analyst, Sr. Developer, Jr. Developer, and Client/Subject Matter Expert
    • Identify the members of a Computer Programming/Software Engineering team: Team Leader, Analyst, Sr. Developer, Jr. Developer, and Client/Subject Matter Expert
    • Describe work performed by each member of the Computer Programming/Software Engineering team
    • Investigate trends associated with Computer Programming/Software Engineering careers
    • Develop a realistic Student Education Occupation Plan (SEOP) to help guide further educational pursuits
  • Identify factors for employability and advancement in Computer Programming/Software Engineering careers Survey existing Computer Programming/Software Engineering businesses to determine what training is required
    • Survey existing Computer Programming/Software Engineering businesses to determine what training is required
    • Survey universities and colleges to determine higher education options
    • Develop employability competencies/characteristics: responsibility, dependability, respect, and cooperation
    • Achieve high standards of personal performance
    • Develop a positive work ethic
    • Compile a portfolio of the individual and group programs developed during the course
  • Discuss relevant history of computer technology and the Computer Programming/Software Engineering industry.

   
UEN logo

http://www.uen.org - in partnership with Utah State Office of Education (USOE) and Utah System of Higher Education (USHE).  Send questions or comments to USOE Specialist - Carl Lyman and see the CTE/Information Technology Education Home Page. For general questions about Utah's Core Curriculum contact the Director - MARY SHUMWAY   email:   mary.shumway@schools.utah.gov


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 Office 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 Office of Education, 250 East 500 South, PO Box 144200, Salt Lake City, Utah 84114-4200.