We may earn an affiliate commission when you visit our partners.
Course image
Beth Simon

How can students learn about abstraction by creating a movie scene? Or make an interactive map using lists? You'll learn (and do it yourself) in this course!

This class teaches the concepts of abstraction (methods and parameters) and lists. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with abstraction and lists in a way that keeps frustration at a minimum.

Read more

How can students learn about abstraction by creating a movie scene? Or make an interactive map using lists? You'll learn (and do it yourself) in this course!

This class teaches the concepts of abstraction (methods and parameters) and lists. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with abstraction and lists in a way that keeps frustration at a minimum.

Along the way you will learn about the common challenges or "bugs" students have with these concepts as well as ways to help them find and fix those concepts. You'll also be guided in running classroom discussions to help students develop deeper understanding of these concepts.

Finally, you'll learn about the importance and logistics of assigning creative, student-designed programming projects.

Additionally, you will create a personal plan for increasing your skills in supporting a culturally responsive learning environment in your classroom.

Enroll now

What's inside

Syllabus

Welcome!
Meet Dr. Simon and fellow learners in this class! Find out what you’ll be doing and learning.
Nested Repeats
How can we simplify instructions further with repeats? How do you dance the chicken dance? We’ll cover these questions and more in this module! Learn how nested repeats work by making dance instructions, solving programming puzzles, and creating a program. Prepare for class discussions around challenging questions about nested repeats.
Read more
More Nested Repeats & Events
Be prepared for teaching nested repeats with code.org’s Bee and Zombie programming challenges, and get ready to learn about events! Find out how to grab your students’ attention with events, and practice your understanding by imagining: what if you could control someone with a game controller? Learn more about events by playing with programming puzzles and creating your own program.
More Events & Variables
In this module, we’ll explore how events are taught in the classroom and go through another code.org challenge: this time, we’re creating the game of Bounce (or Pong), which is just like air hockey! We’ll also introduce how variables are placeholders for data by displaying them as a real-world placeholders: envelopes. Work on getting comfortable with variables in a variety of programming puzzles.
More Variables
After working through some tricky examples of changing variables, we’re ready to bring variables to your classroom! First, we’ll cover a more thorough lesson plan for the “variables as envelopes” metaphor. Then, we’ll head back to the code.org Artist environment to show the true power of variables and how much they can affect our drawings!
Equity & Pedagogy
We take a break from programming concepts to ensure that your classroom environment encourages a healthy learning environment. Learn how to make fun assignments a little more approachable by using Parsons’ problems, and explore how you can make your computer lab a respectful and supportive environment for all, especially students that might be underrepresented.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Dr. Simon, who has a proven track record of working in Computer Science Education
Develops programming concepts through real-world applications, making the learning process more relatable and engaging
Focuses on supporting and developing skills in abstraction and list manipulation, providing a solid foundation in programming fundamentals
Provides educators with practical strategies and techniques for teaching programming concepts effectively, catering to diverse learning styles
Includes discussions on promoting equity and inclusivity in the learning environment, ensuring that all learners feel supported
Encourages creative and student-led projects, fostering problem-solving abilities and promoting self-directed learning

Save this course

Save Computational Thinking for K-12 Educators: Variables and Nested Loops to your list so you can find it easily later:
Save

Reviews summary

Functional for some learners

According to learners, this program can be useful for those who already have experience with computational thinking. However, several reviews mention that mistakes in the course materials make it difficult for some to complete assignments. More experienced learners say they encounter few issues despite these mistakes. Yet, some reviewers mention that they have reached out to instructors about the mistakes with no response.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Computational Thinking for K-12 Educators: Variables and Nested Loops with these activities:
Read "Head First Software Development" by Dan Pilone and Russ Miles
Enhance understanding of programming concepts and reinforce learning by reviewing a comprehensive textbook.
Show steps
  • Purchase or borrow a copy of the book.
  • Read the chapters corresponding to the course material.
  • Complete the exercises and examples provided in the book.
Explore the JavaScript tutorial on variables
Gain a deeper understanding of variables by following a guided tutorial.
Browse courses on Variables
Show steps
  • Go to the Mozilla Developer Network website.
  • Search for the 'JavaScript variables' tutorial.
  • Follow the tutorial and complete the exercises.
