How Might I Structure Daily CS Instruction?
Studying CS challenges us to understand how software applications we work with everyday are built. Our experience combined with the experience of thousands of CS educators over the years has shown that understanding how computing applications work requires lots of hands-on time. This means that your role as a teacher must change from a source of knowledge to a motivator and facilitator.
Below, we provide guidance on how you can structure daily CS instruction utilizing the workshop model to give students more time to work:
- Why use the workshop model for CS instruction?
- Mini lesson
- Independent work time
- Share session
Utilizing the Workshop Model for CS Instruction
We recommend the workshop model for teaching because it maximizes the time allocated toward hands-on student experience with performing a task or solving a problem. Direct and explicit instruction occupies no more than 25 percent of a given classroom period to provide students ample time to get hands-on practice and experience. We discuss more about why this is important in the mini lesson and independent work time sections below.
It is often said that the best way to learn programming is to “just do it”—and that is what the workshop model allows the students to do. Students need time to attempt a solution for a problem, to fail, and then to try again. The workshop model provides the students with that time.
A typical 45-minute workshop model lesson might look like this:
- Warm-Up (5 minutes): Something that reviews previous knowledge (ideally something that is required for today’s lesson).
- Mini lesson (5–10 minutes): Introduce one or two concepts, such as how to complete a task or two. Include as many examples as you can.
- Independent Work Time (25–30 minutes): Provide a tiered problem (or multiple problems) that requires the use of the new concepts in a creative, relevant, and/or interesting fashion.
- Share Session (5 minutes): Group share or discussion of solutions created in the workshop.
The warm-up component of the framework is the focus or topic for the day(s)—that is, what you actually want students to know at the end of the lesson(s). The warm-up activity (Do Now) may also include a recall of the previous lesson.
Many of the lessons span multiple days or periods, so the aims or objectives might be continuous sometimes. However, the “Do Now” should be new every day and refocus students on the topic at hand.
Example CS Do Nows
Here are sample Do Now activity ideas corresponding to the five CS concepts:
- Abstraction: Analyze code to find commands that are repeated
- Programming: Read a few lines of code and predict what it might do
- Algorithms: Given a conditional statement, evaluate whether it would evaluate as true
- Data: Define examples of digital inputs versus analog inputs
- Networks: Describe the parent/child/sibling relationship between specific tags on a sample HTML page.
The mini lesson is the instructional part of the lesson. We find it effective to use the mini lesson as a demonstration and explanation of what students are working on and how students can accomplish the tasks. Occasionally you will have to use more time (especially in the beginning of a topic); sometimes you will use less (such as toward the end when students are finishing their project).
There is a growing body of research on computer science instruction that is trying to uncover the most effective means of communicating CS concepts and the concepts that confound most students, especially those who don’t naturally gravitate to CS. We’ve highlighted some of the more generally applicable, evergreen ideas below:
Short mini lessons
We know from experience that students learn CS best by working on projects they like and then trying, failing and iterating until their programs work the way they want them to work. In a paper submitted to Special Interest Group on Computer Science Education (SIGSCE), an annual conference of CS researchers and educators, Israeli CS education researcher Mordecai Ben-Ari states “Students construct knowledge by combining the experiential world with existing cognitive structures.”
Try to use as little time as possible to explain a concept. Although transmission of information is important, students learn CS by practicing, so try to devote as much time as possible to allowing students to figure things out on their own.
Experiential mini lessons
Building on the idea that students “construct knowledge by combining the experiential world with existing cognitive structures” you can help students develop a mental model of how the computer works by modeling, testing, and iteration during your mini lesson.
CS is a great subject to develop and test theories because unlike the natural sciences, students can get immediate feedback. Ask students to make predictions about the outcome of a few lines of code. Then run the code for them and discuss how their predictions turned out. This helps them build a cognitive structure for programming that will help them during independent work time.
Multiple types of mini lessons
For many students, this computer science (CS) unit might be the first time that they have interacted with a computer this way. Mini lessons may be a little different because the students have not built up intuition about how programming works, and there is no existing cognitive structure to use. You might want to provide students with the following:
- Notes they can annotate or that include short exercises. It is difficult for some students to perform high-level tasks like analysis when they are performing low-level tasks like copying notes. There is a SIGSCE paper by Susan H. Roger that talks in depth about interactive lectures. You can access it free here, if you create a new account.
- Tutorials they can follow at their own pace and at their computers while you circulate. In this structure, students can start off working individually or in small groups, and then you can bring the class together at the end for a large discussion. Check out our video on Flipped Instruction.
- More time to work on projects. As you get deeper into units, students might need more time to work hands-on, iterating, reflecting on their process, and trying to get ready to present their project.
Don’t be afraid to be imprecise at first
It is not important to be extremely precise if students understand enough to help them build a mental model that incorporates the concept from your lesson. This means that sometimes you may choose to ignore certain details when teaching to prevent students from getting bogged down. We recommend you try to use vocabulary that students are familiar with unless it is new vocabulary specifically for the lesson. This seems like a simple enough thing to carry out, but the interconnected nature of many CS concepts can make it more complicated.
Independent Work Time
Teachers really begin seeing the progression of the project during independent work time. You are working with the students to fine-tune what they are doing, refocusing them if they are going in the wrong direction or off on a tangent, and conferencing with them to make sure all students are contributing to the project. Remember, the project could span a few days, so you are looking for progression, thinking outside the box, and movement in the right direction.
- It will take longer for students to transition into different parts of the workshop model (for instance from the mini lesson to the independent work time) because of the added complexity of devices and software.
- In the beginning, have students practice these transitions—moving from “meeting area” to computers, or moving from “Do Nows” to guided practice, and the like. Also, have students practice mundane tasks, such as logging into websites or packing and unpacking robots.
Independent work time can be hard to manage with twenty or more students who are all asking for help. Use the following strategies to make your classroom run more smoothly:
- Model debugging strategies often and post debugging steps on the walls
- Encourage students to ask three other students before asking you - “Ask three before me.”
- Give students green and red cards, green meaning “I’m on track” and red meaning “I’m stuck”, that they can display prominently (such as attaching to their computer monitor, on the side of their table or desk, or on the wall) without having to hold their hands up and completely stop working,
- “Walk a path.” Don’t just go to the raised hands. Instead, walk a purposeful loop around the room. Doing so allows students to have time for productive struggle, and it will allow you to get an overview of the class.
The share session is a great place to find stumbling blocks and identify where students are having difficulties or struggling with specifics. This time can also serve as a formative assessment: which helps instructors and students identify their strengths, identify their weaknesses and to target areas that need work. Your “Aim,” “Down Now,” and “Mini Lesson” for the next day could be shaped by what is discovered.
The share sessions can take the form as exit slips, a class discussion, a survey, or any of the other means of checking for understanding. Sometimes anonymous checks will result in more “honest” responses from the students.
- Embrace your role as a motivator and facilitator!
- The Workshop Model is especially useful in a CS classroom because students need time to work on projects. Also, the Workshop Model gives students more time to puzzle through problems and challenges.
- Use Mini Lessons to help students build their intuition about how computers work. Below are some other resources on this site that will help you:
- Create video tutorials for students to learn content at their own pace and to free you up to work more individually with students.
- Differentiate instruction for students with disabilities and provide strategies for explicit instruction that could be useful during mini lessons.
- Give students strategies to help themselves such as debugging strategies and protocols for asking others for help. This will ensure independent work time stays organized and your time is well spent.
- Check out research from SIGSCE and other CS educator organizations such as the Computer Science Teachers Association (CSTA). Also think about going to the conferences held by these groups.