Our coding units focus on the following computer science concepts:
computational thinking
basic programming concepts
commands
sequence of commands
intermediate programming concepts
incorporating sensor input into robot action
decision making - loops, switches
engineering practices
problem solving
team work
We use the following curriculum tools:
First Semester:
Code for Life Rapid Router
Scratch 3.0
MIT App Inventor
BBC Micro:bits and micro:bit web app
Second Semester:
Alice 3.0
Circuit Playground and Arduino IDE
Arduino
Python
Raspberry Pi
Internet of Things (Physical Computing)
Circuit Playground, controlled by
Arduino, programmed using the Arduino IDE
BBC micro:Bit, programmed using different code editors, including this one by Microsoft (a JavaScript blocks editor) and the wonderful MicroPython IDE called mu.
Block-based or Graphics-based Programming
Introduction to Computers
Problem Solving
Work Habits (collaboration, teamwork, perseverance, helpfulness)
Computational Thinking (from an IB perspective this may include procedure, logic, pre-planning, and abstraction)
Strategies for Creative and Critical Thinking
Hardware/Software
Block-based or Graphics-based Programming
Making Apps using App Inventor
Testing Apps
Scratch
Making Apps using App Inventor
Testing Apps
Computer Text-based Programming Languages
Overview
Arduino (LEDs, motors, breadboards, )
RobotC (VEX robots)
Robot Mesh (for VEX robots)
Python (we really like Python Tutor)
BBC micro:bit (can be programmed with JavaScript blocks editor,or Python editor, or __)
Supplies/Materials
Samsung Tablets
HP laptops
Our work is guided by the K12 Computer Science Framework.
The practices outlined in the framework include:
1. Fostering an Inclusive Computing Culture
2. Collaborating around Computing
3. Recognizing and Defining Computational Problems
4. Developing and Using Abstractions
5. Creating Computational Artifacts
6. Testing and Refining Computational Artifacts
7. Communicating about Computing
The concepts include:
1. Computing Systems (devices, hardware/software, troubleshooting)
2. Networks and the Internet (network communication and organization, cybersecurity)
3. Data Analysis (collection, storage, visualization/transformation, inference/models)
4. Algorithms and Programming (algorithms, variables, control, modularity, program development)
5. Impacts of Computing (culture, social interactions, safety/law/ethics)
Crosscutting Concepts of the framework include:
1. Abstraction
2. System Relationships
3. Human-Computer Interaction
4. Privacy and Security
5. Communication and Coordination
Programming Concepts
The following programming concepts will be explored in each of our curriculum tools (see above).
a command is a block that specifies an action to be performed (ex. play sound)
some command blocks require input values
expressions are blocks that denote a value (ex. 500 milliseconds, true/false)
Boolean logic
Events
Control flow
Loops
Conditionals/Branches
Variables
defining a variable (helpful name, set initial value)
Lists
Procedures
Data and Databases