WEBVTT

00:00:00.000 --> 00:00:06.560
Hi everyone, welcome to week three. I hope you enjoy the labs this week. I'm going to start with


00:00:06.560 --> 00:00:12.400
a recap of both of the labs. So first on lab terminal and then on the lab names. If you have


00:00:12.400 --> 00:00:20.400
not yet completed those, that's okay. You can complete it now. It's just purely looked at based on completion.


00:00:20.400 --> 00:00:25.360
So it's okay if you're a little bit late, just be sure to catch up or send an email if you need a


00:00:25.360 --> 00:00:27.360
little bit more time.


00:00:30.640 --> 00:00:38.320
The lab terminal. I think something this lab highlights in particular is the idea of direct


00:00:38.320 --> 00:00:44.320
instruction versus exploratory instruction. Quite a few of you in your journal entries talked about


00:00:44.320 --> 00:00:50.720
how fun it is to learn the terminal commands through this adventure. It's not just a list of


00:00:50.720 --> 00:00:56.480
commands to memorize, but it really requires you to use them in this organic situation.


00:00:56.480 --> 00:01:00.960
We really have to figure out how do you go deeper into the sea floor and how do you open the chest


00:01:00.960 --> 00:01:05.840
and how do you find out the code and how do you use that code in a file? How do you create folders,


00:01:05.840 --> 00:01:10.880
move them around? So something I would start to think about is like what's the power of learning


00:01:10.880 --> 00:01:18.000
to use those commands organically as opposed to like I said just a list of things to memorize.


00:01:18.000 --> 00:01:24.640
I think this idea of direct instruction versus exploratory learning is we'll continue throughout


00:01:24.640 --> 00:01:29.600
all of our labs, but I think it's also something for you to think about in particular about how


00:01:29.600 --> 00:01:35.520
are you experiencing it? Like do you find it to be an advantageous way to learn? Do you feel like


00:01:35.520 --> 00:01:41.600
it's something that you would enjoy teaching? And I would also start to think about how does


00:01:41.600 --> 00:01:49.120
teaching this way require a different type of classroom dynamic? It's not just you standing in


00:01:49.120 --> 00:01:56.240
front of the whiteboard teaching a series of slides, but it's really about them teaching themselves,


00:01:56.240 --> 00:02:02.480
you walking around and really more being kind of like an assistant on their own personal learning.


00:02:04.160 --> 00:02:08.400
I would also start thinking about what's the power and learning how to use your terminal.


00:02:08.400 --> 00:02:13.040
So you may just ask yourself that question. Like what does it mean that you now understand how


00:02:13.040 --> 00:02:19.200
to navigate your computer through your terminal and opposed to the finder? What does it mean that


00:02:19.200 --> 00:02:25.120
you now understand how to run Python scripts, write Python scripts, move them around execute code,


00:02:25.120 --> 00:02:31.280
install software. What are you gain from that? And what do you think your students will gain from that?


00:02:32.800 --> 00:02:38.320
Something else that somebody touched on in their commit message and their journal is how


00:02:38.320 --> 00:02:43.520
spelling and preciseness is so important in the terminal, which I think is totally true. That's


00:02:43.520 --> 00:02:50.320
one of the reasons why I keep emphasizing auto complete is that at least I find in my classroom


00:02:50.320 --> 00:02:56.560
where there's quite a few of second language English speakers that it can be helpful to


00:02:56.560 --> 00:03:02.080
auto complete. I don't want to get my personal learning goal is not spelling, so I want to get


00:03:02.080 --> 00:03:06.880
people comfortable with using these tools without being bogged down with the precision of the


00:03:06.880 --> 00:03:13.280
uppercase for slower case or stash first underscore because that can be a bit tedious.


00:03:14.240 --> 00:03:19.360
But yeah, I hope you all enjoyed the lab terminal. I know it's always a favorite in my class.


00:03:20.800 --> 00:03:26.080
In my personal class, there's actually a timer in it like Chris mentioned in the discord. And so


00:03:26.080 --> 00:03:31.840
it requires students to move the bag quite quickly. So you may want to consider if you were to use this


00:03:31.840 --> 00:03:38.720
lab and your own class, what are advantages or disadvantages of in stating the timer? What does


00:03:38.720 --> 00:03:50.000
a timer emphasize versus what does not have any timer emphasize? Lab names. So this is a lab that


00:03:50.000 --> 00:03:56.480
starts to touch on some big topics, variables and functions. And the idea that names can represent


00:03:56.480 --> 00:04:05.680
values, it can represent one value, like the digits of pi or can represent like a whole drawing of a


00:04:05.680 --> 00:04:12.480
square. So there's really no limit to what names can represent. This is kind of a tricky concept


00:04:12.480 --> 00:04:18.720
for students. It's quite abstract, right? The idea of that and name from represents a whole drawing,


