1 of 114

Table of Contents

Session 1

Session 3

Session 2

  • Transition to Asynchronous

Session 4

  • Transition to Asynchronous

2 of 114

@TeachCode

Virtual Professional Learning Program Summer 2022

Computer Science A

As you enter:

  1. Take attendance: https://code.org/pd/PBNP
  2. Get today’s slides: https://sites.google.com/ucsd.edu/cs-a-create-uc-san-diego/slides
  3. As a teacher, what is the one thing you would be willing to give up (in chat):

Faculty meetings? “Reply All” email feature? Pep rallies (or other whole school events)?

Module 2

Students Belonging in CSA

3 of 114

Session 1

4 of 114

Introduction to

Module 2

5 of 114

Ready For More?

@TeachCode

6 of 114

Norms Check-in

Our norms:

  • Be present.
  • Make space and take space.
  • Seek to understand.
  • Take risks.
  • Expect and accept non-closure.

@TeachCode

7 of 114

Theme of the Day:

Students Belonging in CSA

8 of 114

Today’s Agenda

Workshop Opener - Facilitator Presentation

Asynchronous Debrief

Model Lesson 4: U1L13 - PatternPainter - Lesson Exploration

Identify as a Software Engineer - Discussion Based

High Level Overview: Show What You Know Week - Lesson Exploration

Asynchronous

Asynchronous Debrief

High Level Overview: Variables, Operators, and Expressions - Lesson Exploration

High Level Overview U2L3 - Attributes

Asynchronous

@TeachCode

9 of 114

Gots and Needs Recap

What I Got:

Some of the resources that are available

A look at the code.org platform

@TeachCode

10 of 114

Gots and Needs Recap

Need to learn more about…

When we’ll talk about this

What is on the AP Test?

On Thursday we will look at the AP exam format.

This is also a topic we will cover in much greater detail in the academic year workshops.

@TeachCode

11 of 114

Asynchronous Debrief

12 of 114

Asynchronous Debrief

Based on your CS Experience, what has been an effective way to support students in building their debugging skills?

  • Helping students understand and learn to read the error codes.
  • Giving students code with known bugs in it in order to help give them focused practice.
  • Small steps and run your code often to check for errors vs build all the code and then run it.
  • Practice talking through code.
  • Keeping a digital journal of the errors. *Something the whole class utilizes.*

@TeachCode

13 of 114

Asynchronous Debrief

Based on what you saw in the lesson plans, what is the role of the teacher during this lesson? What is the teacher doing throughout the lesson?

  • Understanding the purpose/objectives of the task/lesson/unit
  • Scaffolding
  • Discussion Facilitation
  • Clarifying
  • Helping students work their “debugging muscles”
  • Directing students to resources

@TeachCode

14 of 114

Model Lesson #3:

U1L13 - PatternPainter

@TeachCode

15 of 114

Model Lesson

@TeachCode

@TeachCode

16 of 114

Hats on!

Teacher - This will be one of the facilitators

Learner - This group acts in the role of student

Observer - The facilitator observes the lesson and leads a discussion after the modeled lesson

@TeachCode

17 of 114

Lesson

18 of 114

Unit 1 - Lesson 13

PatternPainter

19 of 114

Warm Up

20 of 114

Unit 1 Lesson 13 - Warm Up

What is Pair Programming?

Manipulates the keyboard and the mouse

Gives input, helps debug, keeps track of the big picture

Swap between roles every 3 minutes.

BOTH ARE TALKING THE ENTIRE TIME AND WORKING TOGETHER!

Driver

Navigator

CSA

21 of 114

Activity

22 of 114

Lesson Objectives

  • Write a subclass that extends a superclass
  • Use decomposition (breaking down complex problems into more manageable parts) to develop algorithms
  • Translate algorithms to void methods to add new behaviors to an existing class

Unit 1 Lesson 13 - Activity

CSA

23 of 114

An inheritance hierarchy is where a class serves as a superclass for more than one subclass.

Unit 1 Lesson 13 - Activity

Painter

PainterPlus

???

CSA

24 of 114

PatternPainter

You should have:

PatternPainter handout �(on page 22 of your Activity Packet)

pen / pencil

Unit 1 Lesson 13 - Activity

CSA

25 of 114

Prompt

