# West Virginia Computer Science and Mathematics Standards Framework

44 Standards in this Framework

Standard Description
CS.M.1 Analyze the various mathematical bases (e.g., binary, decimal, hexadecimal) and convert between them.
CS.M.2 Describe the relationship between binary and hexadecimal representations.
CS.M.3 Convert information between various encoding formats (e.g., ASCII, Unicode, hexadecimal, binary).
CS.M.4 Compare techniques (e.g., sorting, statistics, searching) for analyzing massive data collections.
CS.M.5 Describe how mathematical and statistical functions, sets, and logic are used in computation.
CS.M.6 Utilize predefined mathematical functions and parameters to divide a complex problem into simpler parts, including parallel processing.
CS.M.7 Interpret truth tables from basic statements using Boolean operators (AND, OR, XOR, and NOT).
CS.M.8 Explain ways in which sequence, selection, iteration, and recursion are building blocks of algorithms.
CS.M.9 Create systems of equations based on real-world situations.
CS.M.10 Analyze decisions and strategies using probability and statistical concepts.
CS.M.11 Utilize modeling and simulation techniques to represent and understand natural phenomena.
CS.M.12 Examine classical algorithms (e.g., searching, sorting, and shortest path).
CS.M.13 Manipulate formulas and equations and apply them to algorithm development.
CS.M.14 Apply algorithm analysis and design techniques to solve problems.
CS.M.15 Write algorithms to solve mathematical problems using formulas, equations, and functions.
CS.M.16 Implement conditional statements that include if/then, if/then/else, case statements, and Boolean logic, in the design of algorithms.
CS.M.17 Represent algorithms using flowcharts and pseudocode.
CS.M.18 Combine standard function types using arithmetic operations.
CS.M.19 Analyze algorithms for correctness, clarity, and efficiency.
CS.M.20 Compare and contrast computer programming languages and paradigms (e.g., compiled and interpreted languages, procedural and object-oriented paradigms).
CS.M.21 Diagram the program execution process.
CS.M.22 Determine the output of a given sample program without the use of a computer.
CS.M.23 Implement computing applications using the following software development tools and techniques: -branching (if, if-else), -declare, define, and reference variables, -lists/arrays, -looping (for, while, do/while), -recursion, -sequencing
CS.M.24 Use various debugging and testing methods to ensure program correctness.
CS.M.25 Cite evidence to support or refute the correctness of software solutions.
CS.M.26 Recognize that computers are devices that execute programs.
CS.M.27 Identify a variety of electronic devices (e.g., cell phones, desktops, laptops, vehicles, programmable thermostats, and programmable kitchen appliances) that contain computational processors.
CS.M.28 Describe unique features of computers embedded in mobile devices and vehicles.
CS.M.29 Investigate the history of computers, identifying contributors and major milestones (e.g., Alan Turing, Charles Babbage, Ada Lovelace, Grace Hopper, analytical machine, ENIAC, IBM PC).
CS.M.30 Demonstrate an understanding of the relationship between hardware and software.