Complete code.org's Zombie Challenge
Practice applying concepts of nested repeats and events using an interactive programming challenge.
Browse courses on Events
Show steps
  • Go to the code.org website and create an account.
  • Select the 'Zombie' challenge.
  • Follow the instructions and complete the challenge.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Host a study group focused on variables
Deepen understanding of variables and improve problem-solving skills through collaborative learning.
Browse courses on Variables
Show steps
  • Gather a group of classmates.
  • Choose a topic related to variables for the study session.
  • Facilitate a discussion and work through problems together as a group.
Compile a list of programming challenges involving events
Expand knowledge of events and identify areas for further practice by compiling a list of programming challenges.
Browse courses on Events
Show steps
  • Search for online resources and repositories for coding challenges.
  • Filter the challenges by topic, focusing on events.
  • Organize the challenges into a list or spreadsheet.
Develop a game prototype that utilizes variables to track player progress
Apply understanding of variables to a practical project by creating a game prototype that tracks player progress.
Browse courses on Variables
Show steps
  • Design a simple game concept.
  • Implement variables to track player attributes and progress.
  • Create a playable prototype.
Contribute to an open-source project related to variables
Gain practical experience working with variables and contribute to the open-source community.
Browse courses on Variables
Show steps
  • Identify an open-source project that involves variables.
  • Review the project's documentation and codebase.
  • Make a meaningful contribution, such as fixing a bug or adding a feature.

Career center