Why should we make a new type of Painter instead of adding methods for this problem to PainterPlus?

Unit 1 Lesson 13 - Activity

Which should this new class extend – Painter or PainterPlus?

HOLD thatTHOUGHT

CSA

26 of 114

Do This:

With a partner/group, create a UML diagram for the PatternPainter class and write pseudocode for the methods you need to write on the PatternPainter handout.

B/O Rooms (3 people): 30 Minutes--start by sharing your favorite part of summer

Unit 1 Lesson 13 - Activity

CSA

27 of 114

The Painter class has a setPaint(int paint) method we can use to set the amount of paint a Painter object has.

For example, we can call myPainter.setPaint(10); to set the amount of paint the myPainter object has to 10.

Unit 1 Lesson 13 - Activity

Painter

xLocation

yLocation

direction

remainingPaint

void turnLeft()

void move()

void paint(String color)

void scrapePaint()

int getMyPaint()

void takePaint()

boolean isOnPaint()

boolean isOnBucket()

boolean hasPaint()

boolean isFacingNorth()

boolean isFacingEast()

boolean isFacingSouth()

boolean isFacingWest()

String getColor()

int getX()

int getY()

String getDirection()

void setPaint(int paint)

boolean canMove()

boolean canMove(String direction)

CSA

28 of 114

PatternPainter

Lesson 13: PatternPainter

Unit 1 Lesson 13 - Activity

  • With you partner, navigate to Lesson 13, Level 1
  • Complete the Check for Understanding on Level 1
  • Continue to Level 2 to write your PatternPainter class (suggest copy/paste PainterPlus.java in)
  • On Level 3, use your PatternPainter class to create a mural of your pattern

You should switch drivers and navigators every 4 minutes.

CSA

Do This:

1

29 of 114

Do This:

Unit 1 Lesson 13 - Activity

Commit Your Code!

Commit Code

Save your new subclass to the Backpack.

CSA

30 of 114

Unit 1 Lesson 13 - Activity

T

A

G

Tell them something you like about their code.

Ask them something about the code.

Give a suggestion for improvement.

CSA

31 of 114

Code Review

It's time to . . .

Unit 1 Lesson 13 - Activity

MY CODE!

CSA

32 of 114

Code Review: Level 4

Questions to Consider:

  • Am I able to understand the code easily?
    • PLUG for DOCUMENTATION!
  • Can you think of any inputs that could break the code?
  • Is error handling provided to handle edge cases?
    • a bug that occurs at the highest or lowest end of a range of possible values or in extreme situations

Unit 1 Lesson 13 - Activity

CSA

RETURN

Send code

to author.

REVIEW

Write comments.

REQUEST

Ask for specific feedback.

COMMIT

Track your progress.

33 of 114

Wrap Up

34 of 114

Prompt

What is the story behind�your PatternPainter?

What does the pattern�it creates represent?

Unit 1 Lesson 13 - Wrap Up

CSA

35 of 114

Today you learned about . . .

  • Writing a subclass that extends a superclass
  • Using decomposition to develop algorithms
  • Translating algorithms to void methods to add new behaviors to an existing class

Unit 1 Lesson 13 - Wrap Up

CSA

36 of 114

Key Vocabulary

Inheritance Hierarchy: Where a class serves as a superclass for more than one subclass

Unit 1 Lesson 13 - Wrap Up

CSA

37 of 114

Debrief

38 of 114

Debrief

Learner Reflection:

  • As a learner, in what ways was pair programming a productive experience for you?
  • In what ways was pair programming frustrating?

Curriculum Guide: Page 28

@TeachCode

39 of 114

Debrief

Teacher Reflection

@TeachCode

40 of 114

Debrief

Whole Group Discussion:

  • As a teacher, if you have used Pair Programming, how has it impacted your classroom culture?
    • What pain points or concerns do you have around Pair Programming?
    • What have you learned about teaching CS by doing pair programming in your classrooms?
  • As a teacher, if you haven’t used Pair Programming, what has prevented you from using pair programming in your classroom? What questions do you have?

@TeachCode

41 of 114

@TeachCode

8 min Break

42 of 114

Identity as a Software Engineer

@TeachCode

43 of 114

Identity

Journal Prompt:

  • Write down identities you claim

I am:

Mom

