PBS News Hour's Student Reporting Labs connect students with a network of public broadcasting mentors, an innovative journalism curriculum and an online collaborative space to develop digital media, critical thinking, and communication skills while producing original news reports.
Use these journalism and news literacy curriculum resources to help students produce high-quality, relevant stories that connect your community to national and global current events.
People often become frustrated with computers and other digital devices. At some point when using these devices, you are likely to become annoyed that the system did something you didn't want it to do, or you can't figure out how to get the computer to do what you want, but why is that? Humans made computers, so why are computers often so frustrating for humans to use?
Human-computer interaction (HCI) is about trying to make programs useful, usable, and accessible to humans. It goes way beyond choosing layouts, colors, and fonts for an interface. It's strongly influenced by the psychology of how people interact with digital devices, which means understanding many issues about how people behave, how they perceive things, and how they understand things so that they feel that a system is working to help them and not hinder them. By understanding HCI, developers are more likely to create software that is effective and popular. If you ask people if they have ever been frustrated using a computer system, you’ll probably get a clear message that HCI isn’t always done well.
This chapter explores user interfaces, usability, and overall user experience with technology.
This lesson attempts to walk students through the iterative development process of building an app (basically) from scratch that involves the use of if statements. Following an imaginary conversation between two characters - Alexis and Michael - students follow the problem solving and program design decisions they make for each step of constructing the app. Along the way, they decide when and how to break things down into functions, and of course, discuss the logic necessary to make a simple game.
if
The last step - writing code that executes an end-of-game condition - students must do on their own. How they decide to use if statements to end the game will require some creativity. The suggested condition - first to score 10 points - is subtly tricky and can be written in many different ways.
At the conclusion of the lesson, there is three practice Create PT-style questions as well as resources explaining the connection between this lesson and the actual Create PT. Depending on how you use these materials they can easily add an additional day to this lesson.
Students will be able to:- write code to implement solutions to problems from pseudocode or description.- follow the iterative development process of a collaboratively created program.- develop and write code for conditional expressions to incorporate into an existing program.- write a large program from scratch when given directions for each step.
Note: You will need to create a free account on code.org before you can view this resource.
Students will extend the My Favorite Things app they built in the previous lesson so that it now manages and displays a collection of images and responds to key events. Students are introduced to the practice of refactoring code in order to keep programs consistent and remove redundancies when adding new functionality. As part of learning to use key events, students are shown that event handlers pass a parameter which contains additional information about the event. This lesson also serves as further practice at using arrays in programs.
Students will be able to:- use an array to maintain a collection of data in a program.- create apps that allow user interaction through key events.- refactor code in order to appropriately incorporate new functionality while maintaining readability and consistency.
Students continue to practice working with arrays and are introduced to a new user interface element, the canvas. The canvas includes commands for drawing simple geometric shapes (circles, rectangles, lines) and also triggers mouse and key events like any other user interface element. Over the course of the lesson, students combine these features to make an app that allows a user to draw an image while recording every dot drawn on the canvas in an array. By processing this array in different ways, the app will allow students to redraw their image in different styles, like random, spray paint, and sketching. Along the way, students use their knowledge of functions with return values to make code which is easy to manage and reuse.
Students will be able to:- programmatically control the canvas element in response to user interactions.- maintain a dynamically generated array through the running of a program in order to record and reuse user input.- use nested loops within a program to repeat a command on the same array index multiple times.- perform variable arithmetic within an array index to access items in an array by their relative position.
Now that students have had the chance to see and evaluate various data visualizations, they will learn to make visualizations of their own. This lesson teaches students how to build visualizations from provided datasets. The levels in Code Studio provide a detailed walkthrough of how to use Google Sheets to create several different kinds of charts. While this lesson focuses on the Google Sheets tool, other tools may be substituted at the teacher’s discretion, and MS Excel support is coming soon to the lesson.
The main activity teaches students to build different chart types (scatter, line, and bar charts) from a single data set. It should be emphasized to students that the purpose of this lesson is to explore and experiment with creating different types of visualizations, not to build the perfect chart. Students will have a chance to create and customize their own charts. At the end of class, students compare their custom visualizations with those of their classmates.
Students will be able to:- select the appropriate type of data visualization to discover trends and patterns within a dataset.- create a bar, line, and scatter chart from a dataset using a computational tool.- use the settings of a data visualization tool to manipulate and refine the features of a data visualization.
For this Practice PT students will analyze the data that they have been collecting as a class in order to demonstrate their ability to discover, visualize, and present a trend or pattern they find in the data. Leading up to this lesson, students will have been working in pairs to clean and summarize their data. Students should complete this project individually but can get feedback on their ideas from their data-cleaning partner.
Note: This is NOT the official AP® Performance Task that will be submitted as part of the Advanced Placement exam; it is a practice activity intended to prepare students for some portions of their individual performance at a later time.
Students will be able to:- create summaries of a dataset using a pivot table.- manipulate and clean data in order to prepare it for analysis.- explain the process used to create a visualization.- design a visualization that clearly presents a trend, pattern, or relationship within a dataset.- create visualizations of a dataset in order to discover trends and patterns.- draw conclusions from the contents of a data visualization.
This lesson is a capstone to the Internet unit. Students will research and prepare a flash talk about an issue facing society: either Net Neutrality or Internet Censorship. Developing an informed opinion about these issues hinges on an understanding of how the Internet functions as a system. Students will prepare and deliver a flash talk that should combine forming an opinion about the issue and an exhibition of their knowledge of the internet.
This lesson is good practice for certain elements of the AP Explore Performance Task. The primary things practiced here are: doing a bit of research about impacts of computing (though here it’s specifically about the Internet), explaining some technical details related to ideas in computer science, and connecting these ideas to global and social impacts. Students will practice synthesizing information, and presenting their learning in a flash talk.
This lesson has dual purposes of honing "rapid research" skills and tying a temporary bow on the Internet Unit.
The act of doing "rapid research" is one that will come up over and over again in this course. We want to build students' confidence and skills in researching topic using a variety of sources. In the case of this lesson we want students to read articles on the issues but scan for the terms and vocabulary they know like: IP, DNS, HTTP, routing, packets, scaling, redundancy, and reliability. We want students to be able to explain with some level of technical proficiency how these things work as well as the potential beneficial and harmful effects.
Net Neutrality and Internet Censorship are related issues having to do with organizations attempting to control internet traffic for a variety of reasons. There are many other large societal issues and dilemmas related to the Internet besides these that like: big data, surveillance, security, and encryption. We address these issues in Unit 4: Big Data and Privacy. For this practice PT, we want to keep the focus on issues that relate more directly to the systems and protocols
Students will be able to:- research a global impact of the Internet.- create and present a flash talk on a global impact of the Internet.- analyze the relationship of an Internet technology to the impact.