This is a full-year (two semesters), Project-Based Learning (PBL) course on introduction to computer science for high school. Students get a comprehensive overview of and experience in many areas in the field of computer science through numerous fun & engaging, hands-on, individual & group projects and activities, mostly in the context of VEX Robotics™. The following topics are covered:
- Robotics
- Python Programming
- Artificial Intelligence
- Web Development
- Data Analysis
- Computing Theory, Algorithms, Data Structures
- Problem Solving, Computational Thinking, Design Thinking
- 3D Modeling & Design
- Basics of Computer Hardware & Software (IT)
- Technical Career Exploration
All robotics projects make use of either the VEX Virtual Robot (VR) Simulator website or either of the physical robot kits VEX EXP or VEX V5 Clawbot. It's recommended that the students groups each have access to a EXP/V5 Clawbot kit. However, the course can easily accommodate classrooms which only have access to the online VEX virtual simulator website but don't have the physical kit.
*™ VEX and VEX Robotics are trademarks or service marks of Innovation First, Inc. .
What Students Say:
92% Learned a lot or most of what they expected
96% Found lessons often challenging
84% Thought lessons were mostly interesting
96% Got a lot of hands-on practice
93% Said class has increased their knowledge & skills
91% Thought class helped them plan for college & career
30% Would like to work in this field
CSTA Standards Alignment:
- Computing Systems
- 3A-CS-01
- Computing Systems — Devices — Abstraction
- Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
- Projects: 11, 12, 16, 19, 22
- 3A-CS-02
- Computing Systems — Hardware & Software — Abstraction
- Compare levels of abstraction and interactions between application software, system software, and hardware layers.
- Tests: Quiz 1: IT Hardware & Software Basics Assessment
- 3A-CS-03
- Computing Systems — Troubleshooting — Testing
- Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.
- Projects: 3, 7. 19, 20, 21, 22, 25, 27, 28, 30, 32, 37, 38A, 38B
- 3B-CS-01
- Computing Systems — Hardware & Software — Communicating
- Categorize the roles of operating system software.
- Tests: Quiz 1: IT Hardware & Software Basics Assessment
- Data and Analysis
- 3A-DA-09
- Data & Analysis — Storage — Abstraction
- Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.
- Projects: 22, 26, 29, 31, 36
- Exercises: 3
- 3A-DA-10
- Data & Analysis — Storage — Computational Problems
- Evaluate the tradeoffs in how data elements are organized and where data is stored.
- Projects: 2, 12
- 3A-DA-11
- Data & Analysis — Collection Visualization & Transformation — Abstraction
- Create interactive data visualizations using software tools to help others better understand real-world phenomena.
- Projects: 2, 12
- 3A-DA-12
- Data & Analysis — Inference & Models — Abstraction
- Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
- Projects: 2, 12, 24, 33, 34, 36
- 3B-DA-05
- Data & Analysis — Collection Visualization & Transformation — Abstraction
- Use data analysis tools and techniques to identify patterns in data representing complex systems.
- Projects: 2, 12, 24, 33, 34, 36
- 3B-DA-06
- Data & Analysis — Collection Visualization & Transformation — Communicating
- Select data collection tools and techniques to generate data sets that support a claim or communicate information.
- Projects: 2, 12, 16, 34
- 3B-DA-07
- Data & Analysis — Inference & Models — Abstraction
- Evaluate the ability of models and simulations to test and support the refinement of hypotheses.
- Projects: 2, 12, 16, 29, 31, 33, 34, 36
- Algorithms and Programming
- 3A-AP-13
- Algorithms & Programming — Algorithms — Creating
- Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.
- Projects: 3, 4, 6, 8, 9, 11, 12, 13, 16, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38A
- 3A-AP-14
- Algorithms & Programming — Variables — Abstraction
- Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
- Projects: 22, 31, 35, 37
- 3A-AP-15
- Algorithms & Programming — Control — Computational Problems
- Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made.
- Projects: 9, 13, 31, 35, 37
- 3A-AP-16
- Algorithms & Programming — Control — Creating
- Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.
- Projects: 1, 14, 16, 18, 37, 38B
- 3A-AP-17
- Algorithms & Programming — Modularity — Computational Problems
- Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
- Projects: 11, 12, 21, 35, 37
- 3A-AP-18
- Algorithms & Programming — Modularity — Creating
- Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
- Projects: 11, 12, 13, 16, 21, 35, 37
- 3A-AP-19
- Algorithms & Programming — Modularity — Creating
- Systematically design and develop programs for broad audiences by incorporating feedback from users.
- Projects: 37
- 3A-AP-20
- Algorithms & Programming — Program Development — Communicating
- Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
- Projects: 12, 34, 36
- 3A-AP-21
- Algorithms & Programming — Program Development — Testing
- Evaluate and refine computational artifacts to make them more usable and accessible.
- Projects: 11, 19, 22, 35, 37
- 3A-AP-22
- Algorithms & Programming — Program Development — Collaborating
- Design and develop computational artifacts working in team roles using collaborative tools.
- Projects: 8, 13, 19, 30, 32
- 3A-AP-23
- Algorithms & Programming — Program Development — Communicating
- Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
- Projects: 16, 22, 37
- 3B-AP-08
- Algorithms & Programming — Algorithms — Communicating
- Describe how artificial intelligence drives many software and physical systems.
- Projects: 23, 24, 26, 29, 33, 34, 36
- 3B-AP-09
- Algorithms & Programming — Algorithms — Creating
- Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.
- Projects: 24, 26, 29, 33, 34, 36
- 3B-AP-10
- Algorithms & Programming — Algorithms — Abstraction
- Use and adapt classic algorithms to solve computational problems.
- Projects: 6, 13, 17, 21, 22, 25, 28
- 3B-AP-11
- Algorithms & Programming — Algorithms — Abstraction
- Evaluate algorithms in terms of their efficiency, correctness, and clarity.
- Projects: 17, 22, 25, 28
- 3B-AP-12
- Algorithms & Programming — Variables — Abstraction
- Compare and contrast fundamental data structures and their uses.
- Projects: 22, 35
- 3B-AP-13
- Algorithms & Programming — Control — Computational Problems
- Illustrate the flow of execution of a recursive algorithm.
- Projects: 37
- 3B-AP-14
- Algorithms & Programming — Variables — Abstraction
- Construct solutions to problems using student-created components, such as procedures, modules and/or objects.
- Projects: 11, 13, 19, 27, 37
- 3B-AP-15
- Algorithms & Programming — Modularity — Abstraction
- Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.
- Projects: 22
- 3B-AP-16
- Algorithms & Programming — Modularity — Creating
- Demonstrate code reuse by creating programming solutions using libraries and APIs.
- Projects: 12, 16, 18, 19, 33, 34, 36
- 3B-AP-17
- Algorithms & Programming — Program Development — Creating
- Plan and develop programs for broad audiences using a software life cycle process.
- Projects: 37
- 3B-AP-21
- Algorithms & Programming — Program Development — Testing
- Develop and use a series of test cases to verify that a program performs according to its design specifications.
- Projects: 21, 37
- 3B-AP-22
- Algorithms & Programming — Program Development — Creating
- Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
- Projects: 11, 16, 19
- 3B-AP-23
- Algorithms & Programming — Program Development — Testing
- Evaluate key qualities of a program through a process such as a code review.
- Projects: 16
- 3B-AP-24
- Algorithms & Programming — Program Development — Communicating
- Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.
- Projects: 1, 14, 37, 38B
- Impacts of Computing
- 3A-IC-24
- Impacts of Computing — Culture — Inclusion
- Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
- Projects: 23, 24
- 3A-IC-25
- Impacts of Computing — Culture — Inclusion
- Test and refine computational artifacts to reduce bias and equity deficits.
- Projects: 24
- 3A-IC-26
- Impacts of Computing — Culture — Computational Problems
- Demonstrate ways a given algorithm applies to problems across disciplines.
- Projects: 23
- 3A-IC-27
- Impacts of Computing — Social Interactions — Collaborating
- Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.
- Projects: 15, 23, 37
- 3A-IC-28
- Impacts of Computing — Safety Law & Ethics — Communicating
- Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
- Projects: 1, 14, 38B
- 3A-IC-29
- Impacts of Computing — Safety Law & Ethics — Communicating
- Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users.
- Projects: 24
- 3B-IC-25
- Impacts of Computing — Culture — Testing — Inclusion
- Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.
- Projects: 23
- 3B-IC-26
- Impacts of Computing — Culture — Inclusion
- Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
- Projects: 23
- 3B-IC-27
- Impacts of Computing — Culture — Communicating
- Predict how computational innovations that have revolutionized aspects of our culture might evolve.
- Projects: 23