Teacher

Athlete

Photographer

Writer

Note: You will not be required to share anything you write down here.

@TeachCode

44 of 114

Big 8 Identities

@TeachCode

45 of 114

Identity

Journal:

  • Create a pie chart for how important the aspects of your identity are at work

“Important” here is relative. This might mean:

  • What aspects of your identity influence your interactions with others?
  • What aspects of your identity are you most/least aware of at work?
  • What aspects of your identity are others most/least aware of at work?
  • What aspects of your identity impact your approach to your work?

Note: You will not be required to share anything you write down here.

Teacher

Mom

Writer

@TeachCode

46 of 114

Discussion

Prompt:

  • How do you think your largest slice impacts your experiences at work?
    • With administration?
    • With other teachers?
    • With students?

@TeachCode

47 of 114

Why identity is important in CSA

If our identities impact our experiences in work and our beliefs about CS, we can assume the same is true for students.

As code.org developed the curriculum we kept this in mind. Let’s revisit how this is represented in the curriculum.

@TeachCode

48 of 114

Identity in the Curriculum

49 of 114

Why identity is important in CSA

If our identities impact our experiences in work and our beliefs about CS, we can assume the same is true for students.

Do this:

  • In the Curriculum Guide:
    • Read page 18 on Software Engineering for all.

@TeachCode

50 of 114

Software Engineering

Software Engineering in Unit 1

The following are specific lessons which build students' understanding of the skills of software engineers:

  • U1L1 - Welcome to CSA
  • U1L8 - Code Reviews
  • U1L15 - Open Source Code

@TeachCode

51 of 114

Software Engineering

U1L1 - Welcome to CSA

Students brainstorm Who, What, or Where do they think of when they hear the phrase “software engineering”

@TeachCode

52 of 114

Software Engineering

U1L1 - Welcome to CSA

Students watch a video featuring software engineers and learn about software engineering characteristics

@TeachCode

53 of 114

Software Engineering

U1L8 - Code Reviews

Students learn that software engineers use code reviews to develop code that is easy for others to read, maintain, and modify over time

@TeachCode

54 of 114

Software Engineering

U1L8 - Code Reviews

Students identify the importance of commenting and program structure to improve readability

@TeachCode

55 of 114

Software Engineering

U1L8 - Code Reviews

Students learn about code reviews and practice giving and receiving feedback.

@TeachCode

56 of 114

Software Engineering

U1L15 - Open Source Code

Students examine open source code and connect real-world applications and the concepts they have learned in this unit.

@TeachCode

57 of 114

Software Engineering

U1L15 - Open Source Code

Students review the characteristics of software engineers and reflect on how they demonstrate these characteristics while planning and implementing solutions.

@TeachCode

58 of 114

Why Identity Is Important In CSA

U1L15 - Open Source Code

This is an opportunity for students to see how much they have learned since the beginning of the school year and that they can now read and make sense of code from industry.

@TeachCode

59 of 114

High Level Overview:

Show What You

Know Week

@TeachCode

60 of 114

Show What You Know Week

The “Show what you know” week

@TeachCode

61 of 114

Show What You Know Week

3 parts to the “Show what you know” week:

  1. 3-lesson project (with 1-lesson option available)
  2. 1 FRQ day
  3. 1 Assessment day

@TeachCode

62 of 114

FRQ Philosophy

63 of 114

FRQ Philosophy

Why have an FRQ day?

  • The AP test has four FRQs on the exam
    • Students have to handwrite Java code to a given prompt
  • We build upon student’s reading and writing skills in each unit.

@TeachCode

64 of 114

FRQ Philosophy

Do This:

  • Go to Unit 1, Lesson 19 lesson plan to open up the FRQ
  • Look over the FRQ task
  • Underline vocabulary from Unit 1 in the question prompt

@TeachCode

65 of 114

FRQ Philosophy

FRQ Scaffolding:

Units 1-5 have a “group work” component to the FRQ days.

@TeachCode

66 of 114

Transition to Asynchronous

Session 2

67 of 114

Your Assignment: The PLACE

68 of 114

Managing the Asynchronous Session

Support:

  • Zoom Call Open during this Session

Planning your Time:

  • Return to asynchronous discussions throughout the asynchronous session to respond.
  • Decide when you will work, for how long, and when you will take a lunch break.

