High School Exploring Computer Science: Difference between revisions
(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]
- 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