00:04:18.720 --> 00:04:25.440
not just a number, sometimes even the idea of a value, a name representing a number is also a


00:04:25.440 --> 00:04:32.400
little bit tricky for students to understand. So something I would start thinking about is what


00:04:32.400 --> 00:04:37.520
kind of scaffolding could you put around these labs to make sure students are really grasping


00:04:37.520 --> 00:04:43.040
concepts. So it's one thing to have like an asynchronous online class that's super exploratory


00:04:43.040 --> 00:04:48.720
for adults. But for students, it's a little bit different, right? Especially for perhaps middle


00:04:48.720 --> 00:04:55.200
school students or high school students. It's hard for a 14 year old kid to stare at a computer


00:04:55.840 --> 00:05:00.480
working for a full hour. So what are some ways you could break it up? What are some ways you


00:05:00.480 --> 00:05:07.200
could explain variables and functions without a computer? Potentially, with drawings or a diagram


00:05:07.200 --> 00:05:14.640
or physical objects. I can give one example. So when I introduce the idea of functions,


00:05:14.640 --> 00:05:20.400
I use the example of making a peanut butter and jelly sandwich. And so the function is like the


00:05:20.400 --> 00:05:28.080
sandwich maker. The parameters of the function are the bread, the jelly and the peanut butter.


00:05:28.080 --> 00:05:35.360
So you input the bread, the jelly and the peanut butter into the sandwich maker. It transforms to


00:05:35.360 --> 00:05:41.840
all of those ingredients and then spits out the sandwich. And why I like that analogy is that you


00:05:41.840 --> 00:05:47.040
can change the type of ingredients. So you can have crunchy peanut butter and it'll still make a


00:05:47.040 --> 00:05:53.680
PBJ. You can have rye bread, sourdough bread, any kind of bread. You can change the type of jelly,


00:05:53.680 --> 00:05:57.920
grape or strawberry. But no matter what, as long as you just have those three parameters,


00:05:57.920 --> 00:06:05.920
you always get the sandwich. So I would urge you to start to consider how do you think of a function


00:06:05.920 --> 00:06:11.200
and what is your way of explaining it to somebody that can't explicitly understand


00:06:11.840 --> 00:06:17.120
that it's not just code, right? It's something a little bit more powerful than just lines, but


00:06:17.680 --> 00:06:20.320
what is like really the meat of what a function means?


00:06:24.080 --> 00:06:31.440
Another piece that quite a few people touched on is the idea of readability. So this is something


00:06:31.440 --> 00:06:38.320
that I really try to emphasize in my class that the names you give values are really important,


00:06:38.320 --> 00:06:45.120
right? You don't just want to say x for every number, x and y. You don't just want to call your


00:06:45.120 --> 00:06:52.560
function shape, right? You really want to start to consider how does it name, give it more meaning.


00:06:53.120 --> 00:07:00.480
And so something that we assess in our class is readability of their code. So do the variables


00:07:00.480 --> 00:07:06.480
make sense? Do the functions make sense? Do the parameters make sense? Are they easily understood


00:07:07.040 --> 00:07:13.440
by other people, your peers, your teachers, your friends? Could somebody else read your code and


00:07:13.440 --> 00:07:20.000
understand it? One more thing, quite a few of you have touched on in your messages and your


00:07:20.000 --> 00:07:25.520
journal entries is the idea that functions allow you to break up a problem into smaller, more


00:07:25.520 --> 00:07:31.200
more manageable pieces. This idea is called decomposition. This is also something that I


00:07:32.480 --> 00:07:38.800
emphasize in my class, something that I even assess in the final project. It's also something


00:07:38.800 --> 00:07:45.600
that's often quite tricky for students to understand. The idea that you could draw a whole robot just


00:07:45.600 --> 00:07:51.600
with one function called rectangle. How can that one function be used in multiple different ways?


00:07:51.600 --> 00:07:57.440
And how can you start to break down problems into patterns? How could you see a robot and see,


00:07:57.440 --> 00:08:03.520
oh yeah, okay, it's actually made up of a bunch of different sized rectangles. I think that's a


00:08:03.520 --> 00:08:09.600
skill that can be quite tricky, but something that functions really emphasizes. And it's also a skill


00:08:09.600 --> 00:08:14.720
that's useful not only in computer science, right? I think the idea of decomposition, breaking things


00:08:14.720 --> 00:08:20.400
down into smaller, more manageable pieces is an idea that's another academic discipline, but also


00:08:20.400 --> 00:08:27.920
just useful in your own life. Yeah, so overall, I think functions and variables and names are some


00:08:27.920 --> 00:08:34.800
really big topics. This is one of normally one of the places in my own class where we finally start


00:08:34.800 --> 00:08:40.080
to slow down a little bit, where students kind of will have different levels of understanding