Be back at

1:15pm

@TeachCode

69 of 114

Async Session #2 and Lunch Break in progress

Return time for Afternoon Session: 1:15pm

70 of 114

Session 3

71 of 114

Asynchronous Debrief

72 of 114

Looking at Student Work - Unit 1

What did you learn by engaging in this process?

A reminder of the questions:

  • What does this student know how to do?
  • What does this student seem to be on the verge of understanding?
  • Given what you see here, what does this student seem to value?

@TeachCode

73 of 114

Looking at Student Work - Efficiency

Prompts:

  • In what ways does this code show that a student is able to write efficient code?
  • In what ways could this student improve their efficiency?

BREAK OUT (3/group): 5 MINUTES

@TeachCode

74 of 114

Project Philosophy

75 of 114

Projects in the Curriculum

Philosophy of Projects in CSA

  • Essential processing time for students and the content
  • Time for students to be creative and expressive in CS

@TeachCode

76 of 114

Projects in the Curriculum

Data for Social Good

Unit 4 Project

Abstract Data Art

@TeachCode

77 of 114

High Level Overview: Variables, Operators, and Expressions

@TeachCode

78 of 114

Variables in Java

79 of 114

UNIT 2: Lesson 1

@TeachCode

80 of 114

Unit 2 Lesson 1

Do This:

  • Go to Unit 2, Lesson 1, Level 1
  • What do you think your students will predict on this level?
  • What questions will this raise for students?

@TeachCode

81 of 114

Unit 2 Lesson 1

As you watch the video, keep an eye out for the syntax for declaring and initializing variables.

@TeachCode

82 of 114

Unit 2 Lesson 1

Key Vocabulary

int myInteger = 125;

myInteger = 278;

Assignment operator (=)

This is used to initialize or change the value stored in a variable

@TeachCode

83 of 114

Unit 2 Lesson 1

Key Vocabulary

Primitive Data Types

Reference Data Types

double

decimal values, like 3.2 or 8273.981

int

whole numbers, like 7 or 6784

boolean

true or false

Painter

@TeachCode

84 of 114

Operations and Expressions

85 of 114

Lesson 2

@TeachCode

86 of 114

Unit 2 Lesson 2

Do This:

  • Go to Unit 2, Lesson 2, Level 1
  • Do you think your students will be surprised by the result?

@TeachCode

87 of 114

Unit 2 Lesson 2

Lesson 2 Independent Exploration Options

OPTIONAL B/O Rooms: 10 Minutes

Take a look at the slides for this lesson.

You can find the slides linked off the lesson plan

Stay working in the levels and see if you can do the activities in Code Studio.

If you get stuck, look at the slides

Triangulate the lesson plan, slides, and activities to get a good feel of what students will do during this lesson

Less Comfortable

Somewhat Comfortable

Very Comfortable

@TeachCode

88 of 114

BREAK: 8 MINUTES

@TeachCode

89 of 114

High Level Overview

Lesson Exploration: U2L3 Attributes

@TeachCode

90 of 114

Lesson

91 of 114

Unit 2 - Lesson 3

Attributes

92 of 114

Prompt

What attributes does a�Painter object have?

Unit 2 Lesson 3 - Warm Up

How were those attributes changed? Were we able to change them directly?

Painter

xLocation : Integer

yLocation : Integer

direction : Direction

remainingPaint : Integer

void move()

void turnLeft()

void paint(String color)

int getMyPaint()

void takePaint()

boolean isOnPaint()

boolean isOnBucket()

boolean hasPaint()

boolean canMove(String direction)

boolean canMove()

String getColor()

boolean isFacingNorth()

boolean isFacingEast()

boolean isFacingSouth()

boolean isFacingWest()

CSA

93 of 114

Activity

94 of 114

Lesson Objectives

  • Create instance variables to represent attributes
  • Explain the purpose of encapsulation
  • Differentiate between public and private access

Unit 2 Lesson 3 - Activity

CSA

95 of 114

Lesson 3: Attributes

Unit 2 Lesson 3 - Activity

Predict: Accessing Attributes

  • Navigate to Lesson 3, Level 1
  • Predict the output of the program
  • Run it to compare your prediction with the results

CSA

Do This:

1

96 of 114

Prompt

What did you notice about the code in this program?

What do you wonder about the code in this program?

Unit 2 Lesson 3 - Activity

CSA

97 of 114

Encapsulation is an object-oriented programming concept where the instance variables of a class are hidden from other classes and can be accessed only through the methods of the class.

An access modifier is used to set the visibility of classes, variables, constructors, and methods.

Unit 2 Lesson 3 - Activity

public

visible to all classes in a program

private

visible to only inside the class

CSA

98 of 114

Prompt

When would encapsulation be useful?

Unit 2 Lesson 3 - Activity

HOLD thatTHOUGHT

Why would we use the keyword public?

Why would we use the keyword private?

public

visible to all classes in a program

private

visible to only inside the class

CSA

99 of 114

We write instance variables in a class to represent its attributes.

Unit 2 Lesson 3 - Activity

Painter

xLocation : Integer

yLocation : Integer

direction : Direction

remainingPaint : Integer

void move()

void turnLeft()

void paint(String color)

int getMyPaint()

void takePaint()

boolean isOnPaint()

boolean isOnBucket()

boolean hasPaint()

boolean canMove(String direction)

boolean canMove()

String getColor()

boolean isFacingNorth()

boolean isFacingEast()

boolean isFacingSouth()

boolean isFacingWest()

An attribute is a characteristic of an object.

attributes

public class Painter {

private int xLocation;

private int yLocation;

private Direction direction;

private int remainingPaint;

. . .

}

CSA

100 of 114

A Pet might have attributes like:

  • name
  • breed
  • age

A Song might have attributes like:

  • title
  • artist
  • length

A SocialMediaPost might have attributes like:

  • username
  • message
  • number of likes

Unit 2 Lesson 3 - Activity

CSA

101 of 114

Instance Variables and Attributes

As you watch the video, keep an eye out for the syntax for declaring instance variables.

Complete the guided notes on page 14 of the Activity Packet.

Unit 2 Lesson 3 - Activity

CSA

102 of 114

Prompt

Consider your favorite hobby. You want to create a program to track some aspect of your hobby.

What are some other classes we might design for this program?

Unit 2 Lesson 3 - Activity

CSA

103 of 114

Unplugged Activity

104 of 114

Designing an Object

In breakout rooms:

  • You will have 20 minutes!
  • Watch the video example for the unplugged activity in this lesson
  • Discuss with your group the advantages and disadvantages of building a mental model like this in class
  • Fill out your group slide, answering the questions:
    • What questions do you foresee students having about classes, attributes and encapsulation?
    • How does using manipulatives in CS impact the types of questions students might have in class?

@TeachCode

105 of 114

Designing an Object

@TeachCode

106 of 114

Table Group # 1

What questions do you foresee students having about classes, attributes and encapsulation?

How does using manipulatives in CS impact the types of questions students might have in class?

@TeachCode

107 of 114

Table Group # 2

What questions do you foresee students having about classes, attributes and encapsulation?

How does using manipulatives in CS impact the types of questions students might have in class?

@TeachCode

108 of 114

Table Group # 3

What questions do you foresee students having about classes, attributes and encapsulation?

How does using manipulatives in CS impact the types of questions students might have in class?

Manipulatives might confuse some students more than others.

What do the manipulatives represent?

How do you know when and where to use everything.

She put the attributes as variable inside, so they were private, and then she used them on the outside, so were they private or public?

@TeachCode

109 of 114

Transition to Asynchronous

Session 4

110 of 114

Your Assignment: The PLACE

111 of 114

Managing the Asynchronous Session

Support:

  • Zoom Call Open during this Session

Planning your Time:

  • Return to asynchronous discussions throughout the asynchronous session to respond.
  • Decide when you will work, for how long, and when you will take a break.

@TeachCode

112 of 114

Take the daily survey!

Please fill out the end of day survey!

studio.code.org/pd/workshop_survey/day/2

Background on this survey:

  • Code.org sees responses and makes changes to the workshop based on your feedback.
  • Facilitators see de-identified responses and use the feedback to inform the next day’s workshop.
  • Regional partners may also use this data to make adjustments.

@TeachCode

113 of 114

Async Session #4 in progress

114 of 114

Parking Lot

Enter questions here

@TeachCode