Most students who sign up for AP® Computer Science do so because they love computers or they love programming. These students feel right at home in the course because they get a comprehensive overview of programming in Java. It’s a rigorous class meant for students who are passionate about programming.
But what about the students who have never tried programming? Why would these students sign up to take a rigorous course to learn a skill they know nothing about? These students would benefit from a class that focuses not just on programming, but the computer science field as a whole.
There are a lot of aspects of IT that are not covered in AP® CS. The new AP® Computer Science Principles class aims to fill in the gaps created by the existing course. Instead of focusing on programming, the course outlines the “big ideas” of the computer science field. This includes concepts like how the Internet works, why big data is useful, and how computing has created global connections. The course is designed to get underrepresented students introduced to the computer science field by offering more than just programming. It acts as a stepping stone between “I have no idea how computers work” and “I want to be a computer science major in college”.
The AP® Computer Science Principles Curriculum Framework
The curriculum framework that has been created for AP® Computer Science Principles looks very different than the AP® Computer Science course outline. Instead of a list of things students have to know how to do, we see “Big Ideas”, “Enduring Understandings”, and “Essential Knowledge”. The framework is broad in its themes of computer science, but also offers specific concepts that students have to know.
While these broad-yet-specific guidelines might seem overwhelming or confusing at first, they are actually incredibly flexible and allow teachers to go in different directions while covering the same basic skills and understandings. Read on to discover how flexible the curriculum framework really is.
Topics Flexibility
There are a wide variety of computer concepts in the curriculum framework, most of which allow for lots of flexibility.
Big Idea 7: Global Impact
Take a look at Enduring Understanding (EU) 7.1: “Computing enhances communication, interaction, and cognition.” This EU is all about computing tools that have helped humans collaborate in the digital age. You might notice that the Essential Knowledge (EK) standards don’t cover how technologies work. Instead, they focus on the impact that technologies have had on society. This gives teacher freedom to explore impacts of technology that their students find interesting and engaging.
Here’s a good example. Ms. Smith, a CS Principles teacher, is planning her lesson on EK 7.1.1I, which reads:
“Global Positioning System (GPS) and related technologies have changed how humans travel, navigate, and find information related to geolocation.”
She starts her lesson by getting students to think about what the world would be like without GPS. Ms. Smith knows that several of her students want to pursue a career in law enforcement after they graduate from high school, so she finds an article about how geolocation has an impact on crime (like this one, for example). She will have students read the article and answer some discussion questions in pairs. For her students who are more interested in technology, she locates an article on how self driving cars use GPS to navigate (like this one). Ms. Smith has a group of students who read at a lower level than her other students. For this group, she locates a less technical article (with accompanying video) on geolocation and marketing (like this one).
After each group has discussed their articles with each other, Ms. Smith leads a brief group discussion on geolocation so the students can reflect on what they learned. Although they read different articles, every student was able to see a different way that geolocation affects society and impacts their lives.
This kind of lesson can be created using many of the EKs for Big Idea 7. Sensor networks (EK 7.1.1J) can be used to predict natural disasters like earthquakes, monitor vital body functions of hospital patients, and keep track of the amount of air pollution. Assistive technologies (EK 7.1.1L) give humans the ability to walk, hear, talk, and more. Crowdsourcing (EK 7.1.2F) can be used to raise money for a new business, find a cure for cancer, and access an online workforce. Many of these subjects allow teachers to customize lessons with videos and articles to fit their students’ interests.
Big Idea 6: The Internet
Let’s look at another example from a different Big Idea. This time Ms. Smith is planning a lesson on EK 6.3.1F:
“Phishing, viruses, and other attacks have human and software components.”
After defining phishing, viruses, and other cyber security threats, Ms. Smith splits her class into three groups of students. For the group that loves social media, she assigns an article about phishing scams on Facebook (like this one). For the group that likes to program, she assigns an article about why people create computer viruses (like this one). For the group that likes technology, she assigns an article about malware. At the end of class, Ms. Smith uses a “round the world” strategy for the groups to share their learning. This way every student is focusing on an aspect of cyber security that they find interesting, while learning about other aspects of the concept from their peers. Even though they all focused on different things, the students come away from the lesson with a better understanding of cyber security in our computerized world.
Clearly these Enduring Understandings leave room for exploration. Knowing your students’ interests and passions will help you create meaningful lessons that are relevant and interesting for each student.
Programming Flexibility
Unlike the AP® Computer Science curriculum, which focuses on specific programming skills students must master using Java, the AP® Computer Science Principles curriculum focuses on the big ideas of programming. For example, students have to understand what a procedure is and why it is helpful when writing large amounts of code. Teachers have lots of flexibility when deciding how to teach these programming concepts. The most commonly used platforms are Scratch and AppInventor.
Scratch
Scratch is a drag and drop programming language that was created by MIT in 2007. Students can use pre-made blocks to create “scripts” or pieces of code that control sprites. Blocks such as “move”, “turn”, and “speak” allow students to make animations while more advanced blocks like the key listeners give students abilities to make elaborate games and programs. The nice part of Scratch is the lack of syntax; students don’t have to memorize rules about semicolons, white space, or brackets. Instead they can focus on the big ideas of programming: loops, conditional statements, lists, concurrency, and more. Scratch is a way to get students excited about coding, especially the ones who would be discouraged by syntax errors.
The Beauty and Joy of Computing curriculum created by UC Berkeley uses Scratch (and Snap, a version that offers more powerful coding tools) as a platform for teaching the programming standards. For example, 5.3.1A, B, and C all focus on the abstraction of procedures:
- “5.3.1 A: Procedures are reusable programming abstractions.”
- “5.3.1 B: A procedure is a named grouping of programming instructions.”
- “5.3.1 C: Procedures reduce the complexity of writing and maintaining programs.”
In Scratch, users can make their own custom block that acts as a procedure. For example, the student could make a “draw square” block that moves the pen on the canvas to create a square.
It won’t take much to convince students that procedures are useful. Ask them to draw 20 different squares on the canvas without a custom block. After dragging and dropping the same blocks over and over, they will be excited to learn that a procedure can be used to make their job significantly easier.
It’s not hard to extend this lesson to cover the benefits of parameters as well. Adding a parameter to the custom block can allow students to make a square of any size. One more parameter (and a little geometry) and the student can make a “draw polygon” block that draws any polygon of any size. With Scratch, students can immediately see the benefits of procedures and parameters without worrying about syntax.
Of course there are some downsides to Scratch; it is meant to be used with students of all ages, so teenagers might be annoyed with the cartoons aimed towards small children. Usually they can be convinced that Scratch is great with an example of a really cool project (like this). Since Scratch is an online application, an Internet connection is crucial. This can also be a drawback for classrooms with poor Wi-Fi or spotty Internet connections.
AppInventor
The other common platform for teaching programming is AppInventor. This tool was developed by MIT and Google in order to make app creation accessible to new programmers. The language is similar to Scratch in that everything is drag and drop. The user interface takes more time to understand than Scratch, but the products are much more impressive. Students can create working apps that they can download to their own Android devices!
The Mobile CSP curriculum uses AppInventor to cover the programming parts of AP® Computer Science Principles, as well as some of the data standards. For example, one of the projects involves making a coin flip simulation app. This project covers a lot of enduring understandings, such as:
- “5.2.1 C: Program instructions may involve variables that are initialized, updated, read, and written.”
- “5.5.1 E: Logical concepts and Boolean algebra are fundamental to programming.”
The project also covers some standards about simulations:
- “2.3.1 A: Models and simulations are simplified representations of more complex objects or phenomena.”
- “2.3.2 F: Simulations can facilitate extensive and rapid testing of models.”
AppInventor does have some drawbacks. There are three ways students can view their projects: on an android device connected to the computer, on an android device connected to Wi-Fi, or with an emulator that simulates an android device on the computer. An android device with Wi-Fi is the most effective; students can immediately see changes that they make to their apps without any lag time. The emulator usually works, but is much slower and often needs to be restarted in order to see changes. Students without an android device might be frustrated by the amount of time it takes to refresh the emulator.
Ideas to Get You Started
Here are some strategies to help you get started planning your APCSP course:
- Look at the curriculum that has already been written. Mobile CSP, Beauty and Joy of Computing, Project Lead the Way, and Code.org all have complete curriculum for an entire APCSP course. These can be great resources to jump-start your planning or provide a starting point to develop your course. Remember that you can always personalize individual lessons for students, even if you are using one of these curriculums.
- Subscribe or frequently check a technology website like Tech News World or The Verge. Websites like these can help you stay in the loop on up to date information as well as give you ideas for future lessons. A “current events” assignment or discussion would fit right into the APCSP course.
- Within the first week of school, conduct a survey or icebreaker activity to get to know your students. Knowing their interests and involvements can help you create lessons that are relatable and interesting to them.
While it may seem overwhelming at first, the flexibility provided by the AP® Computer Science Principles curriculum guide will help teachers create interesting, relevant, and unique learning experiences for students. Lessons about how society has been changed by computers can be personalized to student interests. A variety of tools like Scratch and AppInventor can be used to teach programming concepts without messy and frustrating syntax. The whole idea of APCSP is to create an accessible course for students who don’t know if computer science is for them. With the flexible curriculum framework, teachers can make this accessible course possible.
Meghan Peterson is a math and computer science teacher in Rochester, Minnesota. She graduated from Gustavus Adolphus College in 2013 and is currently working on her Master of Educational Technology degree from Minnesota State University, Mankato. Recently Meghan has been researching visualization strategies in introductory programming courses. Her interests include online programming tutorials, cooking, and reading movie trivia.
Let’s put everything into practice. Try this AP® Computer Science Principles practice question:
Looking for more AP Computer Science Principles practice?
Check out our other articles on AP® Computer Science Principles.
You can also find thousands of practice questions on Albert.io. Albert.io lets you customize your learning experience to target practice where you need the most help. We’ll give you challenging practice questions to help you achieve mastery of AP® US History.
Start practicing here.
Are you a teacher or administrator interested in boosting AP® Computer Science Principles student outcomes?
Learn more about our school licenses here.
2 thoughts on “How the AP® Computer Science Principles Course Provides Teachers Flexibility”
Dear Sir,
I am currently studying IT net working at Juba City Academy in South Sudan. So I think it is beneficial for me to learn computer science if you can help please!
Check out our site for more practice questions: https://www.albert.io/subjects
Comments are closed.