Home » Coding

Coding Dojo Blog

# II. Algorithms

• ### Something that always finishes and works.

• http://www.computerhope.com/jargon/a/algorith.htm\

Example of a long division algorithm

# VII. What is coding? A bit more depth

### The following is a list of Hello, world! programs. Hello, world! programs make the text “Hello, world!” appear on a computer screen. It is usually the first program encountered when learning a programming language.

https://en.wikibooks.org/wiki/Computer_Programming/Hello_world

https://helloworldcollection.github.io/

http://www.mycplus.com/featured-articles/hello-world-programs-in-300-programming-languages/

# X. Resources

### BBC Bitesize: Functions, procedures and modules

http://www.bbc.co.uk/education/guides/z9hykqt/revision/1

### Jim’s Computer Science Topics Area

Computer Architecture, Arrays, Assignment Statement, Branching
Colors RGB, Commenting your Code, Composition of Functions
Conditionals, How Data Flows in a Program, Data Types
Debugging Programs, Default Variable Values, Software Development Cycle
Emacs, Equality Test, Expressions, For Loops, Functions
Geometric Vectors, Html
Information Representation and Transformations
Integer vs. Floating Point Math
Interfaces, Loops, Math Operators, Matrix info
Memory Layout, Numbering Systems, Object Oriented Programming
Packages, Pair Programming, Pointers and References
Problem Solving, Program Flow, Programming Style
Random Numbers, Recursion, Semicolons, Shortcut Evaluation
Strings (Data Type), Structures (Data Type), Truth Tables and Logic
Unsigned Integers, Variables and Data, Variables, While Loops

http://www.cs.utah.edu/~germain/PPS/Topics/index.html

_________________________________________

## Review for assessment

A. Be able to count binary with 0’s and 1’s :

if you see 8 bits, tell me what number it is
If you see a regular number (up to 256) be able to turn it into 0’s and 1’s

B. Translate ASCII letters, numbers and symbols from bits, or from bits to ASCII.
(You don’t have to memorize these codes) http://sticksandstones.kstrom.com/appen.html

Practice on the binary-> ASCII converter  https://mothereff.in/binary-ascii

C. You’ll be given a simple bit map (picture on graph paper.) Convert it to binary data. Or you’ll be given binary data, convert it to a bit map.

# Learning Standards

## Common Core Math Skills

Standard (CCSS.Math.Practice) Introduction to Programming the EV3
MP1 Make sense of problems and persevere in solving them Chapters are all based around solving real-world robot problems; students must make sense of the problems to inform their solutions
MP2 Reason abstractly and quantitatively Programming requires students to reason about physical quantities in the world to plan a solution, then calculate or estimate them for the robot
MP4 Model with mathematics Many processes, including the process of programming itself, must be systematically modeled on both explicit and implicit levels
MP6 Attend to precision Robots require precise (and accurate) input, or their output action will be correspondingly sloppy
MP7 Look for and make use of structure Understanding the structure of the physical environment, the interrelated components of robot hardware and software, and commands within a program are vital to successful solutions
MP8 Look for and express regularity in repeated reasoning Any programmed solution to a class of problems relies on the programmer recognizing and exploiting important patterns in the problem structure. There is also an emphasis throughout the module on recognizing common programmatic patterns, as well as patterns within a solution that invite the use of Loops.

## Common Core Math Content

Standard (CCSS.Math.Practice) Introduction to Programming the EV3
6.RP.A.1 Understand the concept of a ratio and use ratio language to describe a ratio relationship between two quantities Students use ratio language to describe and make use of the relationship between quantities such as Wheel Rotations and Distance Traveled
6.RP.A.2 Understand the concept of a unit rate a/b associated with a ratio a:b with b!=0, and use rate language in the context of a ratio relationship The relationship between Wheel Rotations and Distance Traveled is a rate, customarily understood through a unit rate such as “# cm per rotation”.
6.R.A.3 Use ratio and rate reasoning to solve real-world and mathematical problems Students are required to apply ratios and rates when they build their prototype examples of their real world robots.
7.RP.A.3 Use proportional relationships to solve multistep ratio and percent problems. Comparisons between rate-derived quantities

## Common Core English Language Arts

Standard (CCSS.ELA-Literacy) Introduction to Programming the EV3
WHST.6-8.1 Write arguments focused on discipline-specific content.
Reflection Questions ask students to analyze, evaluate, and synthesize arguments in response to robotics and programming problems
WHST.6-8.4 Produce clear and coherent writing in which the development, organization, and style are appropriate to task, purpose, and audience. Reflection Question tasks include composing technical critiques, technical recommendations, and creative synthesis.

## Next Generation Science Standards (NGSS)

