Student Facing Materials
The main objective of the PD4CS material is to help teachers gain a better understanding of common scenarios that students tend to find confusing in an introductory programming or CS Principles course. Hence, many posts are teacher-facing and focus on providing insight on how to respond to student concerns and misconceptions. A number of posts are, however students-facing or can easily be adapted to be student-facing. The student-facing index gives a listing of student facing PD4CS material and how teachers can most effectively use it.
[Click Tabs To Expand Tables]
UNIT 1: BASIC PROGRAMMING CONCEPTS AND CONSTRUCTS | |
---|---|
Conditionals | |
A Class Project: Monty Hall | The project is based on an intriguing game and surprising statistical puzzle.It gives students an opportunity to plan and implement a program using conditionals. |
Data Structures | |
Strings in Python | Use the string manipulation examples in class to show step-by-step how strings and their methods work. |
Lists and Tuples in Python | Use these coding examples in class to show students step-by-step execution of list and tuple structure and methods. |
Loops in Python | |
Better Deal | The problem gives students a chance to practice the use of loops while also demonstrating the power of exponential growth. Comparing a lump sum of money to the total amount received by doubling pennies over the course of a month is a valuable lesson. Offer the video as extra instruction and utilize two versions of the code. |
Sum up the Digits I | Compute the sum of the digits of an integer using a while loop. Use as an exercise to help your students think through the process of a while loop. |
Sum up the Digits II | Can you solve the problem using a for loop? The post explains how to do it. |
Are these loops doing the same thing | Ask your students to figure out if these loops produce the same output. It is a great exercise in understanding how loops work. |
Nested Loops in Python | |
Sum up the digits III | Another program solving this problem: this time with nested loops. |
Printing stars | A simple example helping students think through the flow of executing in a nested look. Suited for in-class. |
Finding prime numbers | Talk about prime numbers and have students write a program finding all prime numbers between 1 and n. |
Functions | |
What to avoid and what to do when writing functions | Ask students to use the guidelines for writing good functions to improve their code and coding skills. |
Comparing the performance of two functions | Ask students to compare two functions solving the same problem and to determine what each version does, how they are different, and explain why one version might be better. |
Functions – A Class Project | Use the project on Appliance Store Commissions to give students the opportunity to use specifications for functions that have applications. |
UNIT 2: MORE ADVANCED PROGRAMMING TOPICS | |
---|---|
Debugging | |
Common Mistakes not Producing an Error Message | These examples show common mistakes made in Python and how to fix them. Give students the opportunity to run the code and fix the errors. |
Algorithms – Solving Problems | |
An intriguing problem | This non-programming problem challenges students to use creative problem-solving skills to identify the lighter suitcase. |
Make a profit | This project asks students to develop and implement an algorithm to solve bank-related problems, such as how to organize account transactions to maximize a bank’s profit. |
Flipping pancakes | Let students figure out an algorithm to arrange pancakes in order of size with the minimum number of flips. It gives them a chance to come up with an algorithm to solve a fun problem. |
Recursion – Algorithms | |
Searching in a sorted list | Teach your students recursion using binary search. The code provided includes a recursive and a non-recursive version of the problem. |
Reversing a string | Implement the reversing string problem using recursion. The problem is simple to understand but challenging to implement with recursion. |
Pretty things | Show your students recursion visually using fractals. The post includes code and pictures of several types of fractals. |
Classes & Objects | |
Syntax | Use the fun Horse class to introduce classes and objects to students--includes key words, variables, and methods. |
Python Built-in Class Examples | After introducing the concepts of classes and objects, use these four examples of built-in classes to further explore the ideas. Bringing in the old ideas can make the new ideas more accessible to the students. |
Appliance Store returns | Revisit the Appliance Store project in the context of classes and objects. Students will define and use a new class according to specifications. |
UNIT 3: SELECTED OTHER TOPICS | |
---|---|
Internet | |
HTML | Introduce HTML to students with the provided video and code examples. The explanations show students the overall structure and results of HTML code. |
CSS | Introduce CSS to students with videos and examples of CSS code. Students can see the CSS code and the corresponding result to understand how CSS works. |
Javascript | Show the video and examples of Javascript code in class, allowing students to see how basic structure, interaction, and results of Javascript. |
Information Security | |
Public-key cryptography | Discover public-key cryptography with this non-programming activity. Students use creative problem-solving to come up with a solution based on public-key concepts. |
Discussion Topics | These discussions and linked articles provide a good way to introduce some controversial subjects related to privacy, social media, and the government. Ask students to read the articles, and have a class discussion about ethical uses of social media or the rights of the government vs. the rights of citizens. |
Rotation cipher | Implement an alphabetic rotation cipher using a class definition and loops, then write another program to break the cipher using a brute-force attack. |
The following video describes the Student Facing Materials. Video Length: 7:39