Your browser does not support JavaScript!
Please enable JavaScript to use the full functionality of the site. Without JavaScript, you will not be able to expand the content tables in the PD Materials Page and CSP Index Page.
Professional Development for CS Principles Teaching
Home
The goal of PD4CS is to provide an evidence-based professional development (PD) program to improve teachers’ knowledge to teach CS Principles course. The presented materials aim to prepare teachers to gain a better understanding of common scenarios that students may find confusing in the classroom, and to provide insights on how to respond to their concerns.
The CSP Index provides an alternate access into the PD materials following the CS Principles “Seven Big Ideas” outline. The PLTW Index provides access following PLTW’s CSP course four units outline. Teachers are welcome to also use the material as supplements to their own lessons; multiple posts give suggestions on how to do so. A list of all misconceptions is available here.
Select a topic to find relevant professional development material. [The icon means there are video(s) included in the post.]
▸ Basic Programming Topics
▾ Basic Programming Topics
Variables
In the Variables posts, teachers can explore the challenges and complexities that the concept of variables can present to a new programmer. Videos, examples, and a description of common student misconceptions illustrate the topic at hand.
The Data Structure posts show how data is stored and managed by programs. Examples are given in both Scratch and Python, which helps illustrate the common features of data structures in all languages. The posts also help teachers understand misconceptions and challenges that students face.
The Loop posts use a broad range of examples to illustrate the most effective and correct uses of loops in Scratch and Python. The material helps teachers to better understand loop scenarios students may find confusing and provides insights into how to respond to questions and difficulties students have.
The Function posts illustrate through a wide range of examples the important features and common misconceptions of functions in Python. The material helps teachers gain a better understanding of what students may find confusing and provides insights into how to respond and help students.
Debugging code is an essential part of programming. Debugging is an art, not a science. There exist useful debugging techniques and approaches. This section discusses what bugs are and how to debug.
Want to know how to arrange pancakes doing a minimum number of flips? Use the fewest number of coins to make change? The Algorithms posts discuss a number of classic problems and their algorithmic solutions. Many examples can be presented without programming (Python programs are presented for selected problems).
Recursion is a powerful way of thinking about and solving problems. Recursion means defining something in terms of itself at some smaller scale, perhaps multiple times. Recursive algorithms can lead to conceptually simple programs. The posts give a broad introduction to recursion with numerous examples.
Classes are one of the fundamental concepts used in the development of modern, large-scale software systems. These posts explore the basic concepts of classes and object-oriented programming, provide a number of examples in Python, and illustrate problems and misconceptions that students are likely to have.
Beyond Object-Oriented Programming with classes, modules and packages (two Python terms) are used to provide additional structure for large programs. Although most beginning students do not create modules and packages, they do use both regularly. Even small programs consist of one simple module: the file that contains the program.
The Internet allows convenient and inexpensive communication among people and computers around the world. These posts cover the basic concepts of how the Internet is organized and how the World-Wide Web works.
Git is a software tool that programmers use to track changes to source code. The GitHub website maintains these “repositories" and allows them to be shared among members of a team.
Information security seeks to protect the confidentiality, integrity and availability of computer system data from those with malicious intentions like unauthorized access, change or destruction.
Computer simulation and modeling (SiM) generates information and knowledge about something that happens in the real world without having to test it in the real world. Simulation and modeling is an important area in science and engineering as well as in computer science.
Enormous amounts of data is collected, stored, analyzed, visualized, and use the make and predict decisions. The posts describe guidelines for making effective visualizations and illustrate common mistakes leading to poor and misleading visualizations.
Effective assessment is a challenge every teacher faces. The posts describe various strategies rooted in good fundamental classroom assessment practices and their application in computer science concepts.
Teachers are an important resource for students when it comes to their college decisions. This section presents materials and links to help answer questions about undergraduate computing degrees.
This work is supported by the National Science Foundation under grant number 1502462. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation"