YULIIA ZHUKOVETS: Hi, everyone.
This is a session on CS50's Curriculum.
And my name is Yuliia.
I am a preceptor here at Harvard.
And today, we're going to talk about CS50's curriculum, what materials
are there available, how do you put them together
and ultimately create your own curriculum for your classroom
and for your students.
But before we jump into the specific materials themselves,
let's talk about three key principles that we like to adapt here at CS50.
First of them being accessibility, so we really
want to make sure that all of the materials, lectures,
problem set that we use here at Harvard campus
and Yale campus are also available to all of you
online to teach in your own classrooms and schools.
And in addition to that, we also make sure to include notes, subtitles,
transcripts, anything else that will make
the teaching experience and the learning experience for students
the most accessible.
The second kind of, like, pillar of our principles is community.
So, again, be it the big events on Harvard
campus, like the Hackathon and the Fair, and also the online communities
that we have, for example, on Discord, community
is an integral part of the CS50 experience,
both for teachers and for students.
And you, by being here, participating in this workshop,
are definitely immensely contributing to that.
And last one and not least, though, is rigor.
So last year, we actually asked our workshop participants
to define rigor, what it means for them.
And some of them said it means being very precise or meticulous.
But also one of the participants mentioned
that it is setting high expectations for his students in the classroom
and being their biggest supporter and cheerleader on the sidelines,
supporting them and guiding them through this learning process.
Now that we've talked about these few principles,
let's actually talk about how to build your own curriculum.
What exists out there?
How do you put it all together?
So we're going to look at this tool called cs50.tf.
And so if you would like to follow along with me,
feel free to put that link in your web browser.
And as you open up that link, you should see the following screenshot
where it would say CS50 Handbook.
And this is not only the tool that we provide for educators online,
this is also something that we use here on campus when we teach our CS50
flagship course, or other courses like CS50 Python, SQL, and R,
as you see on the nav bar on the left.
But what we're going to focus on today is the highlighted portion, CS50 AP
and CS50 X. The main difference between the two
is that CS50 AP includes just a few more modules, and the CS50T course
that Professor Malan mentioned earlier, just
to make sure we comply with the AP standards
and hitting all the necessary requirements.
So if we go to, for example, CS50 AP link, this is what you would see.
A table of contents that really should link all the necessary things that you
would need to create your own curriculum and facilitate the learning
experience in the classroom.
And where we're going to look first is the curriculum component
that I highlighted here on the slides.
So, again, we will jump to the next link,
which would be a different website that you can see above in the tab.
And maybe my helpers behind the scenes can put the links in the chat
so that people can easily click on them.
But one of the biggest pages on this website
is the curriculum page, where you can see the whole plan outline in one place.
And as I mentioned before, it would include the CS50 X curriculum that we
teach here on campus and also available on EdX, but also the CS50T component
[? has ?] some specific AP modules below.
But that's a lot of stuff, right?
You might not have enough class time or enough resources.
So how do you fit it all and make it work?
It is really the principle take what you need, or adapt and adopt,
as David mentioned earlier.
And for example, if I have, say, six weeks,
and I want to teach these five topics, how would I structure it?
Classically in CS50, we allocate one week for each unit.
But it is a college class, right.
It can be really intensive.
But what if you want to teach this material to middle school students
or maybe to high schoolers that are not necessarily taking AP class?
It is up to you how you want to structure it.
For example, you can dedicate the first four days to Scratch,
get some experience with that.
Then spend a little bit more time on C, getting
into the details of the new language, kind of glance
through arrays and memory, making sure you complete those exercises.
But maybe ultimately focusing the last two weeks on Python.
And a very cool thing that I'm also going to mention in the end
is that it is there are a lot of other courses
that are not necessarily the CS50 flagship course that you
could incorporate into your curriculum.
For example, CS50 P class, you can peek into it
and grab some lectures, shorts, materials, or other problem sets
and wean them into your CS50 curriculum, so to say.
And, again, as I mentioned before, it is really
all based on adapting and adopting and taking what you need,
and making sure that you're crafting the unique experience that you need
for your students in the classroom.
But as we all know, and as Guy touched on in the previous session,
there are certain standards that you need to meet in your school,
or even in your district or state.
And there are so many different ones.
And so we, as kind of the central part of this endeavor,
cannot really facilitate the exact standards.
But we can help you figure out what exactly we can provide for you.
And, again, you can take what you need from our materials.
So, for example, if you go on that same AP website into the Syllabus link,
you can see a breakdown for each unit, the topics
within each module, the sample problems, and also the big ideas
covered in these topics as outlined in the College Board AP guidelines.
And maybe not so as to standards for specific CS classes,
but maybe for yourself, there's also a list
of topics atop of each lecture that can help
you see what lecture-specific weeks you actually want to use.
For example, if I want to touch on return values or variables,
I can go into a specific lecture and grab some material from there.
So what are actually weeks comprised of?
I can mention in weeks and units.
But what is the exact breakdown of those things?
So let's focus first on the video content and maybe the educational part
that students can observe and learn from.
So there are three parts lectures, shorts, and sections.
And so let's jump into lectures first.
So as you know, every fall here on campus,
we film these big lectures in Sanders that Harvard kids come watch live.
But we also record everything and post online for all of you
to watch and for all of your students to access.
But sometimes these lectures can be a little long, right?
They can be 3, 3 and 1/2, 2 and 1/2 hours long.
Not to say that you probably don't have time to watch that with your students
during the classroom time.
Probably it is hard for students to watch the whole thing in one sitting.
So we've also created a tool that could help you kind of like crop them,
subset them into specific sections that students can watch by themselves.
For example, 20 or 30 minute segments of specific topics or parts of
lecture that you want students to watch before a specific class.
There are also shorts, which are, as the name suggests,
shorter videos that dive into a specific subject.
For example, in this case, variables and scope
that provides sort of a different teaching perspective, very often
recorded by Doug in our CS50 course, but also
by Brian and Carter and others that really allow you to dive
into a more specific topic.
And the others are sections that are also pre-recorded in the Fall semester.
It is a very similar format of how we do sections here on campus,
and they're really meant to be timed to get hands on practice with the concepts
that students just learned about in the lectures.
It is also time to connect with the instructor or the teaching fellow
to ask those questions that arise during lectures.
You can have it as assigned material for the students
to watch before they come to your classroom,
or watch these sections yourself and use it
as an inspiration for your own classroom time.
Now that we've covered the content that students can watch on themselves
and you can draw inspiration from, let's actually
get into assignments, what kind of problem sets or practice problems
students can complete on their own, or together in the classroom.
And one thing that we, again, try to emphasize here on campus and overall
in CS50 is that--
and, again, anchoring on the accessibility pillar,
is that we want to make sure anyone with any kind of computer science
background can participate in CS50 and get whatever they want out of it.
So we try to distinguish people into comfy categories.
So for example, those more comfortable, those somewhere in between,
those less comfortable, and those least comfortable.
And actually, in most of the weeks we provide different comfy levels of psets.
So for example, if we're looking at Week 2, students who are less comfortable
might complete Caesar, but students who are more comfortable
might complete Substitution.
This differentiation ensures that each student
can be challenged according to their background,
and they're not necessarily uniformly assessed across the board.
Again, kind of going to the point of what if one of my students
is certainly more comfortable and they already completed all the problems
as they watched all the lectures.
What do they do?
So one of our friends, Margaret tans, who is a computer science teacher
here in the states in New York, actually helped us come up
with these practice problems.
They're little, smaller exercises that students can complete, again,
either in their own as extra homework or maybe during class time
or, again, for those more comfy students to just get a little bit more challenge.
And next thing that we're going to talk about is teaching resources.
So we've covered lectures and problem sets and the kind of materials
that exist out there, but what are the tools that
can help you put this all together and create a successful curriculum?
So on the same page that we saw before in the table of contents,
we have the following section called Teaching Resources.
And let's dive into one of them.
So for example, on the very bottom, you can
see a hyperlink for lesson materials.
So these are materials that we use in sections that I mentioned before.
It is the when our students get hands on practice
and get to ask our teaching fellows questions.
So each week, [? again, ?] unit will have
its own page where we will outline sort of like topics
that you might want to cover during that section,
or discussion questions to spark interactions between the students.
But also, some annotated slides that can be helpful for you
as you build your lesson plan.
Again, going with our theme of adapting and adapting,
you can take these slides as an inspiration,
or you can use them all together and incorporate them in your lesson plan.
Another really helpful tool that one of our friends Douglas helped us create
is daily checks.
These are small, warm up questions and exercises that,
again, get students thinking about these week's concepts
and get them prepared to engage in the exercises
and problems throughout the lessons.
And lastly, feedback and grading, it is not just all
about presenting the materials and having students complete the exercises.
It's really important for us as educators
to provide feedback and grade these assignments
so that students can continue their learning journey successfully.
And for that, we also have a couple of tools.
First is the grading and feedback page that again you
can navigate to from the CS50 Handbook.
And before jumping into a specific outline for each week,
we discuss overall what feedback is in CS50 and how we do it here on campus.
And really all the problem sets are graded along three axes.
First one is correctness, that is assessed by Check50.
The second one is style, that we can run our style50 command on.
And the last one is design, which is where all of us humans come in.
It is really a way to assess is this program efficient,
can it be optimized more, did the students really
grasp all of the concepts and content that we taught them this week,
and did they master this unit, so to say.
And to grade design, we like to provide a 1 to 5 point scale, 5 being this
was exceptional.
Right?
There is nothing else the student could have done, this is perfect.
And in fact, we try to emphasize the point that most of the students
will mostly get 3's or even 2's in the beginning of their learning journey.
Because they're just starting to program.
They don't know what an efficient program might be or how to optimize it.
But as we progress through the class, we definitely
see their design points increasing and, in fact, receiving a 3 on design
for a specific problem set doesn't mean that a student scored a 60%.
It just means that there is some way for improvement, and you as an educator
can guide them towards that.
Provide some suggestions of how they could
have improved that specific program.
And as I mentioned before, there's problems
with specific grading guidelines.
And if you click on one of those hyperlinks,
you'll be taken to another page that will outline it problem set
by problem set for that specific week.
And if some of you are trying to access this right now, it might be locked.
So to access that, there is another form that you
can submit to get teacher access to the Vault50 resource
and also to the grading guidelines.
And to wrap this up, I just wanted to, again, mention our additional courses.
CS50 doesn't stop in our flagship course.
We also have courses on, as David said, Python and SQL
and R, which we are just rolling out, which is super exciting.
And, again, there's nothing stopping you from incorporating all of these
into your curriculum.
Maybe you want to start with a little bit of the 50x course.
And then you're, like, wait, hold on.
I'm going to do a whole semester in Python.
So you'd go into the Python course and you grab some of the materials
from there.
The real magic of it all is that we have all of these materials available online.
There's nothing stopping you at any point.
And you can take exactly what you need to make
your students' journey successful.