Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DTS (Levelbuilder > Staging) [robo-dts] #20049

Merged
merged 4 commits into from
Jan 16, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion dashboard/config/scripts/csd5.script
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ named_level 'CSD-U5-SFLP Problem Solving and Data'

stage 'Problem Solving with Big Data', flex_category: 'csd5_2'
named_level 'CSD-U5-SFLP Problem Solving with Big Data'
level 'CSD U5 video2', progression: 'Problem Solving'
level 'CSD U5 Netflix Data Video', progression: 'Problem Solving'
level 'CSD U5 Waze Data Video', progression: 'Problem Solving'
level 'CSD U5 Amazon Data Video', progression: 'Problem Solving'

Expand Down
7 changes: 7 additions & 0 deletions dashboard/config/scripts/csd6-draft.script
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,12 @@ bonus 'CSD U6 for loop led bonus 3'

stage 'Accelerometer', flex_category: 'csd6_2'
named_level 'CSD U6L13 TFMD'
named_level 'The Accelerometer'
level 'CSD U6 Airplane predict', progression: 'Orientation'
level 'CSD U6 directional leds pitch', progression: 'Orientation'
level 'CSD U6 directional LEDs roll', progression: 'Orientation'
level 'CSD U6 direction theremin', progression: 'Orientation'
level 'CSD U6 goalie', progression: 'Accelerometer Events'
level 'CSD U6 stillness game predict code', progression: 'Accelerometer Events'

stage 'Functions with Parameters', flex_category: 'csd6_2'
Expand All @@ -214,6 +216,11 @@ level 'CSD U6 circuit LED map', progression: 'Simple Circuits'
level 'CSD U6 circuit pinMode', progression: 'Simple Circuits'
level 'CSD U6 circuit createLed', progression: 'Simple Circuits'
level 'CSD U6 circuit multi led', progression: 'Simple Circuits'
level 'CSD U6 circuit button map', progression: 'Button Circuits'
level 'CSD U6 circuit createButton', progression: 'Button Circuits'
level 'CSD U6 circuit createButton scratch', progression: 'Button Circuits'
level 'CSD U6 circuit mix', progression: 'Button Circuits'
level 'CSD U6 circuit project program', progression: 'Build Your Prototype'

