High School Exploring Computer Science: Difference between revisions

From Computer Science Wiki
(added standards for students to start editing)
No edit summary
Line 14: Line 14:
=Computational Thinking standards=
=Computational Thinking standards=


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


=Collaboration standards=
=Collaboration standards=


[[Work in a team to design and develop a software artifact.]]
*[[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.).]]
*[[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]]
*[[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.]]
*[[Identify how collaboration influences the design and development of software products.]]


=Computing Practice and Programming standards=
=Computing Practice and Programming standards=


[[Create and organize Web pages through the use of a variety of web programming design tools.]]
*[[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 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)]]
*[[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).]]
*[[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.]]
*[[Use Application Program Interfaces (APIs) and libraries to facilitate programming solutions.]]
[[Select appropriate file formats for various types and uses of data.]]
*[[Select appropriate file formats for various types and uses of data.]]
[[Describe a variety of programming languages available to solve problems and develop systems.]]
*[[Describe a variety of programming languages available to solve problems and develop systems.]]
[[Explain the program execution process. ]]
*[[Explain the program execution process. ]]
[[Explain the principles of security by examining encryption, cryptography, and authentication techniques.]]
*[[Explain the principles of security by examining encryption, cryptography, and authentication techniques.]]
[[Explore a variety of careers to which computing is central.]]
*[[Explore a variety of careers to which computing is central.]]
[[Describe techniques for locating and collecting small and large-scale data sets. ]]
*[[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.]]
*[[Describe how mathematical and statistical functions, sets, and logic are used in computation.]]


=Computers and Communications Devices standards=
=Computers and Communications Devices standards=


[[Describe the unique features of computers embedded in mobile devices and vehicles (e.g., cell phones, automobiles, airplanes).]]
*[[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.]]
*[[Develop criteria for purchasing or upgrading computer system hardware.]]
[[Describe the principal components of computer organization (e.g., input, output, processing, and storage).]]
*[[Describe the principal components of computer organization (e.g., input, output, processing, and storage).]]
[[Compare various forms of input and output. ]]
*[[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).]]
*[[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.]]
*[[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.]]
*[[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).]]
*[[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 how the Internet facilitates global communication.]]
[[Describe the major applications of artificial intelligence and robotics.]]
*[[Describe the major applications of artificial intelligence and robotics.]]


=Community, Global, and Ethical Impacts standards=
=Community, Global, and Ethical Impacts standards=


[[Compare appropriate and inappropriate social networking behaviors.]]
*[[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).]]
*[[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.]]
*[[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).]]
*[[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.]]
*[[Describe strategies for determining the reliability of information found on the Internet.]]
[[Distinguish between information access and information distribution rights.]]
*[[Distinguish between information access and information distribution rights.]]
[[Describe how different kinds of software licenses can be used to share and protect intellectual property.]]
*[[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.]]
*[[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 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.]]
*[[Describe security and privacy issues that relate to computer networks.]]
[[Explain the impact of the digital divide on access to critical information.]]
*[[Explain the impact of the digital divide on access to critical information.]]


<syntaxhighlight lang="python" line="1" >
<syntaxhighlight lang="python" line="1" >

Revision as of 13:36, 28 February 2016

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]

Collaboration standards[edit]

Computing Practice and Programming standards[edit]

Computers and Communications Devices standards[edit]

Community, Global, and Ethical Impacts standards[edit]

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