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.