Standard Introduction to Programming the EV3
MS-ETS1-2. Evaluate competing design solutions using a systematic process to determine how well they meet the criteria and constraints of the problem. Solving challenges requires students to create and evaluate both hardware and software designs according to scenario scoring criteria.
Some Reflection Questions require students to make recommendations between competing alternatives based on criteria that they define.
MS-ETS1-4. Develop a model to generate data for iterative testing and modification of a proposed object, tool, or process such that an optimal design can be achieved. When solving more difficult and complex challenges, students are guided toward iterative testing and refinement processes. Students must optimize program parameters and design.
HS-ETS1-2. Design a solution to a complex real-world problem by breaking it down into smaller, more manageable problems that can be solved through engineering. Problem Solving methodology for challenges directs students to break down large problems into smaller solvable ones, and build solutions up accordingly; challenges give students opportunities to practice, each of which is based on a real-world robot
HS-ETS1-3. Evaluate a solution to a complex real-world problem based on prioritized criteria and trade-offs that account for a range of constraints, including cost, safety, reliability, and aesthetics as well as possible social, cultural, and environmental impacts. Some Reflection Questions require students to make recommendations about real-world policies (e.g. requiring sensors on automobiles) based on the impact of that decision

## Massachusetts Digital Literacy and Computer Science (DLCS) Curriculum Framework

```6-8.CT.c.1 Demonstrate that numbers can be represented in different number systems (e.g., binary, octal, and hexadecimal) and text can be represented in different ways such as American Standard Code for Information Interchange (ASCII).

4. Computational Thinking (CT) is a problem solving process that requires people to think in new ways to enable effective use of computing to solve problems and create solutions. The capacity of computers to rapidly and precisely execute programs makes new ways of designing, creating, and problem solving possible. Characterized by:
• analyzing, modeling, and abstracting ideas and problems so people and computers can work with them;
• designing solutions and algorithms to manipulate these abstract representations (including data structures); and
• identifying and executing solutions (e.g., via programming).

a) Abstraction: Abstraction is a process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the problem. This process creates a new representation which successfully reframes the problem. At the most basic level of abstraction, data structures are used to represent information so that algorithms can operate on the data to create a result.

b) Algorithms: An algorithm is a sequence of precisely defined steps to solve a particular problem. Carefully designed algorithms are essential to solving complex problems using computers. Effective algorithms are efficient, clear, reusable, and accurate.

c) Data: Collecting, managing, and interpreting a vast amount of raw data is part of the foundation of our information society and economy. The storage of data impacts how data is used and accessed. Computational tools enable insights and decisions through new techniques for data collection and analysis.

d) Programming and Development: Programming articulates and communicates instructions in such a way that a computer can execute a task. Programming makes use of abstractions, algorithms, and data to implement ideas and solutions as executable code through an iterative process of design and debugging.

e) Modeling and Simulation: Computational modeling and simulation help people to represent and understand complex processes and phenomena. Computational models and simulations are used, modified, and created to analyze, identify patterns, and answer questions of real phenomena and hypothetical scenarios.

6-8.CS.a.4 Identify and describe the use of sensors, actuators, and control systems in an embodied system (e.g., a robot, an e-textile, installation art, smart room).

9-12.CS.a.1 Select computing devices (e.g., probe, sensor, tablet) to accomplish a real-world task (e.g., collecting data in a field experiment) and justify the selection.
9-12.CS.a.2 Examine how the components of computing devices are controlled by and react to programmed commands.
9-12.CS.a.3 Apply strategies for identifying and solving routine hardware and software problems that occur in everyday life (e.g., update software patches, virus scan, empty trash, run utility software, close all programs, reboot, use help sources).
9-12.CS.a.4 Explain and demonstrate how specialized computing devices can be used for problem solving, decision-making and creativity in all subject areas.
9-12.CS.a.5 Describe how computing devices manage and allocate shared resources (e.g., memory, Central Processing Unit [CPU]).
9-12.CS.a.6 Examine the historical rate of change in computing devices (e.g., power/energy, computation capacity, speed, size, ease of use) and discuss the implications for the future.```

## CSTA K–12 Computer Science Standards

The Computer Science Teachers Association (CSTA) provides opportunities for K–12 teachers and their students to better understand computer science. Membership consists of more than 23,000 members from more than 145 countries.
https://csta.acm.org/Curriculum/sub/K12Standards.html

CSTA K-12 Computer Science Standards
CL.L1:3-02 Work cooperatively and collaboratively with peers teachers, and others using technology
CT.L2-01 Use the basic steps in algorithmic problem solving to design solutions
CT.L2-06 Describe and analyze a sequence of instructions being followed
CT.L2-07 Represent data in a variety of ways: text, sounds, pictures, numbers
CT.L2-08 Use visual representations of problem states, structures, and data
CT.L2-12 Use abstraction to decompose a problem into sub problems
CT.L2-14 Examine connections between elements of mathematics and computer science including binary numbers, logic, sets, and functions
CT.L3A-01 Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts
CT.L3A-03 Explain how sequence, selection, iteration, and recursion are building blocks of algorithms
CPP.L1:6-05 Construct a program as a set of step-by-step instructions to be acted out