Computer science (CS) isn’t just a school subject or a class, but a set of skills that teachers can integrate into other academic areas so students get a sense of how broadly applicable it is. CS topics are interesting and interactive, and they teach kids to think computationally, which helps them acquire skill sets required for many valuable computing jobs.
If you’re new to CS and computing, here’s the skinny:
- Computers impact every field, and CS is the discipline that makes computers possible.
- CS includes topics that can lead to occupations in data security, programming, information ethics, information privacy, cloud computing, and software engineering.
- According to Code.org, computing jobs are the number one source of new wages in the U.S., and data from the Bureau of Labor Statistics indicates that computer and information technology occupations are growing at a rate far higher than the average for all other occupations. The field is projected to add over 500,000 new jobs by 2028.
Those attention-grabbing statistics make a good case for teaching CS. Here are three ways to intentionally integrate essential and fundamental CS topics and skills into your upcoming lessons.
1. How the Internet Works
The communication protocols that make the internet possible are credited to electrical engineer Robert Kahn and computer scientist Vinton Cerf, but despite how much we rely on the internet, many of us don’t know where it came from. Truthfully, we don’t really need to—but everyone should know how it works.
Teachers can help students discover the inner workings of the internet by having them build computational artifacts (anything built by a human with a computer) that need to be accessed via the web. Some examples of computational artifacts that students can produce include web pages, programs, images, podcasts, and video presentations—all of which can be created in any class.
To help students learn more about internet connections and creating their own webpages, activities from the Unplugged Internet Unit and Web Development Unit (both from Code.org) can be adapted in tandem with this rich video library.
Here are some good prompts and student questions to help you and your students get started with a CS project. Driving questions for student projects:
- How can we develop an app that is useful for others and can be accessed on the internet?
- How does internet infrastructure work, and how can we contribute to its continued growth by delivering it to those who don’t have access?
Key student questions:
- How do texts, pictures, videos, and emails get sent from one person to another?
- How do independently operated networks work and communicate, and how do we access them?
- How are Transmission Control Protocol (TCP) and the Internet Protocol (IP) fundamental to communication on the internet?
- How is binary information shifted on the internet?
- Who controls and regulates the internet, and how?
2. App Development
“App,” the shortened, colloquial term for “application,” is used with respect to both computer and software programs. Although most of us use it to refer to programs on our smart devices, it applies to programs designed for any hardware platform.
Kids are typically taught coding through tutorials, using step-by-step instructions. Unfortunately, this approach often results in them not fully comprehending core coding concepts and how apps are developed. It also leaves many of them uninspired to continue learning CS.
By requiring students to develop apps of their choosing, teachers can leverage the power of the App Lab environment for getting both CS newbies and knowbies started creating apps that are relevant to their wants and needs and that are shareable with others.
Some examples of relevant information students can deliver to others through apps include:
- Covid-19 symptom tracker
- Restaurants that offer curbside service
- Local grocery store locations and schedules
- Locations for peaceful demonstrations
- Volunteering opportunities
I like using the App Lab tool because it adjusts to the varied levels of my learners and helps simplify app development through rapid prototyping, block- or text-based coding, building interactivity—via buttons, dropdowns, etc.—and using databases. It also allows them to share their final products with others.
Code.org also created this video playlist of other activities students can do for gaming and collecting data for analysis (e.g., surveys and ratings or comments). Many of these can be integrated as a major student product into several of the vetted projects in the Buck Institute for Education’s project-based learning library.
3. Using Algorithms
Algorithms are very important in CS because they tell computers what to do using a set of sequential steps. Examples include Google searches and many functions of websites. App developers and programmers also use algorithms as the building blocks for efficient and bug-free programs.
A great way to teach kids about algorithms is to have them become more intentional about the algorithms they use in their daily lives, such as making their favorite dish or getting ready for school. For many learners, this is how computational thinking (CT) for problem-solving is enabled. CT is a prerequisite skill for many of the computing jobs forecasted by the Bureau of Labor Statistics.
Luckily, instructional approaches like project-based and blended learning can serve as vehicles for teaching CS fundamentals because they allow students to perform authentic tasks that help them apply algorithms, first through unplugged scenarios and then in digital ones.
Here are some unplugged lessons and activities to incorporate into projects to get kids started using algorithms:
- Teaching algorithms to first graders
- Arranging tangrams in specific patterns
- Planting seeds
- Building airplanes
As your students’ capacity to use algorithms increases, more complex activities for algorithms and programming can be integrated into your project-based learning units.
My experiences in CS have taught me that it takes determination, know-how, technology tools, practical strategies, and patience to develop the right expertise. But I believe the road to CS mastery is achieved more quickly when learners master the above-mentioned fundamentals and guiding principles.
When you integrate CS into your students’ academic workflow, you enhance their opportunities and even create ones they might not have known existed.