Learners who complete Computational Thinking for K-12 Educators: Variables and Nested Loops will develop knowledge and skills that may be useful to these careers:
Software Engineer
Abstraction and lists are fundamental concepts in software engineering. This course would help someone wanting to become a Software Engineer with the theoretical background needed to apply these two concepts in practice, making them a stronger candidate for roles in the field as well as providing them with necessary knowledge for the field.
Data Scientist
Abstraction is used by Data Scientists to simplify complex data structures and datasets. Lists are also a common data structure used by Data Scientists to organize and store data. This course would help someone wanting to become a Data Scientist understand the theoretical basis for abstraction and lists, as well as providing them with practical experience using them.
Web Developer
Abstraction is an essential skill for Web Developers when creating modular and reusable code. Lists are a key data structure that is used in web development for a variety of purposes, such as storing user input or displaying data on a web page. This course would help someone who wants to become a Web Developer build a strong foundation in abstraction and lists, which are essential skills in the field.
Mobile App Developer
Abstraction is an essential skill for Mobile App Developers when creating modular and reusable code. Lists are a key data structure that is used in mobile app development for a variety of purposes, such as storing user data or displaying data in a user interface. This course would help someone who wants to become a Mobile App Developer build a strong foundation in abstraction and lists, which are essential skills in the field.
Robotics Engineer
Abstraction is a critical skill for Robotics Engineers when designing and programming robots. Lists are also a key data structure that is used in robotics for a variety of purposes, such as storing sensor data or controlling robot movement. This course would help someone who wants to become a Robotics Engineer build a strong foundation in abstraction and lists, which are essential skills in the field.
Network Administrator
Abstraction is a critical skill for Network Administrators when designing and managing computer networks. Lists are also a key data structure that is used in network administration for a variety of purposes, such as storing network configuration data or representing network topologies. This course may be useful for someone who wants to become a Network Administrator, as it would help them build a foundation in abstraction and lists.
Computer Scientist
Abstraction is a critical skill for Computer Scientists when designing and developing computer programs. Lists are also a key data structure that is used in computer science for a variety of purposes, such as storing data or representing algorithms. This course may be useful for someone who wants to become a Computer Scientist, as it would help them build a foundation in abstraction and lists.
IT Project Manager
Abstraction is a critical skill for IT Project Managers when planning and managing IT projects. Lists are also a key data structure that is used in IT project management for a variety of purposes, such as tracking project tasks or representing project dependencies. This course may be useful for someone who wants to become an IT Project Manager, as it would help them build a foundation in abstraction and lists.
Software Architect
Abstraction is a critical skill for Software Architects when designing and developing software systems. Lists are also a key data structure that is used in software architecture for a variety of purposes, such as representing system components or defining system interfaces. This course may be useful for someone who wants to become a Software Architect, as it would help them build a foundation in abstraction and lists.
Systems Engineer
Abstraction is a critical skill for Systems Engineers when designing and implementing complex systems. Lists are also a key data structure that is used in systems engineering for a variety of purposes, such as representing system requirements or tracking system components. This course may be useful for someone who wants to become a Systems Engineer, as it would help them build a foundation in abstraction and lists.
Database Administrator
Abstraction is a critical skill for Database Administrators when designing and managing databases. Lists are also a key data structure that is used in databases for a variety of purposes, such as storing data or representing relationships between data. This course may be useful for someone who wants to become a Database Administrator, as it would help them build a foundation in abstraction and lists.
Artificial Intelligence Engineer
Abstraction is a critical skill for Artificial Intelligence Engineers when designing and developing AI systems. Lists are also a key data structure that is used in AI for a variety of purposes, such as storing training data or representing knowledge graphs. This course may be useful for someone who wants to become an Artificial Intelligence Engineer, as it would help them build a foundation in abstraction and lists.
Webmaster
Abstraction is a critical skill for Webmasters when designing and developing websites. Lists are also a key data structure that is used in web development for a variety of purposes, such as storing website content or representing website navigation. This course may be useful for someone who wants to become a Webmaster, as it would help them build a foundation in abstraction and lists.
Computer Systems Analyst
Abstraction is a critical skill for Computer Systems Analysts when designing and implementing computer systems. Lists are also a key data structure that is used in computer systems for a variety of purposes, such as storing system logs or representing network topologies. This course may be useful for someone who wants to become a Computer Systems Analyst, as it would help them build a foundation in abstraction and lists.
Information Systems Manager
Abstraction is a critical skill for Information Systems Managers when designing and implementing information systems. Lists are also a key data structure that is used in information systems for a variety of purposes, such as storing data or representing business processes. This course may be useful for someone who wants to become an Information Systems Manager, as it would help them build a foundation in abstraction and lists.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Computational Thinking for K-12 Educators: Variables and Nested Loops.
Emphasizes the importance of writing clean, well-structured code. It provides practical guidelines and best practices for software design, refactoring, and testing, helping programmers improve the quality of their codebase.
For those interested in web development, this book provides a comprehensive overview of JavaScript fundamentals and advanced concepts. It covers topics such as variables, data types, functions, objects, and the DOM, providing both breadth and depth.
This classic book introduces design patterns, which are reusable solutions to commonly occurring problems in software design. It provides a catalog of patterns and explains when and how to apply them, helping programmers write more flexible and maintainable code.
Unit testing is an essential practice for ensuring the reliability of software. provides a comprehensive guide to unit testing in Java, covering topics like test design, test automation, and mocking. It helps programmers write better tests and improve the quality of their code.
Introduces domain-driven design (DDD), a software development approach that focuses on modeling the domain of the problem being solved. It provides guidance on how to identify and define domain concepts, and how to translate them into software code. DDD helps programmers write software that is more closely aligned with the real-world problem domain, making it easier to understand and maintain.
Microservices are a popular architectural style for building distributed systems. provides a practical guide to designing and implementing microservices, covering topics like service decomposition, communication patterns, and deployment strategies. It helps programmers build scalable, resilient, and maintainable microservices.
Beginners will appreciate the detailed explanations and examples provided in this book. It covers necessary programming fundamentals like variables, data types, conditionals, loops, and functions in a clear and easy-to-understand manner.
As programmers work on projects, code can become complex and difficult to maintain. provides practical techniques for refactoring code, improving its structure and design without changing its behavior. It helps programmers write cleaner, more maintainable code.
Test-driven development (TDD) software development process that emphasizes writing tests before writing code. provides a practical introduction to TDD, explaining its benefits and how to apply it in real-world projects. It helps programmers write more reliable and maintainable code.
For those new to programming, this book can help to build a strong foundation in core programming principles. It provides background information in the form of building block exercises and challenges.
This book's hands-on approach and engaging writing style make it a great companion for beginners to Java programming. It covers essential Java concepts such as variables, loops, methods, and objects.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Computational Thinking for K-12 Educators: Variables and Nested Loops.
Computational Thinking for K-12 Educators: Conditional...
Most relevant
Computational Thinking for K-12 Educators: Nested If...
Computational Thinking for K-12 Educators: Abstraction,...
Programming Pedagogy in Primary Schools: Developing...
Computational Thinking for K-12 Educators: Sequences and...
Engineering for Your Classroom K – 3
Computational Thinking for K-12 Educators Capstone
Coding for Your Classroom K - 3
Create a Record of Students using Abstraction in Java
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser