Table of Contents
Session 2 | Session 4 |
@TeachCode
Virtual Professional Learning Program Summer 2022
Computer Science A
As you enter:
Faculty meetings? “Reply All” email feature? Pep rallies (or other whole school events)?
Module 2
Students Belonging in CSA
Session 1
Introduction to
Module 2
Ready For More?
@TeachCode
Norms Check-in
Our norms:
@TeachCode
Theme of the Day:
Students Belonging in CSA
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
Gots and Needs Recap
What I Got: |
Some of the resources that are available |
A look at the code.org platform |
@TeachCode
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
Asynchronous Debrief
Asynchronous Debrief
Based on your CS Experience, what has been an effective way to support students in building their debugging skills?
@TeachCode
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?
@TeachCode
Model Lesson #3:
U1L13 - PatternPainter
@TeachCode
Model Lesson
@TeachCode
@TeachCode
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
Lesson
Unit 1 - Lesson 13
PatternPainter
Warm Up
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
Activity
Lesson Objectives
Unit 1 Lesson 13 - Activity
CSA
An inheritance hierarchy is where a class serves as a superclass for more than one subclass.
Unit 1 Lesson 13 - Activity
Painter
PainterPlus
???
CSA
PatternPainter
Unit 1 Lesson 13 - Activity
CSA
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 that�THOUGHT
CSA
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
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
PatternPainter
Lesson 13: PatternPainter
Unit 1 Lesson 13 - Activity
You should switch drivers and navigators every 4 minutes.
CSA
Do This:
1
Do This:
Unit 1 Lesson 13 - Activity
Commit Your Code!
Commit Code
Save your new subclass to the Backpack.
CSA
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
Code Review
It's time to . . .
Unit 1 Lesson 13 - Activity
MY CODE!
CSA
Code Review: Level 4
Questions to Consider:
Unit 1 Lesson 13 - Activity
CSA
RETURN
Send code
to author.
REVIEW
Write comments.
REQUEST
Ask for specific feedback.
COMMIT
Track your progress.
Wrap Up
Prompt
What is the story behind�your PatternPainter?
What does the pattern�it creates represent?
Unit 1 Lesson 13 - Wrap Up
CSA
Today you learned about . . .
Unit 1 Lesson 13 - Wrap Up
CSA
Key Vocabulary
Inheritance Hierarchy: Where a class serves as a superclass for more than one subclass
Unit 1 Lesson 13 - Wrap Up
CSA
Debrief
Debrief
Learner Reflection:
Curriculum Guide: Page 28
@TeachCode
Debrief
Teacher Reflection
@TeachCode
Debrief
Whole Group Discussion:
@TeachCode
@TeachCode
8 min Break
Identity as a Software Engineer
@TeachCode
Identity
Journal Prompt:
I am:
Mom
Teacher
Athlete
Photographer
Writer
Note: You will not be required to share anything you write down here.
@TeachCode
Big 8 Identities
@TeachCode
Identity
Journal:
“Important” here is relative. This might mean:
Note: You will not be required to share anything you write down here.
Teacher
Mom
Writer
@TeachCode
Discussion
Prompt:
@TeachCode
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
Identity in the Curriculum
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:
@TeachCode
Software Engineering
Software Engineering in Unit 1
The following are specific lessons which build students' understanding of the skills of software engineers:
@TeachCode
Software Engineering
U1L1 - Welcome to CSA
Students brainstorm Who, What, or Where do they think of when they hear the phrase “software engineering”
@TeachCode
Software Engineering
U1L1 - Welcome to CSA
Students watch a video featuring software engineers and learn about software engineering characteristics
@TeachCode
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
Software Engineering
U1L8 - Code Reviews
Students identify the importance of commenting and program structure to improve readability
@TeachCode
Software Engineering
U1L8 - Code Reviews
Students learn about code reviews and practice giving and receiving feedback.
@TeachCode
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
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
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
High Level Overview:
Show What You
Know Week
@TeachCode
Show What You Know Week
The “Show what you know” week
@TeachCode
Show What You Know Week
3 parts to the “Show what you know” week:
@TeachCode
FRQ Philosophy
FRQ Philosophy
Why have an FRQ day?
@TeachCode
FRQ Philosophy
Do This:
@TeachCode
FRQ Philosophy
FRQ Scaffolding:
Units 1-5 have a “group work” component to the FRQ days.
@TeachCode
Transition to Asynchronous
Session 2
Your Assignment: The PLACE
Managing the Asynchronous Session
Support:
Planning your Time:
Be back at
1:15pm
@TeachCode
Async Session #2 and Lunch Break in progress
Return time for Afternoon Session: 1:15pm
Session 3
Asynchronous Debrief
Looking at Student Work - Unit 1
What did you learn by engaging in this process?
A reminder of the questions:
@TeachCode
Looking at Student Work - Efficiency
Prompts:
BREAK OUT (3/group): 5 MINUTES
@TeachCode
Project Philosophy
Projects in the Curriculum
Philosophy of Projects in CSA
@TeachCode
Projects in the Curriculum
Data for Social Good
@TeachCode
High Level Overview: Variables, Operators, and Expressions
@TeachCode
Variables in Java
UNIT 2: Lesson 1
@TeachCode
Unit 2 Lesson 1
Do This:
@TeachCode
Unit 2 Lesson 1
As you watch the video, keep an eye out for the syntax for declaring and initializing variables.
@TeachCode
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
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
Operations and Expressions
Lesson 2
@TeachCode
Unit 2 Lesson 2
Do This:
@TeachCode
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
BREAK: 8 MINUTES
@TeachCode
High Level Overview
Lesson Exploration: U2L3 Attributes
@TeachCode
Lesson
Unit 2 - Lesson 3
Attributes
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
Activity
Lesson Objectives
Unit 2 Lesson 3 - Activity
CSA
Lesson 3: Attributes
Unit 2 Lesson 3 - Activity
Predict: Accessing Attributes
CSA
Do This:
1
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
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
Prompt
When would encapsulation be useful?
Unit 2 Lesson 3 - Activity
HOLD that�THOUGHT
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
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
A Pet might have attributes like:
A Song might have attributes like:
A SocialMediaPost might have attributes like:
Unit 2 Lesson 3 - Activity
CSA
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
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
Unplugged Activity
Designing an Object
In breakout rooms:
@TeachCode
Designing an Object
@TeachCode
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
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
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
Transition to Asynchronous
Session 4
Your Assignment: The PLACE
Managing the Asynchronous Session
Support:
Planning your Time:
@TeachCode
Take the daily survey!
Please fill out the end of day survey!�
studio.code.org/pd/workshop_survey/day/2�
Background on this survey:
@TeachCode
Async Session #4 in progress
Parking Lot
Enter questions here |
|
|
|
|
|
|
|
|
|
@TeachCode