High School Exploring Computer Science

From Computer Science Wiki
Revision as of 13:35, 28 February 2016 by Bmackenty (talk | contribs) (added standards for students to start editing)

Computer science is the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society." --ACM/CSTA Model Curriculum for K-12 Computer Science


Enduring Understandings[edit]

1. You can design and create software to solve problems

2. Computer scientists are a tribe who use specific tools, languages, and techniques to understand and solve problems (source).

3. If you want to know what is true, you must must know the depth of a thing

Major Topics of Study[edit]

Computational Thinking standards[edit]

Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts. Describe a software development process used to solve software problems (e.g., design, coding, testing, verification). Explain how sequence, selection, iteration, and recursion are building blocks of algorithms. Compare techniques for analyzing massive data collections. Describe the relationship between binary and hexadecimal representations. Analyze the representation and trade-offs among various forms of digital information. Describe how various types of data are stored in a computer system. Use modeling and simulation to represent and understand natural phenomena. Discuss the value of abstraction to manage problem complexity. Describe the concept of parallel processing as a strategy to solve large problems. Describe how computation shares features with art and music by translating human intention into an artifact.

Collaboration standards[edit]

Work in a team to design and develop a software artifact. Use collaborative tools to communicate with project team members (e.g., discussion threads, wikis, blogs, version control, etc.). Describe how computing enhances traditional forms and enables new forms of experience, expression, communication, and collaboration Identify how collaboration influences the design and development of software products.

Computing Practice and Programming standards[edit]

Create and organize Web pages through the use of a variety of web programming design tools. Use mobile devices/emulators to design, develop, and implement mobile computing applications. Use various debugging and testing methods to ensure program correctness (e.g., test cases, unit testing, white box, black box, integration testing) Apply analysis, design, and implementation techniques to solve problems (e.g., use one or more software lifecycle models). Use Application Program Interfaces (APIs) and libraries to facilitate programming solutions. Select appropriate file formats for various types and uses of data. Describe a variety of programming languages available to solve problems and develop systems. Explain the program execution process. Explain the principles of security by examining encryption, cryptography, and authentication techniques. Explore a variety of careers to which computing is central. Describe techniques for locating and collecting small and large-scale data sets. Describe how mathematical and statistical functions, sets, and logic are used in computation.

Computers and Communications Devices standards[edit]

Describe the unique features of computers embedded in mobile devices and vehicles (e.g., cell phones, automobiles, airplanes). Develop criteria for purchasing or upgrading computer system hardware. Describe the principal components of computer organization (e.g., input, output, processing, and storage). Compare various forms of input and output. Explain the multiple levels of hardware and software that support program execution (e.g., compilers, interpreters, operating systems, networks). Apply strategies for identifying and solving routine hardware and software problems that occur in everyday life. Compare and contrast client-server and peer-to-peer network strategies. Explain the basic components of computer networks (e.g., servers, file protection, routing, spoolers and queues, shared resources, and fault-tolerance). Describe how the Internet facilitates global communication. Describe the major applications of artificial intelligence and robotics.

Community, Global, and Ethical Impacts standards[edit]

Compare appropriate and inappropriate social networking behaviors. Discuss the impact of computing technology on business and commerce (e.g., automated tracking of goods, automated financial transactions, e-commerce, cloud computing). Describe the role that adaptive technology can play in the lives of people with special needs. Compare the positive and negative impacts of technology on culture (e.g., social networking, delivery of news and other public media, and intercultural communication). Describe strategies for determining the reliability of information found on the Internet. Distinguish between information access and information distribution rights. Describe how different kinds of software licenses can be used to share and protect intellectual property. Discuss the social and economic implications associated with hacking and software piracy. Describe different ways in which software is created and shared and their benefits and drawbacks (commercial software, public domain software, open source development). Describe security and privacy issues that relate to computer networks. Explain the impact of the digital divide on access to critical information.

import random
import sys
board = [1,2,3,4,5,6,7,8,9]
 
x_squares = []
o_squares = []
 
def update_board(grid_place):
        if grid_place in x_squares:
            token = "X"
        elif grid_place in o_squares:
            token = "O"
        else:
            token = str(grid_place)
        return token