What is Computer Science Computation Example How to





























- Slides: 29
What is Computer Science?
Computation Example: How to find the greatest common divisor of two numbers? Euclid’s solution: 1. Assign M the larger number and N the smaller number. 2. Divide M by N and call the remainder R. 3. If R is not 0, then, 3. 1. Assign M the value of N. 3. 2. Assign N the value of R. 3. 3. Go back to Step 2. 4. Otherwise, the greatest common divisor is the value of N. Observations: • • Euclid gave us a solution we can follow without understanding why it works. The intelligence required to solve the problem is encoded in the solution. Solving for the greatest common divisor is reduced to the process of merely following directions. Such directions can be followed by a machine, a computer. Brookshear. Computer Science: An Overview, Chapter 0. 2
What is a computer? 3
What is Computer Science? The study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society. CSTA K-12 CS Curriculum The study of computers and what they can do — the inherent powers and limitations of abstract computers, the design and characteristics of real computers, and the innumerable applications of computers to solving problems. Computer Science: Reflections from the field. National Academies Press, 2004 The study of information processes both artificial and natural. Peter Denning. Is Computer Science? CACM, April, 2005. 4
What is Computer Science? The study of computers and algorithmic processes The study of computers and what they can do The study of information processes 5
6
7
8
9
10
11
12
13
What is an algorithm? http: //www. youtube. com/watch? v=k 0 xgj. Uh. EG 3 U A set of instructions laid out in a specific order to come up with a solution 14
Studying algorithms Algorithm: a set of steps that defines how a task is performed. 15
Programming Program: a representation of an algorithm that a computer can understand. Programming language: the representation language for expressing the algorithm. Why are there so many languages? Programming: the process of writing a program. Programming is an important part of computer science. But computer science is more than programming. 16
Computational Thinking is… real-world problems computational solutions … the thought processes involved in formulating problems and their solutions so that solutions are represented in a form that can be effectively carried out by an information-processing agent. humans, machines, or both Cuny, Snyder, Wing. Demystifying Computational Thinking for Non-Computer Scientists. 17
Computational Thinking is… A problem solving approach… … solving a problem by explaining the steps needed to arrive at the solution. To explain the steps, you have to: come up with the steps communicate them defend them 18
Explaining the steps come up with the steps involves creativity q involves recognizing similar situations q communicate the steps how can I express them clearly? q involves creating an algorithm* q forms the basis of computer programming q * step-by-step procedure for solving a problem defend the steps are these the right steps? q will these lead to a correct solution? q involves logical reasoning and critical thinking q 19
Computational Thinking is… Abstract thinking Computational thinking means creating and using different levels of abstraction. – to understand problems by creating relevant models of the real world. – to solve problems by stepwise refinement of solution models. 20
Computational Thinking is… Algorithmic thinking Computational thinking is about expressing solutions as algorithms… – finite set of steps to follow to obtain the solution. … and finding the most efficient and effective algorithm to solve a problem. – efficient: fastest, uses the least resource. – effective: closest approximation to the solution. 21
Computational Thinking is… Logical thinking Computational thinking uses logic to formulate and discard solutions. Inductive reasoning – from specific to general principles. – algorithms are generalized from observed patterns in examples. Deductive reasoning – from general to specific principles. – algorithms are verified by confirming or refuting hypothesized behavior. Yadav. Computational Thinking and 21 st Century Problem Solving. http: //cs 4 edu. cs. purdue. edu. 22
Teaching Computational Thinking Coding is the most fun way to practice computational thinking. Lots of resources for all grade levels from Hour of Code: http: //code. org/learn 23
Teaching CS in other disciplines Computational science Scientific visualization Multimedia, Media computation Science Visual/ Performing Arts CS Digital humanities Language Arts Technology Engineering Information technology Modeling, Simulation Computer-aided design Math Automated theorem proving, Numerical analysis 24
A Computational Thinking course? What might a separate course look like? 25
The CS Principles Course Computing for Everyone Computational Thinking Illustrated
Big Ideas Creativity q Computing is a creative activity. Abstraction q Reduces information and detail to focus on relevant concepts. Data q Data and information facilitate the creation of knowledge. Algorithms q Used to express solutions to computational problems. Programming q Enables problem solving, human expression, and creation of knowledge. Internet q The Internet pervades modern computing. Impact q Computing has global impacts. 27
Further Readings on Computer Science 28 Peter Denning. Is computer science? Communications of the ACM 48. 4 (2005): 27 -31. Ian Horswill. What is Computation? http: //www. cs. northwestern. edu/~ian/What%20 is%20 computation. pdf Peter Denning. Great Principles of Computing. http: //cs. gmu. edu/cne/pjd/GP/ CS Principles. http: //www. csprinciples. org/ Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press, 2004. http: //www. nap. edu/openbook. php? record_id=11106&page=12
For more information on CS Principles http: //www. csprinciples. org Most recent draft standards 29