stage 'Project: Prototype an Innovation', flex_category: 'csd6_2'
named_level 'CSD U6L16 TFMD'
Expand Down
44 changes: 22 additions & 22 deletions dashboard/config/scripts/csp_algorithms_map.external
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@ By asobuno (Own work) [<a href="https://creativecommons.org/licenses/by-sa/3.0">

**Physical Tasks in Daily Life**

One way to look at your typical day is as a series of tasks you need to complete. For example you'll need to get dressed, pack your things, travel from one place to another, complete work, keep up with friends and family, prepare and eat meals, clean and organize your things, and relax and have fun.
Daily life is filled with tasks. For example, most mornings you'll need to get dressed, pack your things, and then travel from one place to another. Your day at work or school will be filled with tasks to complete. Even keeping up with friends, relaxing, or going to bed probably includes some tasks if you look closely.

<div style="clear: both"> </div>

<img src="https://images.code.org/a2835a98c80954695d1db19f0d66cf6b-image-1515092970066.jpg" style="float:right;width:200px">

**Automating Tasks**

Over history one of the most significant shifts in how we complete tasks is through automation. Historically humans have invented tools to solve problems. Shovels have helped us dig holes, trucks help us move heavy loads, and writing tools make it much easier to keep track of important information.
Most tasks we want taken care of quickly, easily, and reliably. Sometimes we practice the steps of a task, like tying our shoes, so that we can quickly complete it and move on to other things. In other cases we've made tools to help us complete tasks like shovels to dig holes or ropes to help pull and lift things.

With automation instead of just making tools to help us complete tasks, we created tools that essentially did the entire task for us. We invented machines to weave cloth, harvest food, and assemble tools that could complete these tasks with almost no human input at all!
Automation combines these two ideas. If completing a task requires the same predictable set of steps, perhaps we could build a tool that does all those steps for us. As a result humans built amazing machines that could weave cloth, plant and harvest food, or assemble products with little to no human input. This led to enormous shifts in everyday life!

<div style="clear: both"> </div>
<div style="clear: both"></div>

<div style="float:right;width:200px">
<img src="https://images.code.org/28011d19f50522a3b3b5c563e9a79c37-image-1515091698632.JPG">
Expand All @@ -43,45 +43,45 @@ By Clem Rutter, Rochester, Kent. (self) [<a href="http://www.gnu.org/copyleft/fd

**Automation Requires Algorithms**

Automation typically results in tasks that are completed more quickly, easily, and reliably. In order to build a machine to automate a task, however, you need to be able to describe precisely how the task should be completed. For example, you need to know all the steps to make each stitch in a piece of cloth, or exactly how close to one another and at what depth each seed should be planted. These precise steps that automate a task are algorithms!
To automate a task you of course need the materials to design and build your machine, but just as important you need to know the precise steps the machine should be built to complete. A machine to weave cloth needs to know precisely how to make each stitch, and a machine to plant crops needs to know how close to plant each seed. In other words, in order to automate processes you need the precise sequence of steps, or algorithm, your machine will be designed to implement!

<div style="clear: both"> </div>

## Algorithms and Computer Science
## Algorithms and Information Tasks

<div style="float: right; width: 250px; margin-left: 10px; background-color: #ffffff; color: #0094ca">
<img src="https://images.code.org/922f0ea03649c735ae4e27531bb12508-image-1513368088093.00.43 PM.png" style="width: 90%">
<br><br>
<em>drawRectangle()</em> and <em>right()</em> are examples of abstraction because they capture the code for more complex behavior and simplify the representation of that behavior by giving it a single name.
</div>
**Information Tasks and Tools**

Many tasks don't require physical work, but they do require thinking. For example, you might need to keep track of money, remember birthdays, or schedule activities. At their core these problems have to do with how we organize and make sense of information. Tools like calendars, clocks, and financial records help us complete these information tasks.

**Automating Information Tasks**

**Tools for Thinking Tasks**
Many information tasks can be completed using step-by-step algorithms. For example when you learn the steps to add or multiply two numbers, you're really just practicing an algorithm. Tools like a mechanical cash register are built to implement those algorithms and help automate a task.

Many of our daily tasks don't involve physical work and instead just require thinking. For example keeping track of money, remembering birthdays, or scheduling activities. Just like physical tasks, thinking tasks can be monotonous or challenging, and so we've made tools to help us complete them. For example calendars, clocks, financial records, and books help us with different thinking tasks.
## Algorithms, Programming, and Computer Science

**Programming - Communicating algorithms to a computer**
**The Everything Machine**

Thinking tasks deal with information. In order to automate thinking tasks humans needed to design
Through history machines to automate thinking tasks usually did only one thing. A machine could track stars in the sky, or add numbers, but couldn't do both. By comparison, a single modern computer can add numbers, show video, communicate over the Internet, and play music. This is clearly a very different type of machine!

Just like with physical tasks, humans want tools to automate their thinking tasks. This is essentially what computers are, information processing tools for automating thinking tasks.
In order to achieve this, computers were designed to complete a set of simple commands that are likely to come up in many information problems. For example a computer is able to add and subtract numbers, move information from one place to another, and compare numbers. This is because at a low level you'll actually find that most information tasks require this same set of commands.

Computers
Rather than being designed to do one task, a computer lets a human being write out the steps in which it uses the different commands it's designed to understand. Depending on the task the human wants the computer to complete they'll write a different sequence of commands. Said another way, a computer is a machine that's designed for a human to write algorithms for it to run!

A program is a set of instructions to complete some task using the tools made available to you in a programming language. In other words, a program is an algorithm for completing a task. The difference between a computer and human algorithm is the extreme precision of a programming language. Computers require instructions that can only have a single, unambiguous meaning. Computer languages only contain a relatively small set of single individual commands that the computer is capable of running. In order to design an algorithm, you need to combine these commands together.
## Algorithms and Creativity

**Sequence, Selection, Iteration**

Algorithms are created by combining the types of instructions that a computer can complete in three ways. In fact, using these three you can describe ANY algorithm completed by a computer.
Any programming language only provides so many commands. Algorithms are created by combining these instructions in three ways. In fact, using these three you can describe ANY algorithm completed by a computer. Those three ways are:

* **Sequence:** This is placing commands in an order. When you write a program that runs line by line you are defining the order in which a computer should run the fundamental commands that it understands.

* **Selection:** This is when a computer chooses to run one of two or more sections of code. When you use an if-statement you are making use of selection.

* **Iteration:** Repeating a section of code. In programming this means using a loop.
* **Iteration:** This is when a computer repeats a section of code. For example you can do this by using a loop.

**Algorithms and Creativity**
**Algorithms, Programming, and Creativity**

There are many (conceivably infinite) ways to write a program to complete a task. Some may be more efficient or easier to understand than others, but there is typically no single "right" algorithm to complete a task. There also typically isn't an "algorithm for writing algorithms". You need to investigate and understand the problem you are trying to solve, and then get creative with how you'll combine the tools the programming language provides you.
Even with the limited commands a computer understands and the limited ways you can combine them, there are actually many, conceivably infinite, ways to write a program to complete a task. Some may be more efficient or easier to understand than others, but there is typically no single "right" algorithm to complete a task. There also isn't an "algorithm for writing algorithms". You need to investigate and understand the problem you are trying to solve, and then get creative with how you'll combine the tools the programming language provides you. Computer science is a creative discipline because computers literally require human creativity to do anything at all!

<div style="clear: both"> </div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@
"hide_share_and_remix": "false",
"disable_if_else_editing": "false",
"expand_debugger": "false",
"contained_level_names": null,
"disable_procedure_autopopulate": "false",
"top_level_procedure_autopopulate": "false"
"top_level_procedure_autopopulate": "false",
"contained_level_names": null
},
"published": true,
"notes": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@
"hide_share_and_remix": "false",
"disable_if_else_editing": "false",
"expand_debugger": "false",
"contained_level_names": null,
"disable_procedure_autopopulate": "false",
"top_level_procedure_autopopulate": "false"
"top_level_procedure_autopopulate": "false",
"contained_level_names": null
},
"published": true,
"notes": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@
"hide_share_and_remix": "false",
"disable_if_else_editing": "false",
"expand_debugger": "false",
"contained_level_names": null,
"disable_procedure_autopopulate": "false",
"top_level_procedure_autopopulate": "false"
"top_level_procedure_autopopulate": "false",
"contained_level_names": null
},
"published": true,
"notes": "",
Expand Down
21 changes: 21 additions & 0 deletions dashboard/config/scripts/levels/CSD U5 Netflix Data Video.level
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<StandaloneVideo>
<config><![CDATA[{
"game_id": 54,
"created_at": "2018-01-16T04:10:50.000Z",
"level_num": "custom",
"user_id": 1,
"properties": {
"video_key": "csd_external_netflix_data",
"markdown_instructions": "Watch this video to learn how this problem is solved by Netflix. As you watch think about what data is being collected and where it's coming from.",
"instructions_important": "false",
"encrypted_teacher_markdown": "sK9ShmyBoCu6nL+OsH20We6Uu/kmYqV6h2sOGCA5Shguf3cyVJMFt7BQx1ao\ngLJOK0EKf3BTolE3qwCT7eCQVak4d4UUI27ro2JbXc+ilRxb18M2ZCPXZoB9\nzsLS+DfSxNne3MySW6U25bGwiATQPlwGw5EMzWkIAYrIWYKdPjSrMt+6A+qd\nMCIsytoLws/8E94VYxuOMqY2eKD2cGDJMDZ57cKHyBz/xVLCm4QROxnJoknR\nog2ouGhv1Gm3vso0JBH6B4pDY9xB1gUbR4aea9gYl6jvn7avTqB7Eg1eidKT\nAqIwAVu1fcD40w3JyjMbiLAOm/0Zgrc4kEVQHnpxD5j+LVAnM6qVig22GLt2\nGF8OWsRDA4CmLpzNB/FVdl2jrVaaSyWn/oUbvuyCMfQqAmjEmsEhNCQddpiF\nx0aUakg7grW2Y6b4afAJbYjmAZhay6PMFmiV9nBpffVnTTp+D/7FeH3CSrlQ\nTTXJVptFano=\n",
"skip_dialog": true,
"skip_sound": true
},
"published": true,
"notes": "",
"audit_log": "[{\"changed_at\":\"2018-01-16 04:11:34 +0000\",\"changed\":[],\"changed_by_id\":1,\"changed_by_email\":\"josh@code.org\"}]",
"level_concept_difficulty": {
}
}]]></config>
</StandaloneVideo>
59 changes: 59 additions & 0 deletions dashboard/config/scripts/levels/CSD U6 Driver pt1.level
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<Applab>
<config><![CDATA[{
"game_id": 41,
"created_at": "2018-01-16T17:26:54.000Z",
"level_num": "custom",
"user_id": 568,
"properties": {
"skin": "applab",
"edit_code": true,
"contained_level_names": null,
"encrypted_examples": [

],
"embed": "false",
"instructions_important": "false",
"submittable": "false",
"is_k1": "false",
"skip_instructions_popup": "false",
"never_autoplay_video": "false",
"disable_param_editing": "true",
"disable_variable_editing": "false",
"disable_procedure_autopopulate": "false",
"top_level_procedure_autopopulate": "false",
"use_modal_function_editor": "false",
"use_contract_editor": "false",
"contract_highlight": "false",
"contract_collapse": "false",
"examples_highlight": "false",
"examples_collapse": "false",
"examples_required": "false",
"definition_highlight": "false",
"definition_collapse": "false",
"disable_examples": "false",
"hide_share_and_remix": "false",
"droplet_tooltips_disabled": "false",
"lock_zero_param_functions": "false",
"disable_if_else_editing": "false",
"free_play": "false",
"show_turtle_before_run": "false",
"autocomplete_palette_apis_only": "false",
"execute_palette_apis_only": "false",
"design_mode_at_start": "false",
"hide_design_mode": "false",
"beginner_mode": "false",
"hide_view_data_button": "false",
"show_debug_watch": "false",
"expand_debugger": "false",
"fail_on_lint_errors": "false",
"debugger_disabled": "false",
"makerlab_enabled": "true"
},
"published": true,
"notes": "",
"audit_log": "[{\"changed_at\":\"2018-01-16 17:27:48 +0000\",\"changed\":[\"notes\",\"code_functions\",\"contained_level_names\"],\"changed_by_id\":568,\"changed_by_email\":\"meilani.eyre@code.org\"}]",
"level_concept_difficulty": {
}
}]]></config>
<blocks/>
</Applab>
15 changes: 15 additions & 0 deletions dashboard/config/scripts/levels/CSD U6 circuit button map.level
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<Map>
<config><![CDATA[{
"game_id": 59,
"created_at": "2018-01-15T23:58:56.000Z",
"level_num": "custom",
"user_id": 1,
"properties": {
"instructions_important": "false",
"display_name": "Button Circuits",
"reference": "/docs/csd/circuit_button/index.html"
},
"published": true,
"notes": ""
}]]></config>
</Map>