00:08:40.080 --> 00:08:46.800
about the idea of functions and will really start to need to do some review. I need to start to


00:08:46.800 --> 00:08:52.000
make sure everyone's understanding it. So again, start to think about in your own teaching,


00:08:52.000 --> 00:08:55.360
how would you ensure everyone really understands these big ideas?


00:08:59.920 --> 00:09:05.280
Just some general curriculum pedagogy points I wanted to make. So in this curriculum,


00:09:05.280 --> 00:09:12.240
really heavily relies on the idea of use, modify, create. So that idea is just exactly how it sounds,


00:09:12.240 --> 00:09:17.600
and so it's that when you're learning computer science, a really good way to do it is first by


00:09:18.160 --> 00:09:24.880
using it, then by modifying it, and then by creating it yourself. So you'll continue to see this idea


00:09:24.880 --> 00:09:31.360
of use, modify, create, reappear throughout all of our labs. So I would begin to ask yourself,


00:09:32.160 --> 00:09:39.200
what is the power of that system of that framework? Do you agree with it? Do you disagree with it?


00:09:39.200 --> 00:09:45.760
Do you have an alternative view? Just something to start to think about. Something else like I


00:09:45.760 --> 00:09:52.000
mentioned earlier is the idea of scaffolding. So it's one thing, like I said, to do these labs


00:09:52.000 --> 00:09:57.360
for adults, but it's totally different to do it for kids. So you still want to have those


00:09:57.360 --> 00:10:04.080
structures of a class of a starter activity, the main activity, and of a reflection primary at the


00:10:04.080 --> 00:10:09.520
end of your class. So I would start to think about what are ways that you would do that. I can share


00:10:09.520 --> 00:10:16.800
some of the ways that I do it. One of the main ways is by like whiteboard activities. So I really


00:10:16.800 --> 00:10:22.480
try to always have like mini whiteboards or standing whiteboards in the classroom to review.


00:10:25.760 --> 00:10:32.080
Here are a few examples of slides for starter activities. So for each one of these, I'll have


00:10:32.080 --> 00:10:37.120
them up on the screen. Each student will have their own whiteboard. They may work in pairs


00:10:37.120 --> 00:10:44.560
individually to answer the question, and then we'll review it as a group. So just a good way to review


00:10:44.560 --> 00:10:47.680
key concepts and get a few easy ones at the start of the class.


00:10:52.080 --> 00:11:00.320
Okay, so looking forward, this next week's deliverables is the lab iteration. So going forward,


00:11:00.320 --> 00:11:04.800
there's only going to be one lab a week. It was just this past week where they're over two,


00:11:04.800 --> 00:11:09.840
but going forward, there'll just be one lab a week. So it's up to you to figure out lab iteration.


00:11:09.840 --> 00:11:17.840
Lab iteration starts to teach you about the idea of loops and repetition. One thing I want to emphasize


00:11:17.840 --> 00:11:22.640
on this lab is now you're really been introduced to quite a lot of like tools in your CS toolbox,


00:11:22.640 --> 00:11:29.840
right? So you have now variables and functions, and you have the turtle commands, and you have loops


00:11:29.840 --> 00:11:36.400
now. So I'd really start to think about how well do you understand those different concepts,


00:11:36.400 --> 00:11:40.800
and if you're struggling with them, please don't hesitate to reach out, because they'll just continue


00:11:40.800 --> 00:11:45.680
to build on themselves as they move forward. So really make sure in these first couple labs,


00:11:45.680 --> 00:11:50.320
you understand the new tools that we're incorporating into our CS toolbox.


00:11:52.480 --> 00:11:57.440
As a reminder, we always have the journal entries every week. You should be meeting with your group,


00:11:57.440 --> 00:12:02.080
and then just one member from your group should post in the Discord, just for short recap,


00:12:03.120 --> 00:12:08.480
and then there's also an element of your drawing project that won't be due this week.


00:12:08.480 --> 00:12:14.080
And so that is just a proposal. You don't have to start animating by any means, but I want you


00:12:14.080 --> 00:12:18.720
to start thinking about what you do want your animation project to be. And I'm going to post


00:12:18.720 --> 00:12:24.160
another video to go more in depth about the project. So like I said, you're going to work on lab


00:12:24.160 --> 00:12:30.880
iteration, your journal entry, meet with your group, and your drawing project proposal. If you


00:12:30.880 --> 00:12:36.080
have any questions, as always, you can email me. Everyone will be starting office hours soon.


00:12:36.080 --> 00:12:40.800
You can meet with your group. Also, please just post questions in the Discord, all of the classes


00:12:40.800 --> 00:12:46.800
working together. So if you can help each other out, it's very much appreciated. And thank you.


00:12:46.800 --> 00:12:48.240
See you next week.
