Computer+Programming+I

=Standard Prior to 2006= =New revised standards 1A & 1B= =__Computer Programming I – Full Year__=

**Standard 110201-01**
Students will be familiar with and use a programming environment. 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, ALU). · Translate to and from binary code (Computer number systems).
 * Objective 110201-01__01__**

Demonstrate knowledge of software concepts. · Define computer software. · Explain the process of software installation.
 * Objective 110201-01__02__**

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. o Create Folders o Create and use appropriate directory and path structures o Copy files between folders o Understand the organization of files on a hard drive and a network · Demonstrate how to execute a program.
 * Objective 110201-01__03__**

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-01__04__**

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.
 * Objective 110201-01__05__**

**Standard 110201-02**
Students will employ accepted programming methodology. 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-02__01__**

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-02__02__**

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-02__03__**

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.
 * Objective 110201-02__04__**

**Standard 110201-03**
Students will properly use language-fundamental commands and operations. 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 the ability to use input/output commands in programs. · Demonstrate how to pause programs in order to view the output. · Input values into identifiers. Output values stored in identifiers.
 * Objective 110201-03__01__**

**Standard 110201-04**
Students will properly employ control structures. 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-04__01__**

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-04__02__**

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-04__03__**

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.
 * Objective 110201-04__04__**

**Standard 110201-05**
Students will employ proper static data structures. 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-05__01__**

Demonstrate the ability to use static arrays in programs. · Declare arrays of 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-05__02__**

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.
 * Objective 110201-05__03__**

**Standard 110201-06**
Students will properly employ object-oriented programming techniques. Demonstrate the ability to use classes. · Use objects. · Use object data members. · Use object member functions (methods).
 * Objective 110201-06__01__**

Demonstrate the ability to create and use user-defined classes. · Create and use user-defined data members. · Create and use user-defined methods.
 * Objective 110201-06__02__**

**Standard 110201-07**
Students will properly use sequential files. 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.
 * Objective 110201-07__01__**

**Standard 110201-08**
Students will apply appropriate programming skill as an effective member of a team. 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-08__01__**

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.
 * Objective 110201-08__02__**

**Standard 110201-09**
Students will demonstrate knowledge of current ethical issues dealing with computers and information in society. 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-09__01__**

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 dependence on computers. · Identify advantages and disadvantages of changing workplace environments.
 * Objective 110201-09__02__**

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-09__03__**

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.
 * Objective 110201-09__04__**

**Standard 110201-10**
Students will develop an awareness of career opportunities in the Computer Programming/Software Engineering industry and of its history. 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 o Identify personal creative talents o Identify technical/programming talents o Identify organizational and leadership skills o Explore aptitude for innovation o Determine aptitude for working as a member of a Computer Programming/Software Engineering team · Identify Computer Science career fields Software Engineer o Software Engineer o Systems Analyst o 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 o Identify the members of a Computer Programming/Software Engineering team: Team Leader, Analyst, Sr. Developer, Jr. Developer, and Client/Subject Matter Expert o Describe work performed by each member of the Computer Programming/Software Engineering team o Investigate trends associated with Computer Programming/Software Engineering careers o 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 o Survey existing Computer Programming/Software Engineering businesses to determine what training is required o Survey universities and colleges to determine higher education options o Develop employability competencies/characteristics: responsibility, dependability, respect, and cooperation o Achieve high standards of personal performance o Develop a positive work ethic o 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.
 * Objective 110201-10__01__**