1 00:00:00,000 --> 00:00:00,936 2 00:00:00,936 --> 00:00:02,252 [APPLAUSE] 3 00:00:02,252 --> 00:00:03,710 MARGARET TANZOSH: Hello, everybody. 4 00:00:03,710 --> 00:00:05,990 Can everybody hear me OK? 5 00:00:05,990 --> 00:00:06,860 Yes? 6 00:00:06,860 --> 00:00:07,790 All right, wonderful. 7 00:00:07,790 --> 00:00:10,760 So I'm here today just to share with you a little bit about what 8 00:00:10,760 --> 00:00:12,290 I do in my classroom. 9 00:00:12,290 --> 00:00:14,480 So of course, we're all going to do our own thing. 10 00:00:14,480 --> 00:00:15,710 We all have our own styles. 11 00:00:15,710 --> 00:00:19,280 But I thought you might like to hear a little bit about how I organize my class 12 00:00:19,280 --> 00:00:22,970 and how I learned to teach this curriculum over many years. 13 00:00:22,970 --> 00:00:26,480 So just a little bit about who I am, right? 14 00:00:26,480 --> 00:00:30,560 So I teach computer science at a high school in New York city 15 00:00:30,560 --> 00:00:34,110 called New Explorations Into Science, Technology, and Math. 16 00:00:34,110 --> 00:00:35,360 That's the name of the school. 17 00:00:35,360 --> 00:00:36,950 It's a K to 12 school. 18 00:00:36,950 --> 00:00:37,910 It's kind of unusual. 19 00:00:37,910 --> 00:00:39,590 It's a public school in New York. 20 00:00:39,590 --> 00:00:42,140 And this is the ninth year that I'm there. 21 00:00:42,140 --> 00:00:46,580 And the whole time I've been there, I've been teaching CS50 computer science 22 00:00:46,580 --> 00:00:47,540 classes. 23 00:00:47,540 --> 00:00:49,520 I also teach at a Harvard Extension School. 24 00:00:49,520 --> 00:00:54,080 And as you know, I've taught some of you on zoom as well, which I love doing. 25 00:00:54,080 --> 00:00:58,370 So the school itself is kind of a fabulous school. 26 00:00:58,370 --> 00:01:00,500 It's a gifted and talented they call it. 27 00:01:00,500 --> 00:01:03,690 So the kids are ready to go on to college for the most part. 28 00:01:03,690 --> 00:01:05,640 It's on the lower east side of Manhattan. 29 00:01:05,640 --> 00:01:07,230 This is a picture of the school. 30 00:01:07,230 --> 00:01:11,610 And my students are a very diverse group, which I'm sure many of you 31 00:01:11,610 --> 00:01:12,460 have as well. 32 00:01:12,460 --> 00:01:17,130 I have some students who come in being afraid of taking computer science. 33 00:01:17,130 --> 00:01:18,360 They know nothing about it. 34 00:01:18,360 --> 00:01:21,090 They feel like, this is really not my thing. 35 00:01:21,090 --> 00:01:23,940 My guidance counselor wanted me to take this or my parents 36 00:01:23,940 --> 00:01:25,380 wanted me to take the class. 37 00:01:25,380 --> 00:01:30,120 I have other students who have been coding since the seventh grade, right? 38 00:01:30,120 --> 00:01:31,920 So it's a real mix. 39 00:01:31,920 --> 00:01:35,820 And some of them want a major to computer science in college. 40 00:01:35,820 --> 00:01:38,430 Some of them just want to sample a little bit to see, 41 00:01:38,430 --> 00:01:41,130 is this something they might be interested down the road. 42 00:01:41,130 --> 00:01:44,640 So most of them have very, very little experience. 43 00:01:44,640 --> 00:01:46,980 But again, some of them have a lot of experience. 44 00:01:46,980 --> 00:01:49,980 So one of the things I love about this particular curriculum 45 00:01:49,980 --> 00:01:52,140 is that it offers something for everybody. 46 00:01:52,140 --> 00:01:54,960 My philosophy is that everybody should be engaged 47 00:01:54,960 --> 00:01:57,930 all the time so that nobody gets bored. 48 00:01:57,930 --> 00:02:00,360 My students are mostly 11th and 12th graders. 49 00:02:00,360 --> 00:02:02,590 I have a few 10th graders as well. 50 00:02:02,590 --> 00:02:05,190 So that's just a little bit about what my school looks like. 51 00:02:05,190 --> 00:02:06,030 This is a picture. 52 00:02:06,030 --> 00:02:08,070 We had a hackathon a few years back. 53 00:02:08,070 --> 00:02:11,160 And this was kind of a mix of some of the middle school and high school 54 00:02:11,160 --> 00:02:11,730 students. 55 00:02:11,730 --> 00:02:12,990 We had a lot of fun. 56 00:02:12,990 --> 00:02:17,320 We spent all Saturday programming and learning new skills and all of that. 57 00:02:17,320 --> 00:02:21,810 So I would say that I'm a teacher who adapts the CS50 curriculum. 58 00:02:21,810 --> 00:02:24,720 I use a lot of the problem sets. 59 00:02:24,720 --> 00:02:26,880 I make a few of my own. 60 00:02:26,880 --> 00:02:32,700 And I've tried to teach it in different ways over the years. 61 00:02:32,700 --> 00:02:35,310 One of the things I've found was very useful, 62 00:02:35,310 --> 00:02:39,210 which I'll talk about more in a few moments, is scaffolding. 63 00:02:39,210 --> 00:02:41,520 Do we know what scaffolding is, right? 64 00:02:41,520 --> 00:02:44,850 Helping students kind of get to the next level a little bit. 65 00:02:44,850 --> 00:02:46,620 Maybe building in some hints. 66 00:02:46,620 --> 00:02:49,170 Giving them a little bit of pseudo code sometimes. 67 00:02:49,170 --> 00:02:53,610 Because my philosophy is I want everybody to be able to feel successful. 68 00:02:53,610 --> 00:02:56,970 I don't want anybody to be afraid to take my class because they're 69 00:02:56,970 --> 00:02:58,770 afraid they're not going to pass. 70 00:02:58,770 --> 00:03:01,020 I want them to know, it's going to be hard work. 71 00:03:01,020 --> 00:03:02,910 And I think you all know that, right? 72 00:03:02,910 --> 00:03:05,790 But if you work hard and you ask questions 73 00:03:05,790 --> 00:03:09,270 and you ask me for the support, you can get help from other students, 74 00:03:09,270 --> 00:03:12,300 it is always very possible to succeed. 75 00:03:12,300 --> 00:03:15,060 All right, so that's the way that I run my class. 76 00:03:15,060 --> 00:03:18,570 The classes I have are every day of the week, five days a week, 77 00:03:18,570 --> 00:03:20,790 45 minute periods. 78 00:03:20,790 --> 00:03:22,200 My classes are pretty large. 79 00:03:22,200 --> 00:03:24,810 I have up to 34 students in one class. 80 00:03:24,810 --> 00:03:29,370 So in a given year, I might have 100 to 150 students. 81 00:03:29,370 --> 00:03:33,390 Sometimes they're a little smaller, but there's always a real mix, right? 82 00:03:33,390 --> 00:03:35,490 So I've been doing this at my high school. 83 00:03:35,490 --> 00:03:36,900 This is my ninth year. 84 00:03:36,900 --> 00:03:41,640 And what happened is that I was brought on board to teach computer science, 85 00:03:41,640 --> 00:03:43,680 but the school had no curriculum. 86 00:03:43,680 --> 00:03:45,720 They had no money for a curriculum. 87 00:03:45,720 --> 00:03:46,553 There were no books. 88 00:03:46,553 --> 00:03:48,178 They didn't even know what they wanted. 89 00:03:48,178 --> 00:03:50,070 They just knew that there were some students. 90 00:03:50,070 --> 00:03:52,990 They wanted to be able to teach students how to code. 91 00:03:52,990 --> 00:03:56,213 And so I looked online for various curriculums, right? 92 00:03:56,213 --> 00:03:57,630 Because I had not taught computer. 93 00:03:57,630 --> 00:03:58,770 I had known a little-- 94 00:03:58,770 --> 00:04:02,670 I had done a little coding in a very past life, but not for many, many years. 95 00:04:02,670 --> 00:04:05,730 So I was looking for something to help guide me. 96 00:04:05,730 --> 00:04:08,760 And I saw some curriculums and I tried to contact them. 97 00:04:08,760 --> 00:04:10,260 They didn't really get back to me. 98 00:04:10,260 --> 00:04:13,380 And then, I saw a video of Professor Malan. 99 00:04:13,380 --> 00:04:16,002 [APPLAUSE] 100 00:04:16,002 --> 00:04:18,420 101 00:04:18,420 --> 00:04:20,177 And from that moment on, I knew that that 102 00:04:20,177 --> 00:04:21,760 was the curriculum I was going to use. 103 00:04:21,760 --> 00:04:27,580 So I got into a program and connected with other teachers as well. 104 00:04:27,580 --> 00:04:30,300 And it was just a fabulous opportunity for me. 105 00:04:30,300 --> 00:04:33,960 I took the course online myself because there were so many resources, so 106 00:04:33,960 --> 00:04:37,500 many tools that we have the opportunity to do that, right? 107 00:04:37,500 --> 00:04:39,630 So how did I get started? 108 00:04:39,630 --> 00:04:43,740 So one of the things I loved about CS50 and the way 109 00:04:43,740 --> 00:04:49,770 that David actually teaches the material is that he breaks it down and explains 110 00:04:49,770 --> 00:04:51,120 it so well, right? 111 00:04:51,120 --> 00:04:52,200 With so much drama. 112 00:04:52,200 --> 00:04:53,880 It stays interesting, right? 113 00:04:53,880 --> 00:04:58,500 So I watched the lecture videos my first couple of years over and over 114 00:04:58,500 --> 00:05:03,120 and over again to learn how to talk about using the right terms, right? 115 00:05:03,120 --> 00:05:05,700 Learning how to break it down and how to make sure it's 116 00:05:05,700 --> 00:05:09,540 understandable to somebody who might have no computer science experience. 117 00:05:09,540 --> 00:05:11,460 So that was just one of the things I did. 118 00:05:11,460 --> 00:05:15,780 And I tried to use the ideas that you see in the Harvard videos 119 00:05:15,780 --> 00:05:21,250 with my students to keep it interactive, keep people engaged, make it fun. 120 00:05:21,250 --> 00:05:24,820 So again, I always wanted it to be a rigorous class. 121 00:05:24,820 --> 00:05:28,360 But also, we're going to work hard, but we're going to have fun, right? 122 00:05:28,360 --> 00:05:32,620 I had students act out algorithms kind of like you've seen on stage, right? 123 00:05:32,620 --> 00:05:37,540 So for instance, we acted out Bubble Sort and Selection Sort, right? 124 00:05:37,540 --> 00:05:42,362 And so it kind got the kids up and it just kind of kept it interesting 125 00:05:42,362 --> 00:05:43,820 so they weren't just sitting there. 126 00:05:43,820 --> 00:05:50,290 Now, the way that I would run my class is that I don't lecture for a long time. 127 00:05:50,290 --> 00:05:51,975 I take some of the slides. 128 00:05:51,975 --> 00:05:54,100 I use some of the slides from the Harvard lectures. 129 00:05:54,100 --> 00:05:55,600 You can download them, right? 130 00:05:55,600 --> 00:05:58,600 And I use a few of them every day. 131 00:05:58,600 --> 00:06:01,210 Sometimes, I make my own to supplement. 132 00:06:01,210 --> 00:06:06,123 I don't go through an entire two hour lesson, right? 133 00:06:06,123 --> 00:06:06,790 I can't do that. 134 00:06:06,790 --> 00:06:08,110 I have 45 minutes. 135 00:06:08,110 --> 00:06:12,940 I try to keep my lessons to maybe 10 minutes, maybe a new concept, right? 136 00:06:12,940 --> 00:06:17,140 And then, I let the students do most of their coding in class. 137 00:06:17,140 --> 00:06:21,280 Because another thing is I don't want them to be home at night frustrated. 138 00:06:21,280 --> 00:06:23,417 Now, when I started there was no duck, right? 139 00:06:23,417 --> 00:06:25,000 We only had the physical rubber ducks. 140 00:06:25,000 --> 00:06:27,040 There was no AI duck. 141 00:06:27,040 --> 00:06:29,590 So they didn't have that tutor right next to them. 142 00:06:29,590 --> 00:06:32,500 But the idea was that I didn't want students to be frustrated, 143 00:06:32,500 --> 00:06:35,920 working, being afraid they're not going to get the program set in on time. 144 00:06:35,920 --> 00:06:37,780 I wanted them to have the support. 145 00:06:37,780 --> 00:06:41,110 So I let them do most of their programming in class. 146 00:06:41,110 --> 00:06:43,960 And we have a certain amount-- we always encourage collaboration. 147 00:06:43,960 --> 00:06:45,918 So students are allowed to help each other out. 148 00:06:45,918 --> 00:06:49,720 And I'll talk about some problems I consider practice problems where 149 00:06:49,720 --> 00:06:51,220 they can collaborate. 150 00:06:51,220 --> 00:06:54,910 And then, for the major p set problems, the ones that you have done, 151 00:06:54,910 --> 00:06:57,610 I count those as a graded assessment for them. 152 00:06:57,610 --> 00:07:01,510 And so I let them spend most of their time 153 00:07:01,510 --> 00:07:05,500 in the class doing these programming problems, right? 154 00:07:05,500 --> 00:07:09,370 And I stay fresh because I resolve the problems pretty much every year, 155 00:07:09,370 --> 00:07:10,990 especially the first few years. 156 00:07:10,990 --> 00:07:13,780 Because I found by myself resolving the problem, 157 00:07:13,780 --> 00:07:17,200 I would remember the bugs that they're going to find, right? 158 00:07:17,200 --> 00:07:20,680 Because if I don't do it for a while it's like, oh yeah, it's easy. 159 00:07:20,680 --> 00:07:21,550 You kind of forget. 160 00:07:21,550 --> 00:07:24,370 But once you do it it's like, oh yeah, that kind of happens. 161 00:07:24,370 --> 00:07:25,510 This comes up, right? 162 00:07:25,510 --> 00:07:29,410 So I like to kind of keep myself fresh, resolve the problems. 163 00:07:29,410 --> 00:07:33,070 And then, what I do in the classroom, when they're coding, I'm walking around. 164 00:07:33,070 --> 00:07:35,530 I'm helping students debug, right? 165 00:07:35,530 --> 00:07:38,980 I'm giving them a little hints maybe, something like that, right? 166 00:07:38,980 --> 00:07:43,570 So it really helps a lot to be able to know in advance what kind of problems 167 00:07:43,570 --> 00:07:44,500 they're going to have. 168 00:07:44,500 --> 00:07:46,840 So that's why it's so important to really solve 169 00:07:46,840 --> 00:07:53,340 the problems yourself before you assign them to a student, OK? 170 00:07:53,340 --> 00:07:56,460 So again, I also want to make sure they're doing their work. 171 00:07:56,460 --> 00:07:58,860 Because when students are on computers, you can imagine, 172 00:07:58,860 --> 00:08:00,840 they're often tempted to do different things. 173 00:08:00,840 --> 00:08:04,540 So I'm also just keeping an eye on them in that way as well. 174 00:08:04,540 --> 00:08:07,440 And the other thing I like to do is because CS50 175 00:08:07,440 --> 00:08:09,750 has so many wonderful resources. 176 00:08:09,750 --> 00:08:12,750 And sometimes, students forget that they're there. 177 00:08:12,750 --> 00:08:14,610 There's all the shorts, right? 178 00:08:14,610 --> 00:08:17,010 The problem sets have the video walkthroughs. 179 00:08:17,010 --> 00:08:20,280 Some of the practice problems, like Scrabble, if you look hard enough, 180 00:08:20,280 --> 00:08:22,350 the whole solution is in there, right? 181 00:08:22,350 --> 00:08:25,290 Have a hard time solving this problem, you pulled out another arrow 182 00:08:25,290 --> 00:08:26,910 and you get a whole solution. 183 00:08:26,910 --> 00:08:28,230 Others have little hints. 184 00:08:28,230 --> 00:08:31,350 So sometimes students forget about that and they just 185 00:08:31,350 --> 00:08:35,549 read the little instruction and they get confused and they don't know what to do. 186 00:08:35,549 --> 00:08:38,640 So I want to make sure to point them in the right direction. 187 00:08:38,640 --> 00:08:42,270 And to be honest, pretty much at the beginning of the year, 188 00:08:42,270 --> 00:08:45,320 I let them know we always start with Scratch, right? 189 00:08:45,320 --> 00:08:46,320 Everybody loves Scratch. 190 00:08:46,320 --> 00:08:48,750 It's one of the ways that kids get excited, right? 191 00:08:48,750 --> 00:08:50,310 They do their Scratch projects. 192 00:08:50,310 --> 00:08:51,450 I give them time. 193 00:08:51,450 --> 00:08:52,920 I give them usually-- 194 00:08:52,920 --> 00:08:54,900 I might give them two weeks to do something. 195 00:08:54,900 --> 00:08:56,610 They will have a gallery walk through. 196 00:08:56,610 --> 00:08:59,575 They'll look at each other's projects and write up what they liked 197 00:08:59,575 --> 00:09:00,825 and what they learned from it. 198 00:09:00,825 --> 00:09:03,720 199 00:09:03,720 --> 00:09:09,040 So yeah, I like to make sure that they're aware of all the resources 200 00:09:09,040 --> 00:09:09,540 there. 201 00:09:09,540 --> 00:09:15,360 And if they finish a problem early, I don't make them sit and wait. 202 00:09:15,360 --> 00:09:17,880 I let them move on to the next problem, right? 203 00:09:17,880 --> 00:09:20,550 Or maybe move on, even sometimes, to the next unit. 204 00:09:20,550 --> 00:09:22,650 I've had a couple of students in the years 205 00:09:22,650 --> 00:09:26,028 that I've been doing this that just fall in love with the curriculum so much. 206 00:09:26,028 --> 00:09:26,820 That's all they do. 207 00:09:26,820 --> 00:09:29,250 They go home and they're just working on the problems the whole time. 208 00:09:29,250 --> 00:09:32,070 And that actually went through the entire curriculum on their own 209 00:09:32,070 --> 00:09:33,480 in a few months. 210 00:09:33,480 --> 00:09:37,260 But the nice thing is there's other CS50 courses they can also take. 211 00:09:37,260 --> 00:09:39,420 So I'll point them in those directions. 212 00:09:39,420 --> 00:09:42,420 So pretty much that's kind of what I do in the classroom. 213 00:09:42,420 --> 00:09:44,970 I'm walking around, I'm helping them debug, make 214 00:09:44,970 --> 00:09:46,950 sure they're on task doing their work. 215 00:09:46,950 --> 00:09:49,050 Explain what they need to do. 216 00:09:49,050 --> 00:09:51,690 And then, I'll often, sometimes, pull together 217 00:09:51,690 --> 00:09:54,730 a small group of students that might still be struggling. 218 00:09:54,730 --> 00:09:57,320 So I like to do a lot of small group work. 219 00:09:57,320 --> 00:09:59,290 So I'll notice that maybe a student here, 220 00:09:59,290 --> 00:10:02,590 a student there isn't sure how to get started, 221 00:10:02,590 --> 00:10:04,660 sometimes-- especially when it's new. 222 00:10:04,660 --> 00:10:07,360 The first few weeks or the first month or two, 223 00:10:07,360 --> 00:10:13,160 I always warn my students that it's OK to feel confused, right? 224 00:10:13,160 --> 00:10:15,625 It's like learning a new language. 225 00:10:15,625 --> 00:10:16,750 You're walking into a room. 226 00:10:16,750 --> 00:10:19,667 And everybody's speaking a language and you don't speak that language. 227 00:10:19,667 --> 00:10:22,120 And so I like to let them know it's OK. 228 00:10:22,120 --> 00:10:24,530 Everybody feels freaked out at the beginning, right? 229 00:10:24,530 --> 00:10:27,070 It's like, oh my God, this is so overwhelming. 230 00:10:27,070 --> 00:10:28,630 I don't know what this syntax is. 231 00:10:28,630 --> 00:10:29,860 And I just kind of-- 232 00:10:29,860 --> 00:10:32,410 I talk about it so much so that when they get that, 233 00:10:32,410 --> 00:10:34,750 they understand that's part of the process. 234 00:10:34,750 --> 00:10:39,160 I also make sure that they're really comfortable making mistakes, right? 235 00:10:39,160 --> 00:10:40,383 That is part of the process. 236 00:10:40,383 --> 00:10:42,550 That nobody creates a whole big program from Scratch 237 00:10:42,550 --> 00:10:44,092 and doesn't make any mistakes, right? 238 00:10:44,092 --> 00:10:45,940 That's why I like to let them know, there's 239 00:10:45,940 --> 00:10:49,000 a special word for it, debugging, right? 240 00:10:49,000 --> 00:10:51,082 So it's something that's just natural. 241 00:10:51,082 --> 00:10:53,290 And some students are afraid to start because they're 242 00:10:53,290 --> 00:10:55,450 afraid to make a mistake, right? 243 00:10:55,450 --> 00:10:56,860 They just don't know what to do. 244 00:10:56,860 --> 00:11:00,130 So if a student is really struggling, I'll pull together a few of them 245 00:11:00,130 --> 00:11:01,660 and put them at one table. 246 00:11:01,660 --> 00:11:03,430 I'm lucky I have tables in my classroom. 247 00:11:03,430 --> 00:11:04,480 Bring them together. 248 00:11:04,480 --> 00:11:06,820 And I'll do a little small group work with them. 249 00:11:06,820 --> 00:11:09,910 We might kind of read through the problem spec together. 250 00:11:09,910 --> 00:11:12,490 I might develop a little code, a little pseudo code, 251 00:11:12,490 --> 00:11:16,030 maybe we'll start the first couple lines of the program together, right? 252 00:11:16,030 --> 00:11:19,120 Then maybe we work through a little of the logic, a little pseudo code, 253 00:11:19,120 --> 00:11:20,750 we'll make comments in the code. 254 00:11:20,750 --> 00:11:22,600 And so I like to give them those advantages 255 00:11:22,600 --> 00:11:26,800 because I do want everybody, again, to feel that they can do this, right? 256 00:11:26,800 --> 00:11:28,870 They might decide to go on or not. 257 00:11:28,870 --> 00:11:32,260 But in any case, I want them to know that if you work hard, 258 00:11:32,260 --> 00:11:35,680 you don't give up, you just have to keep trying, right? 259 00:11:35,680 --> 00:11:36,850 Everybody knows that. 260 00:11:36,850 --> 00:11:39,280 We've all experienced that ourselves. 261 00:11:39,280 --> 00:11:43,780 Another thing that was very valuable to me, especially when I first started, 262 00:11:43,780 --> 00:11:46,240 was learning from other teachers. 263 00:11:46,240 --> 00:11:49,690 So I very much encourage you to make sure to get 264 00:11:49,690 --> 00:11:52,750 contact information from each other so that you 265 00:11:52,750 --> 00:11:54,820 could stay in touch with each other. 266 00:11:54,820 --> 00:11:57,700 Maybe make a group on some social media platform 267 00:11:57,700 --> 00:12:00,760 or collect each other's emails or phone numbers 268 00:12:00,760 --> 00:12:04,630 or whatever so that you can share ideas, right? 269 00:12:04,630 --> 00:12:07,840 So some of the ideas that I never thought 270 00:12:07,840 --> 00:12:11,350 of that I got from other teachers that were using the CS50 curriculum 271 00:12:11,350 --> 00:12:15,520 were to have students write reflections after they finish a problem. 272 00:12:15,520 --> 00:12:17,230 To write a little bit-- 273 00:12:17,230 --> 00:12:19,150 kind of a metacognitive thing. 274 00:12:19,150 --> 00:12:21,160 Like, how did I do this problem? 275 00:12:21,160 --> 00:12:21,820 What happened? 276 00:12:21,820 --> 00:12:23,410 What struggles did I have? 277 00:12:23,410 --> 00:12:25,570 What aha moments did I have? 278 00:12:25,570 --> 00:12:28,327 And some students like doing that, some don't. 279 00:12:28,327 --> 00:12:29,410 It depends on the student. 280 00:12:29,410 --> 00:12:31,420 But I think it's sometimes helpful for them 281 00:12:31,420 --> 00:12:34,810 also to kind of go back and think about the process. 282 00:12:34,810 --> 00:12:37,480 And it's helpful for me to get an understanding 283 00:12:37,480 --> 00:12:39,790 of how much they're learning, right? 284 00:12:39,790 --> 00:12:42,190 What I actually did this year for the first time, 285 00:12:42,190 --> 00:12:46,630 because the AI duck is so good at explaining the code, 286 00:12:46,630 --> 00:12:50,740 it explains it better than any human, I think, could explain the code, right? 287 00:12:50,740 --> 00:12:55,980 That I actually had students do a video walkthrough on one of their projects 288 00:12:55,980 --> 00:12:56,940 like Caesar. 289 00:12:56,940 --> 00:13:02,487 So I made them make a recording on Zoom and attach it to Google Classroom. 290 00:13:02,487 --> 00:13:03,570 I don't know if you know-- 291 00:13:03,570 --> 00:13:04,980 something like Google Classroom. 292 00:13:04,980 --> 00:13:07,680 And it was great because I have too many students 293 00:13:07,680 --> 00:13:11,850 to do walkthroughs-- code walkthroughs with everybody would take me weeks. 294 00:13:11,850 --> 00:13:15,480 But this way, I was really able to get a sense of what they understood. 295 00:13:15,480 --> 00:13:18,022 And some of them wrote scripts for it. 296 00:13:18,022 --> 00:13:20,730 They kind of used the duck to figure out what the code was doing. 297 00:13:20,730 --> 00:13:23,640 But I feel like, at the end of the day, they learned. 298 00:13:23,640 --> 00:13:25,650 They really understood what this code was doing. 299 00:13:25,650 --> 00:13:27,260 They had a point to the line. 300 00:13:27,260 --> 00:13:29,010 They had to have their video in the corner 301 00:13:29,010 --> 00:13:30,990 so I knew it wasn't a brother or sister that 302 00:13:30,990 --> 00:13:35,250 might be majoring in computer science making the video for them, right? 303 00:13:35,250 --> 00:13:38,340 But it was just another tool for assessment that I've done. 304 00:13:38,340 --> 00:13:42,210 And I like to make the whole class really a fun experience. 305 00:13:42,210 --> 00:13:45,330 So I've taken away-- and also heard from other teachers 306 00:13:45,330 --> 00:13:49,680 right that Puzzle Day could be helpful or maybe a CS50 Fair. 307 00:13:49,680 --> 00:13:53,680 And so I do a Puzzle Day in the fall and invite students 308 00:13:53,680 --> 00:13:54,820 from all over the school. 309 00:13:54,820 --> 00:13:56,620 And we get together in the library. 310 00:13:56,620 --> 00:13:58,120 We bring in some pizza. 311 00:13:58,120 --> 00:13:59,950 And kind of like the puzzles. 312 00:13:59,950 --> 00:14:02,290 We'll spend maybe two hours. 313 00:14:02,290 --> 00:14:04,060 The students really get into it. 314 00:14:04,060 --> 00:14:06,670 And I'll give them hints if they get stuck so everybody 315 00:14:06,670 --> 00:14:08,590 solves at least one problem, right? 316 00:14:08,590 --> 00:14:13,120 And these are some of my students working on their puzzles. 317 00:14:13,120 --> 00:14:17,200 So again, just to kind of-- to create like a sense of community 318 00:14:17,200 --> 00:14:19,330 and a sense of work and fun. 319 00:14:19,330 --> 00:14:23,140 And I think, really, being able to start to feel 320 00:14:23,140 --> 00:14:26,230 the satisfaction of problem solving. 321 00:14:26,230 --> 00:14:30,310 Because I don't know about you, but for me, it's so satisfying, right? 322 00:14:30,310 --> 00:14:34,300 When you're working out a problem and finally you get it to work. 323 00:14:34,300 --> 00:14:37,900 Isn't that the most satisfying feeling? 324 00:14:37,900 --> 00:14:41,500 And I like to instill that in my students as well. 325 00:14:41,500 --> 00:14:42,970 You got to keep with it. 326 00:14:42,970 --> 00:14:44,950 And then, when it works and they do the Check50 327 00:14:44,950 --> 00:14:49,570 and they see all the green happy faces, the students are so happy. 328 00:14:49,570 --> 00:14:53,840 So I like to just keep that code feeling of that going as well. 329 00:14:53,840 --> 00:14:55,660 So this was Puzzle Day. 330 00:14:55,660 --> 00:14:58,330 We also do, at the end of the year in June, 331 00:14:58,330 --> 00:15:01,570 when we finish our school year, our CS50 Fair. 332 00:15:01,570 --> 00:15:06,610 So what I do, we grab a bunch of laptops so we go down to the lobby in my school 333 00:15:06,610 --> 00:15:09,680 by the front door where everybody could see what we're doing. 334 00:15:09,680 --> 00:15:13,570 And because we also have little kids in the school, elementary school. 335 00:15:13,570 --> 00:15:16,960 So we invite them to look at some of the projects and some of the games 336 00:15:16,960 --> 00:15:19,210 some of the websites the students have created. 337 00:15:19,210 --> 00:15:24,100 And I think also they have a real sense of pride that I've created this. 338 00:15:24,100 --> 00:15:28,000 And now, look, this person is enjoying something that I made. 339 00:15:28,000 --> 00:15:30,790 So it's a really fun, satisfying experience. 340 00:15:30,790 --> 00:15:33,910 So I do encourage, if it's possible, to kind of have 341 00:15:33,910 --> 00:15:37,660 these special events to make it special and to make 342 00:15:37,660 --> 00:15:40,520 it a different kind of class. 343 00:15:40,520 --> 00:15:43,280 So my very first year when I was teaching CS50, 344 00:15:43,280 --> 00:15:45,800 honestly, I had no idea what I was doing. 345 00:15:45,800 --> 00:15:48,020 I didn't want to just show the videos in class 346 00:15:48,020 --> 00:15:51,620 because I thought my principal would think, well, I'm not teaching anything. 347 00:15:51,620 --> 00:15:52,700 I'm just showing a video. 348 00:15:52,700 --> 00:15:54,740 So I thought, I better do some teaching. 349 00:15:54,740 --> 00:15:57,500 I'm new here, they're going to look at-- want to see me teaching. 350 00:15:57,500 --> 00:16:00,230 So what I did, again, watched the videos over and over 351 00:16:00,230 --> 00:16:03,500 and I tried to kind of teach like little sections every day. 352 00:16:03,500 --> 00:16:08,180 The first few years, students didn't all have Wi-Fi at home or computer 353 00:16:08,180 --> 00:16:09,500 availability at home. 354 00:16:09,500 --> 00:16:13,130 So I couldn't assign watching the lecture videos for homework 355 00:16:13,130 --> 00:16:16,400 because I couldn't know that everybody would have access. 356 00:16:16,400 --> 00:16:17,600 Now they do. 357 00:16:17,600 --> 00:16:20,870 Because after COVID, they all had to get technology at home. 358 00:16:20,870 --> 00:16:24,860 So now, I do assign that they watch a couple chapters, maybe 359 00:16:24,860 --> 00:16:26,570 10, 15 minutes a night. 360 00:16:26,570 --> 00:16:29,510 Because the lectures are so valuable. 361 00:16:29,510 --> 00:16:31,670 But of course, not two hours at one time. 362 00:16:31,670 --> 00:16:32,720 10 minutes. 363 00:16:32,720 --> 00:16:33,928 And then, I'll reteach. 364 00:16:33,928 --> 00:16:35,720 I'll still talk about the material, kind of 365 00:16:35,720 --> 00:16:37,430 like when you would do section, right? 366 00:16:37,430 --> 00:16:41,130 You delve into the material in a little bit more detail. 367 00:16:41,130 --> 00:16:42,930 So I'll go through it again. 368 00:16:42,930 --> 00:16:45,257 I'll answer questions. 369 00:16:45,257 --> 00:16:47,340 But my first year, I didn't know what I was doing. 370 00:16:47,340 --> 00:16:50,100 So I would try to create a little bit of the lesson. 371 00:16:50,100 --> 00:16:53,670 And then, I would just give them the p set problem to do with no help. 372 00:16:53,670 --> 00:16:57,000 Oh, you read it, it's all in that whole problem spec, right? 373 00:16:57,000 --> 00:17:01,080 But students-- it was probably not the best way to do it 374 00:17:01,080 --> 00:17:02,550 because they needed extra support. 375 00:17:02,550 --> 00:17:05,010 So as I learned, I went around, right? 376 00:17:05,010 --> 00:17:09,240 So one thing I started to do was maybe at the beginning of class 377 00:17:09,240 --> 00:17:12,210 create a little warm up problem or a starter problem. 378 00:17:12,210 --> 00:17:15,869 I'd have on the board when they come in, there's something for them to do. 379 00:17:15,869 --> 00:17:20,609 And it might be something like explain what this snippet of code does. 380 00:17:20,609 --> 00:17:22,589 Explain how the for loop works. 381 00:17:22,589 --> 00:17:24,690 What is this code going to print out? 382 00:17:24,690 --> 00:17:28,290 Just little bits to force them to think about what the code is doing. 383 00:17:28,290 --> 00:17:31,560 Maybe write a line of code to do something, right? 384 00:17:31,560 --> 00:17:32,885 So I do that-- 385 00:17:32,885 --> 00:17:35,010 I don't do it every day, but I do it a lot of days. 386 00:17:35,010 --> 00:17:37,650 And a lot of students have said that that helps them, 387 00:17:37,650 --> 00:17:42,810 sometimes, kind of thinking through what the coding is actually doing. 388 00:17:42,810 --> 00:17:47,060 So I like to do that as well. 389 00:17:47,060 --> 00:17:49,800 For experience, as I mentioned, I started to bring together 390 00:17:49,800 --> 00:17:52,110 small groups of struggling students. 391 00:17:52,110 --> 00:17:55,650 And particularly for those students, I will work 392 00:17:55,650 --> 00:17:58,110 through some pseudo code with them. 393 00:17:58,110 --> 00:18:00,540 So we'll put in-- and sometimes you see that 394 00:18:00,540 --> 00:18:03,960 in the hints when you pull down the little arrows, right? 395 00:18:03,960 --> 00:18:05,550 That wasn't always there. 396 00:18:05,550 --> 00:18:07,350 It's gotten a little bit more helpful. 397 00:18:07,350 --> 00:18:10,350 So I will develop code like that with them. 398 00:18:10,350 --> 00:18:12,690 Even if the hints are there, I might say, 399 00:18:12,690 --> 00:18:14,700 let's write these hints in our code. 400 00:18:14,700 --> 00:18:17,290 And then, let's start to think about what that's doing. 401 00:18:17,290 --> 00:18:19,290 And even break it down a little bit more, 402 00:18:19,290 --> 00:18:22,680 particularly with the students that need extra support, all right? 403 00:18:22,680 --> 00:18:24,660 I want everybody in my class to pass. 404 00:18:24,660 --> 00:18:26,280 Everybody to do really well. 405 00:18:26,280 --> 00:18:30,420 And everybody to know that they can do this if you work on it, 406 00:18:30,420 --> 00:18:33,810 you ask questions, you get support. 407 00:18:33,810 --> 00:18:37,290 So sometimes it's a little tricky because students 408 00:18:37,290 --> 00:18:39,510 are encouraged to collaborate, but sometimes they 409 00:18:39,510 --> 00:18:40,650 collaborate so much, right? 410 00:18:40,650 --> 00:18:41,595 Like almost too much. 411 00:18:41,595 --> 00:18:42,890 [LAUGHS] 412 00:18:42,890 --> 00:18:46,122 So sometimes you go, is that really their code? 413 00:18:46,122 --> 00:18:47,330 Especially with the duck now. 414 00:18:47,330 --> 00:18:50,360 Because sometimes, the duck gives different kind of code. 415 00:18:50,360 --> 00:18:53,870 But at the end of the day, that's why I did the video walkthrough 416 00:18:53,870 --> 00:18:55,760 to have them actually explain what they're 417 00:18:55,760 --> 00:18:58,468 doing so I know that they're understanding what their code is all 418 00:18:58,468 --> 00:18:59,450 about. 419 00:18:59,450 --> 00:19:01,820 But sometimes, I'll even create my own walkthrough 420 00:19:01,820 --> 00:19:04,340 for a problem that may not have a walkthrough. 421 00:19:04,340 --> 00:19:08,120 As you'll see also there were a number of practice problems that are available. 422 00:19:08,120 --> 00:19:09,920 I created some a few years ago. 423 00:19:09,920 --> 00:19:11,420 I'll show you the links to those. 424 00:19:11,420 --> 00:19:14,300 And then, there are some older CS50 problems 425 00:19:14,300 --> 00:19:17,330 that I reformatted so that there are more problems 426 00:19:17,330 --> 00:19:21,110 to have students so they don't have to go from Hello to Mario. 427 00:19:21,110 --> 00:19:24,800 Because for my students, that's a little too quick, right? 428 00:19:24,800 --> 00:19:28,730 They need some other little programs to get used to the syntax 429 00:19:28,730 --> 00:19:30,230 because they also-- 430 00:19:30,230 --> 00:19:33,458 they have seven classes they're taking, right? 431 00:19:33,458 --> 00:19:35,000 They're writing college applications. 432 00:19:35,000 --> 00:19:36,042 They have a lot going on. 433 00:19:36,042 --> 00:19:38,870 They're working a part time job or have family responsibilities. 434 00:19:38,870 --> 00:19:41,930 So I want to get them moving a little slower, 435 00:19:41,930 --> 00:19:44,100 but have interesting problems for them to continue 436 00:19:44,100 --> 00:19:46,030 to work and learn as they go. 437 00:19:46,030 --> 00:19:48,870 So I've slowed down the pace a lot. 438 00:19:48,870 --> 00:19:50,550 I have an example here in a moment. 439 00:19:50,550 --> 00:19:55,260 I'll show you what it might look like once I get to unit 1 or unit 2. 440 00:19:55,260 --> 00:19:59,160 So again, I might assign a couple of chapters of a lecture video 441 00:19:59,160 --> 00:20:00,120 for homework. 442 00:20:00,120 --> 00:20:02,460 And then, the practice problems. 443 00:20:02,460 --> 00:20:04,560 So there are a number of practice problems. 444 00:20:04,560 --> 00:20:08,040 And I'll assign those to students-- not the p set problems you did, 445 00:20:08,040 --> 00:20:09,270 different problems. 446 00:20:09,270 --> 00:20:11,730 I'll let them do them collaboratively. 447 00:20:11,730 --> 00:20:14,670 Maybe struggle with it for a day or two and see if they 448 00:20:14,670 --> 00:20:16,500 could figure out what to do with it. 449 00:20:16,500 --> 00:20:19,467 And then, eventually, I'll give them some pseudo code. 450 00:20:19,467 --> 00:20:21,300 And then, I'll give them a little more help. 451 00:20:21,300 --> 00:20:23,280 And then, at the end of the day, I'll actually 452 00:20:23,280 --> 00:20:27,570 walk through the solution with them so that the practice problem some of them 453 00:20:27,570 --> 00:20:30,810 can help prepare you for the next p set problem. 454 00:20:30,810 --> 00:20:34,130 So they have some idea now of how to start a problem 455 00:20:34,130 --> 00:20:36,120 and that maybe iterates through a string. 456 00:20:36,120 --> 00:20:40,130 Or how to solve a problem that looks character by character through a name 457 00:20:40,130 --> 00:20:42,560 or something like that, right? 458 00:20:42,560 --> 00:20:45,560 And so these code-alongs I use with these practice problems 459 00:20:45,560 --> 00:20:48,150 and I think that they've worked out pretty well. 460 00:20:48,150 --> 00:20:50,900 So again, you could adopt it, you could adapt it. 461 00:20:50,900 --> 00:20:53,150 There's so many different ways to do this. 462 00:20:53,150 --> 00:20:55,940 I would say I'm kind of a little adop-- 463 00:20:55,940 --> 00:20:58,040 kind of adapter, really. 464 00:20:58,040 --> 00:21:00,830 Also, I allow students to have a lot of choice 465 00:21:00,830 --> 00:21:04,370 because there's the more comfy and the less comfy programs. 466 00:21:04,370 --> 00:21:07,310 So I find that to be really valuable, right? 467 00:21:07,310 --> 00:21:10,850 So the students that have been coding since the seventh grade can come in 468 00:21:10,850 --> 00:21:13,130 and they'll just do the more advanced problems. 469 00:21:13,130 --> 00:21:14,240 And they like that, right? 470 00:21:14,240 --> 00:21:18,540 They'll do credit instead of cash and they'll be challenged by that. 471 00:21:18,540 --> 00:21:20,900 So that's really worked out well. 472 00:21:20,900 --> 00:21:22,550 Because I like to give students choice. 473 00:21:22,550 --> 00:21:24,560 I want them to take ownership of this. 474 00:21:24,560 --> 00:21:28,760 And again, I never want students to get bored. 475 00:21:28,760 --> 00:21:32,660 So if they need extra time, they need an explanation, 476 00:21:32,660 --> 00:21:35,600 again, I might point them to a chapter of the lecture video 477 00:21:35,600 --> 00:21:38,060 if I don't have chance to do it that day in class. 478 00:21:38,060 --> 00:21:40,260 I'll point them to a short, right? 479 00:21:40,260 --> 00:21:42,003 So there are so many resources out there. 480 00:21:42,003 --> 00:21:43,920 They could look at the notes from the lecture. 481 00:21:43,920 --> 00:21:47,250 They could look at the source code that David used in lecture that week, right? 482 00:21:47,250 --> 00:21:49,500 You can download all the source code or teach students 483 00:21:49,500 --> 00:21:53,010 how to do that so they have little examples of different codes 484 00:21:53,010 --> 00:21:57,510 that they could use to learn from and to use as an example for the next program 485 00:21:57,510 --> 00:21:58,900 that they're going to work on. 486 00:21:58,900 --> 00:22:03,390 So again, it works for me because, with so many students 487 00:22:03,390 --> 00:22:07,410 and with such a wide range of abilities, all of these resources 488 00:22:07,410 --> 00:22:09,810 and the large selection of problems really 489 00:22:09,810 --> 00:22:14,030 means there's something there for everybody, OK? 490 00:22:14,030 --> 00:22:16,940 So the practice problems, there's about three practice problems-- 491 00:22:16,940 --> 00:22:18,980 short practice problems per unit. 492 00:22:18,980 --> 00:22:22,040 And I'll show you a little bit where you'll find them in a moment, right? 493 00:22:22,040 --> 00:22:26,090 And each one is really about one particular topic. 494 00:22:26,090 --> 00:22:30,530 So there's one just very simple one on how to debug. 495 00:22:30,530 --> 00:22:34,430 You just have to practice taking code that's not syntactically correct 496 00:22:34,430 --> 00:22:38,750 and figure out what's wrong with it and how do you debug it, right? 497 00:22:38,750 --> 00:22:41,270 And again, to demonstrate new concepts. 498 00:22:41,270 --> 00:22:46,260 So there's a program for unit 2 called Password, 499 00:22:46,260 --> 00:22:52,610 which is determining if a password has a number, a letter, a lowercase letter, 500 00:22:52,610 --> 00:22:53,330 a symbol. 501 00:22:53,330 --> 00:22:55,490 And so that's been really helpful for students 502 00:22:55,490 --> 00:22:57,890 to understand how to do readability. 503 00:22:57,890 --> 00:23:00,590 Because now they need to understand, how do I 504 00:23:00,590 --> 00:23:02,840 check if something is uppercase or lowercase 505 00:23:02,840 --> 00:23:05,420 or if it's a digit or et cetera, right? 506 00:23:05,420 --> 00:23:08,750 So it gives them those ideas of, where do I find those functions? 507 00:23:08,750 --> 00:23:10,700 Where do I find like-- 508 00:23:10,700 --> 00:23:12,560 is alpha, how do I figure that out? 509 00:23:12,560 --> 00:23:15,960 So by doing some of these practice problems, that it kind of sets them up, 510 00:23:15,960 --> 00:23:20,400 I feel, for success so they have a model now, all right? 511 00:23:20,400 --> 00:23:23,140 And so they're available. 512 00:23:23,140 --> 00:23:25,140 I will show you where they are in a few moments. 513 00:23:25,140 --> 00:23:28,170 And they come with the Check50 so that you could use it 514 00:23:28,170 --> 00:23:30,870 and also to have students check for their own correctness. 515 00:23:30,870 --> 00:23:34,140 There's no Submit50 because they are practice problems. 516 00:23:34,140 --> 00:23:37,590 But we can figure that out, all right? 517 00:23:37,590 --> 00:23:41,520 So I teach the very short lesson after they watch 518 00:23:41,520 --> 00:23:43,200 a little bit of the lecture video. 519 00:23:43,200 --> 00:23:45,120 I'll do the code-alongs. 520 00:23:45,120 --> 00:23:48,360 I'll allow them to collaborate on the practice problems. 521 00:23:48,360 --> 00:23:51,930 I'll help the struggling students by going through pseudo code 522 00:23:51,930 --> 00:23:54,510 with them, maybe even a little starter code, 523 00:23:54,510 --> 00:23:56,910 maybe the do while loop at the beginning of the program 524 00:23:56,910 --> 00:23:58,260 to validate the user input. 525 00:23:58,260 --> 00:23:59,670 We may do that together. 526 00:23:59,670 --> 00:24:02,430 And then, let them take over from there. 527 00:24:02,430 --> 00:24:05,590 So again, for some of the practice problems we'll do that. 528 00:24:05,590 --> 00:24:09,780 So for unit 1, this is kind of the way that I will do unit 1. 529 00:24:09,780 --> 00:24:12,060 So unit 0, we do Scratch. 530 00:24:12,060 --> 00:24:15,030 Now, unit 1, this is the first time for most students 531 00:24:15,030 --> 00:24:17,100 that they're seeing a text-based programming 532 00:24:17,100 --> 00:24:19,830 language with semicolons and curly braces, 533 00:24:19,830 --> 00:24:24,690 having to use a compiler to compile the programs. 534 00:24:24,690 --> 00:24:28,710 So the bold ones, Hello, Mario, Cash or Credit, 535 00:24:28,710 --> 00:24:31,830 those are the problems you've already done, all right? 536 00:24:31,830 --> 00:24:33,870 So I'll share with you some of these others. 537 00:24:33,870 --> 00:24:37,540 So I have these listed on another page. 538 00:24:37,540 --> 00:24:42,480 So debug and half and prime are practice problems. 539 00:24:42,480 --> 00:24:45,930 So those are problems that are there just to allow-- so you could use them 540 00:24:45,930 --> 00:24:46,740 or not. 541 00:24:46,740 --> 00:24:49,050 They're just another resource, right? 542 00:24:49,050 --> 00:24:52,500 So if you want to have maybe a code along with a student. 543 00:24:52,500 --> 00:24:53,610 Let me code with you. 544 00:24:53,610 --> 00:24:54,870 Let's code it together. 545 00:24:54,870 --> 00:24:58,200 Maybe you don't want to do the full code along for Mario or for Cash. 546 00:24:58,200 --> 00:24:59,890 You want them to think about that. 547 00:24:59,890 --> 00:25:03,210 But maybe you want to do a couple of programs and code with them. 548 00:25:03,210 --> 00:25:06,690 A couple of these programs, like Fahrenheit and ISBN, 549 00:25:06,690 --> 00:25:10,350 are actually older CS50 problems that I still use. 550 00:25:10,350 --> 00:25:11,580 And I've reformatted. 551 00:25:11,580 --> 00:25:14,100 I give you links to all of these, all right? 552 00:25:14,100 --> 00:25:17,460 So the idea with those, again, they're like Fahrenheit, just 553 00:25:17,460 --> 00:25:20,040 converts a temperature from Celsius to Fahrenheit. 554 00:25:20,040 --> 00:25:22,200 It's about three lines of code. 555 00:25:22,200 --> 00:25:25,380 But students are very satisfied when they get it to work. 556 00:25:25,380 --> 00:25:28,740 It doesn't sound like much now that you've all done finance, right? 557 00:25:28,740 --> 00:25:31,350 You could go back and think, oh my gosh, this is simple. 558 00:25:31,350 --> 00:25:36,010 But for a brand new student, after they do Hello and it's pretty basic. 559 00:25:36,010 --> 00:25:37,272 We do a lot of it together. 560 00:25:37,272 --> 00:25:38,980 A little bit of a temperature conversion. 561 00:25:38,980 --> 00:25:40,090 It's like, I made it work. 562 00:25:40,090 --> 00:25:42,910 They have that sense of success, right? 563 00:25:42,910 --> 00:25:47,710 So for me, a lot of the key is really allowing them to feel success. 564 00:25:47,710 --> 00:25:50,860 Because I feel like that's going to allow them to feel like I can do this. 565 00:25:50,860 --> 00:25:53,780 It's going to give them the encouragement to keep trying. 566 00:25:53,780 --> 00:25:55,390 And who knows? 567 00:25:55,390 --> 00:25:57,882 And I do have a number of students that ends up 568 00:25:57,882 --> 00:25:59,590 wanting to major in computer science when 569 00:25:59,590 --> 00:26:03,250 they get to college that knew nothing about it and just fall in love with it. 570 00:26:03,250 --> 00:26:05,440 Really loved the algorithmic thinking. 571 00:26:05,440 --> 00:26:07,000 Loved the challenge. 572 00:26:07,000 --> 00:26:10,630 And even we'll share sometimes that it's helped them in other subjects 573 00:26:10,630 --> 00:26:14,920 learning how to break down and solve problems, right? 574 00:26:14,920 --> 00:26:18,520 And not being afraid to take on a hard problem knowing 575 00:26:18,520 --> 00:26:20,950 that you could look at a problem and start feeling like, 576 00:26:20,950 --> 00:26:23,170 I have no idea how to solve this. 577 00:26:23,170 --> 00:26:27,130 But if I think about it and work through it, I can get a plan together 578 00:26:27,130 --> 00:26:28,360 and I can do it. 579 00:26:28,360 --> 00:26:31,870 So I think even if the students never take another computer science 580 00:26:31,870 --> 00:26:34,840 course after your course, it's so valuable 581 00:26:34,840 --> 00:26:37,750 to feel comfortable getting a hard problem 582 00:26:37,750 --> 00:26:39,730 and figuring out how to solve it. 583 00:26:39,730 --> 00:26:42,790 So all of that problem solving, algorithmic thinking, 584 00:26:42,790 --> 00:26:46,930 it's going to benefit them in any walk of life, right? 585 00:26:46,930 --> 00:26:49,030 So this is kind of how I pace unit 1. 586 00:26:49,030 --> 00:26:53,380 And I might take a month or 2 to do it, right? 587 00:26:53,380 --> 00:26:54,970 I don't do it in one week. 588 00:26:54,970 --> 00:26:57,010 Because also we have short periods. 589 00:26:57,010 --> 00:27:00,010 I don't want them to have to do a lot of programming for homework. 590 00:27:00,010 --> 00:27:02,020 I'll let them do it in class. 591 00:27:02,020 --> 00:27:02,800 Sorry. 592 00:27:02,800 --> 00:27:05,200 So I might take a number of weeks to do this. 593 00:27:05,200 --> 00:27:07,000 And every year is a little different. 594 00:27:07,000 --> 00:27:07,930 Students go fast. 595 00:27:07,930 --> 00:27:10,360 Actually, this year they went faster because of the Duck. 596 00:27:10,360 --> 00:27:11,820 The Duck helped them so much. 597 00:27:11,820 --> 00:27:14,320 They were getting through with their program so much faster. 598 00:27:14,320 --> 00:27:17,800 It's like, what do I do now? 599 00:27:17,800 --> 00:27:21,535 And then, in unit 2, I kind of pace it like this. 600 00:27:21,535 --> 00:27:25,340 601 00:27:25,340 --> 00:27:31,060 So again, initials, old friends, and calc and visionaire 602 00:27:31,060 --> 00:27:36,820 are all older CS50 problems and I've given you links to all of these, OK? 603 00:27:36,820 --> 00:27:39,850 Are we good so far? 604 00:27:39,850 --> 00:27:44,813 And password no vowels are some of the practice problems. 605 00:27:44,813 --> 00:27:46,480 Scrabble I think you've all seen, right? 606 00:27:46,480 --> 00:27:47,730 So Scrabble is a nice little-- 607 00:27:47,730 --> 00:27:50,410 I'd probably use that as a practice problem. 608 00:27:50,410 --> 00:27:52,368 Yeah, so I really like to have the ability, 609 00:27:52,368 --> 00:27:55,660 particularly here now, they're working with strings, we're working with arrays. 610 00:27:55,660 --> 00:27:58,210 And so there's a number of things here that I 611 00:27:58,210 --> 00:28:01,210 allow them to kind of get comfortable with the material 612 00:28:01,210 --> 00:28:04,553 before they get into doing what I call the performance-based assessments, 613 00:28:04,553 --> 00:28:06,220 the ones that count towards their grade. 614 00:28:06,220 --> 00:28:09,730 615 00:28:09,730 --> 00:28:12,670 So the practice problems right now are on this site. 616 00:28:12,670 --> 00:28:15,430 So you have access to these slides. 617 00:28:15,430 --> 00:28:20,920 And when you go here, see how this opens, right? 618 00:28:20,920 --> 00:28:25,870 So you'll see there's practice problems after week one after, week two. 619 00:28:25,870 --> 00:28:30,730 So you have links to these problems on the CS50 X site. 620 00:28:30,730 --> 00:28:32,560 Let me make this full screen. 621 00:28:32,560 --> 00:28:37,000 And the past problems, I have links directly in here. 622 00:28:37,000 --> 00:28:41,410 So the problem specs, I rewrote them to be a little more current and formatted. 623 00:28:41,410 --> 00:28:44,020 And you're welcome to use them if you want. 624 00:28:44,020 --> 00:28:47,770 Also you're welcome to write your own programs eventually, right? 625 00:28:47,770 --> 00:28:51,880 Maybe you make your own ideas on what would be a good program for a student. 626 00:28:51,880 --> 00:28:55,360 So what I love about this is once you get comfortable taking the class 627 00:28:55,360 --> 00:28:58,780 and you're teaching it, maybe not the first year or the second year. 628 00:28:58,780 --> 00:29:02,020 But eventually, you come up with your own ideas, right? 629 00:29:02,020 --> 00:29:04,540 And maybe you and you're in touch with other teachers here, 630 00:29:04,540 --> 00:29:07,982 you maybe share your resources now and have a nice community say, 631 00:29:07,982 --> 00:29:09,940 gee, it would be nice to have a little program. 632 00:29:09,940 --> 00:29:12,460 Let's write up a little problem spec to be 633 00:29:12,460 --> 00:29:16,570 able to ask students to create this type of a problem, all right? 634 00:29:16,570 --> 00:29:21,220 So anyway, I find all of these additional problems for me very helpful 635 00:29:21,220 --> 00:29:24,200 to give the students some time to get used to everything, 636 00:29:24,200 --> 00:29:27,620 get used to the algorithmic thinking, and we take it a little at a time. 637 00:29:27,620 --> 00:29:30,790 638 00:29:30,790 --> 00:29:36,220 Now, I do have some students who totally finish the entire CS50 curriculum. 639 00:29:36,220 --> 00:29:38,950 I had one student, I think, finished it in two months. 640 00:29:38,950 --> 00:29:40,240 Just did everything. 641 00:29:40,240 --> 00:29:41,890 Two months. 642 00:29:41,890 --> 00:29:43,390 Faster than they do at Harvard even. 643 00:29:43,390 --> 00:29:44,620 I mean, crazy, right? 644 00:29:44,620 --> 00:29:45,938 He just fell in love with it. 645 00:29:45,938 --> 00:29:47,230 And that's all he did at night. 646 00:29:47,230 --> 00:29:49,600 He would just work out all the programming problems. 647 00:29:49,600 --> 00:29:52,150 So eventually, I do have those kind of students. 648 00:29:52,150 --> 00:29:55,630 And again, the nice thing about this is that I just let them move ahead 649 00:29:55,630 --> 00:29:57,010 or I point them to the resources. 650 00:29:57,010 --> 00:29:58,630 Just keep going do what you can. 651 00:29:58,630 --> 00:29:59,980 I'm there to support you. 652 00:29:59,980 --> 00:30:03,820 And now that you've taken the course, you're there to support them, right? 653 00:30:03,820 --> 00:30:07,660 But there's also other CS50 courses in this CS50 world, right? 654 00:30:07,660 --> 00:30:09,550 So there's a Python course. 655 00:30:09,550 --> 00:30:12,100 There's an artificial intelligence course. 656 00:30:12,100 --> 00:30:12,970 And there's others. 657 00:30:12,970 --> 00:30:15,555 Now there's a SQL course. 658 00:30:15,555 --> 00:30:16,930 A new R course that's coming out. 659 00:30:16,930 --> 00:30:22,390 So there's all these other CS50 courses that I point my students 660 00:30:22,390 --> 00:30:24,700 to to keep them going because the format they're 661 00:30:24,700 --> 00:30:26,680 familiar now with how the format works. 662 00:30:26,680 --> 00:30:28,750 These use the same coding-- 663 00:30:28,750 --> 00:30:30,880 code space, the same coding environment. 664 00:30:30,880 --> 00:30:33,880 And so I'll point them towards this to kind of keep them engaged, 665 00:30:33,880 --> 00:30:39,510 keep them learning to see if they can get as much out of it as possible. 666 00:30:39,510 --> 00:30:43,410 Now, what I do-- and I also have students that finish up more quickly-- 667 00:30:43,410 --> 00:30:48,210 is that I do make them into class experts, right? 668 00:30:48,210 --> 00:30:52,110 So sometimes, I'll have a poster on the wall for each problem. 669 00:30:52,110 --> 00:30:55,920 I might have readability and Caesar and substitution. 670 00:30:55,920 --> 00:30:59,130 And then, when a student finishes early, I'll 671 00:30:59,130 --> 00:31:03,090 offer them an extra credit point to put their name on the poster 672 00:31:03,090 --> 00:31:05,460 and to be a helper to other students. 673 00:31:05,460 --> 00:31:09,240 Because especially if you have a very large class, as you can imagine, 674 00:31:09,240 --> 00:31:13,980 it's very helpful to have your own experts, or we could say TAs, right? 675 00:31:13,980 --> 00:31:16,830 And sometimes in my school, I do get a TA-- 676 00:31:16,830 --> 00:31:19,380 rarely, but sometimes, that took my class 677 00:31:19,380 --> 00:31:21,540 that the school lets them come back and be a TA. 678 00:31:21,540 --> 00:31:25,800 So I occasionally, not often, have a TA as well, right? 679 00:31:25,800 --> 00:31:28,470 But I like to encourage them to be experts. 680 00:31:28,470 --> 00:31:29,910 They feel good about that. 681 00:31:29,910 --> 00:31:32,490 And also, they're explaining to somebody else, 682 00:31:32,490 --> 00:31:34,650 they get to learn it better as well, right? 683 00:31:34,650 --> 00:31:38,130 I think it's a really great process. 684 00:31:38,130 --> 00:31:40,330 So again, I've mentioned this before where 685 00:31:40,330 --> 00:31:45,700 the scaffolding has been just huge in terms of getting students 686 00:31:45,700 --> 00:31:48,310 to have that sense of success, OK? 687 00:31:48,310 --> 00:31:50,230 So again, breaking it down. 688 00:31:50,230 --> 00:31:51,160 I'll work with them. 689 00:31:51,160 --> 00:31:51,760 We'll code. 690 00:31:51,760 --> 00:31:55,630 We'll put comments in the code-- the starter code together, right? 691 00:31:55,630 --> 00:31:58,180 Maybe little snippets developed together or something 692 00:31:58,180 --> 00:32:00,100 like that and allow them to-- 693 00:32:00,100 --> 00:32:03,850 I encourage them to pseudo code together. 694 00:32:03,850 --> 00:32:08,200 Work with your table Mates and figure out the pseudo code together. 695 00:32:08,200 --> 00:32:12,303 I always say that's certainly allowed, even on the graded problems, right? 696 00:32:12,303 --> 00:32:14,470 And on the others, allow them to struggle through it 697 00:32:14,470 --> 00:32:16,600 and see what they can figure out. 698 00:32:16,600 --> 00:32:19,760 I always find it so nice when two students are struggling together 699 00:32:19,760 --> 00:32:21,760 to get through it and they're learning together. 700 00:32:21,760 --> 00:32:23,800 And then, they have a peer, they have a friend. 701 00:32:23,800 --> 00:32:28,280 And I think it just makes it more fun for them as well. 702 00:32:28,280 --> 00:32:31,780 So again, my goals for my computer science class 703 00:32:31,780 --> 00:32:36,350 is I want them to get comfortable with the idea of programming, right? 704 00:32:36,350 --> 00:32:39,850 It's not about learning to program and being an expert in C, 705 00:32:39,850 --> 00:32:43,210 but learning about how programming works, right? 706 00:32:43,210 --> 00:32:45,790 That there's syntax rules you have to follow. 707 00:32:45,790 --> 00:32:49,150 There sometimes are strange symbols, and it takes time. 708 00:32:49,150 --> 00:32:52,940 But basically, it's about learning how to break down and solve a problem. 709 00:32:52,940 --> 00:32:57,160 So again, feel that sense of confidence, that I know I can do this, right? 710 00:32:57,160 --> 00:32:59,620 I just have to keep asking for help. 711 00:32:59,620 --> 00:33:02,050 I need to stick with it and I can get there. 712 00:33:02,050 --> 00:33:06,760 And keeping beginners and more advanced students engaged at the same time. 713 00:33:06,760 --> 00:33:08,915 So it's a little challenging sometimes. 714 00:33:08,915 --> 00:33:09,790 I'm not going to lie. 715 00:33:09,790 --> 00:33:11,290 There's challenges. 716 00:33:11,290 --> 00:33:14,170 But using CS50 allows me to do it in a way 717 00:33:14,170 --> 00:33:17,320 that I feel a lot of other curriculums just wouldn't, right? 718 00:33:17,320 --> 00:33:20,260 So it's been really very successful like that. 719 00:33:20,260 --> 00:33:22,052 Knowing that they are-- 720 00:33:22,052 --> 00:33:24,010 there's a sense of satisfaction, like you said, 721 00:33:24,010 --> 00:33:25,552 when you solve a really hard problem. 722 00:33:25,552 --> 00:33:28,580 You can kind of get that-- that light bulb goes off. 723 00:33:28,580 --> 00:33:31,070 And eventually, my goal is that they can become 724 00:33:31,070 --> 00:33:35,570 independent in learning how to figure out what they need to do, right? 725 00:33:35,570 --> 00:33:37,100 Because especially when you finish-- 726 00:33:37,100 --> 00:33:39,050 C is a little harder to look up sometimes. 727 00:33:39,050 --> 00:33:43,310 But once you get to Python and HTML and CSS, 728 00:33:43,310 --> 00:33:47,540 there are so many wonderful resources now, they can easily go out in Google. 729 00:33:47,540 --> 00:33:50,600 They can find resources on W3 schools. 730 00:33:50,600 --> 00:33:52,730 That they don't need just the CS50 resource. 731 00:33:52,730 --> 00:33:55,400 They can go out now to the internet and Google 732 00:33:55,400 --> 00:33:58,200 and find all these great ways of figuring out how to do that. 733 00:33:58,200 --> 00:34:02,540 So I really-- my goal, again, for them is to become independent learners. 734 00:34:02,540 --> 00:34:04,880 To know that we have a start now. 735 00:34:04,880 --> 00:34:06,680 I know how to break that problem down. 736 00:34:06,680 --> 00:34:09,770 And now, I just need to figure out my approach to this problem. 737 00:34:09,770 --> 00:34:13,429 So I really want them to be able to do it more like on their own 738 00:34:13,429 --> 00:34:15,760 by the end of the year. 739 00:34:15,760 --> 00:34:18,060 So who has questions? 740 00:34:18,060 --> 00:34:18,909 Any questions? 741 00:34:18,909 --> 00:34:20,370 You see a lot of questions. 742 00:34:20,370 --> 00:34:20,977 Thank you. 743 00:34:20,977 --> 00:34:21,810 That would be great. 744 00:34:21,810 --> 00:34:24,659 Let's start up here. 745 00:34:24,659 --> 00:34:28,409 AUDIENCE: Thank you, Miss Margaret for your clear explanation 746 00:34:28,409 --> 00:34:31,380 about your journey in teaching computer science. 747 00:34:31,380 --> 00:34:36,130 So as you said that you like-- the students comfortable to make mistakes, 748 00:34:36,130 --> 00:34:36,630 right? 749 00:34:36,630 --> 00:34:40,230 And I believe it's a long way to make the students become 750 00:34:40,230 --> 00:34:42,540 comfortable for their mistakes. 751 00:34:42,540 --> 00:34:49,650 So how you handle that kind of situation when the students feel stressful, even 752 00:34:49,650 --> 00:34:52,620 frustrated? 753 00:34:52,620 --> 00:34:57,190 Like us here when we are finishing the problem set. 754 00:34:57,190 --> 00:35:01,300 So how to make them keep like, OK, I can do this. 755 00:35:01,300 --> 00:35:02,760 I can finish this. 756 00:35:02,760 --> 00:35:05,850 Yeah, maybe you can share with us the solution. 757 00:35:05,850 --> 00:35:09,990 Because I think our students will have that kind of condition too. 758 00:35:09,990 --> 00:35:10,710 Thank you. 759 00:35:10,710 --> 00:35:12,085 MARGARET TANZOSH: No, absolutely. 760 00:35:12,085 --> 00:35:12,870 I agree with you. 761 00:35:12,870 --> 00:35:13,620 Well, a couple of things. 762 00:35:13,620 --> 00:35:15,610 So I try to get them excited at the beginning. 763 00:35:15,610 --> 00:35:18,550 I'll start my year also by showing them some 764 00:35:18,550 --> 00:35:21,220 of the previous years' final projects. 765 00:35:21,220 --> 00:35:23,470 And just letting them know that most of these students 766 00:35:23,470 --> 00:35:25,512 knew nothing about programming when they started. 767 00:35:25,512 --> 00:35:27,855 And if you stay with it that, eventually, you 768 00:35:27,855 --> 00:35:29,230 could do something like this too. 769 00:35:29,230 --> 00:35:32,200 Just to kind of show them what the ends of it could look like, right? 770 00:35:32,200 --> 00:35:33,910 So I will do that. 771 00:35:33,910 --> 00:35:36,340 And then, a lot of it is just to-- 772 00:35:36,340 --> 00:35:40,365 I put up anchor charts in my room with a little bit of syntax 773 00:35:40,365 --> 00:35:42,490 where I'll have this is what a for loop looks like. 774 00:35:42,490 --> 00:35:45,760 This is what a do while loop looks like, something like 775 00:35:45,760 --> 00:35:47,980 that so they have those references. 776 00:35:47,980 --> 00:35:53,800 And there is-- and I do stress over and over again that it's totally normal 777 00:35:53,800 --> 00:35:56,290 to have that sense of that-- 778 00:35:56,290 --> 00:36:00,226 [LAUGHTER] 779 00:36:00,226 --> 00:36:04,170 780 00:36:04,170 --> 00:36:09,210 That it's totally normal to have that sense of frustration. 781 00:36:09,210 --> 00:36:14,790 When I'm demonstrating little bits of code, I'll often make mistakes too. 782 00:36:14,790 --> 00:36:20,010 Sometimes on purpose, sometimes not on purpose, right? 783 00:36:20,010 --> 00:36:24,390 And so I want them to see that we all make mistakes, right? 784 00:36:24,390 --> 00:36:25,650 That it's normal. 785 00:36:25,650 --> 00:36:26,850 And I'll help them. 786 00:36:26,850 --> 00:36:30,510 If they're so frustrated that they don't know what to do next, 787 00:36:30,510 --> 00:36:32,010 I'll give them a hint. 788 00:36:32,010 --> 00:36:34,770 I might give them one line of code, right? 789 00:36:34,770 --> 00:36:38,910 And now with the CS50 Duck, they have that as a resource too. 790 00:36:38,910 --> 00:36:40,950 That's been a massive help, as I said. 791 00:36:40,950 --> 00:36:44,170 Beginning of the year, the programs were being finished like this. 792 00:36:44,170 --> 00:36:46,350 And it's like, oh my gosh. 793 00:36:46,350 --> 00:36:47,400 Were you cheating? 794 00:36:47,400 --> 00:36:48,930 How did you do it so fast? 795 00:36:48,930 --> 00:36:50,670 We asked the Duck. 796 00:36:50,670 --> 00:36:51,600 It was like, got it. 797 00:36:51,600 --> 00:36:54,420 OK, good. 798 00:36:54,420 --> 00:36:57,690 Again, just to keep stressing, we all make mistakes. 799 00:36:57,690 --> 00:37:00,240 That's why there's something called debugging. 800 00:37:00,240 --> 00:37:01,800 That it's going to take time. 801 00:37:01,800 --> 00:37:04,740 It's like learning a new language, all right? 802 00:37:04,740 --> 00:37:06,180 So who else has a question? 803 00:37:06,180 --> 00:37:06,930 Over here, Ika. 804 00:37:06,930 --> 00:37:11,990 805 00:37:11,990 --> 00:37:13,310 AUDIENCE: OK, thank you. 806 00:37:13,310 --> 00:37:14,120 My name is Ika. 807 00:37:14,120 --> 00:37:16,370 I'm from [INAUDIBLE] Java. 808 00:37:16,370 --> 00:37:19,940 So first of all, I would like to say thank you for Margaret 809 00:37:19,940 --> 00:37:23,240 for assisting me during this course. 810 00:37:23,240 --> 00:37:27,500 Yeah, I like the way how you explain material, especially 811 00:37:27,500 --> 00:37:31,610 for me who has no computer science background. 812 00:37:31,610 --> 00:37:37,400 And so what I want to ask you is how to enhance 813 00:37:37,400 --> 00:37:41,630 the student's active engagement, especially in the computer science 814 00:37:41,630 --> 00:37:44,120 class for beginners. 815 00:37:44,120 --> 00:37:46,730 I mean, here for both the teachers and students. 816 00:37:46,730 --> 00:37:51,440 For example, like me, I just learned about computer science 817 00:37:51,440 --> 00:37:53,720 for the first time here in CS50. 818 00:37:53,720 --> 00:38:01,490 But I want to make my students interested and motivated in it. 819 00:38:01,490 --> 00:38:05,150 But sometimes, when my student-- 820 00:38:05,150 --> 00:38:09,810 when I ask my students, for example, do you have any questions? 821 00:38:09,810 --> 00:38:11,670 They just keep silence. 822 00:38:11,670 --> 00:38:16,440 And there's just two choices in my mind, whether they have understood all of them 823 00:38:16,440 --> 00:38:19,920 or whether they know nothing about it. 824 00:38:19,920 --> 00:38:22,590 Yeah, that's what I want to ask you. 825 00:38:22,590 --> 00:38:25,770 Maybe you have some suggestions, especially for computer science. 826 00:38:25,770 --> 00:38:28,800 Because this is-- it's not my field. 827 00:38:28,800 --> 00:38:32,145 But I want to try to practice in my classroom. 828 00:38:32,145 --> 00:38:32,730 OK, thank you. 829 00:38:32,730 --> 00:38:34,480 MARGARET TANZOSH: That's a great question. 830 00:38:34,480 --> 00:38:36,835 I have the same thing happens to me all the time. 831 00:38:36,835 --> 00:38:37,710 I'm not going to lie. 832 00:38:37,710 --> 00:38:39,390 It happens like all the time. 833 00:38:39,390 --> 00:38:43,260 And one thing I try to make sure because I've had some students sometimes 834 00:38:43,260 --> 00:38:47,100 that ended up sitting next to a very advanced student. 835 00:38:47,100 --> 00:38:49,950 Like a real beginner next to a very advanced student. 836 00:38:49,950 --> 00:38:54,180 And then, often a girl sitting next to a guy sometimes, I'm going to say, right? 837 00:38:54,180 --> 00:38:55,583 And a very confident guy. 838 00:38:55,583 --> 00:38:57,000 He knows he's been coding forever. 839 00:38:57,000 --> 00:39:00,480 And it makes her feel like she's not good enough sometimes. 840 00:39:00,480 --> 00:39:03,210 So I try to be very careful about that and make sure 841 00:39:03,210 --> 00:39:04,980 that those arrangements don't happen. 842 00:39:04,980 --> 00:39:07,860 That people sit with people they can struggle together with 843 00:39:07,860 --> 00:39:09,898 and they can have fun with it together. 844 00:39:09,898 --> 00:39:11,690 Well, certainly, we do the Scratch project. 845 00:39:11,690 --> 00:39:12,890 I give them some extra time. 846 00:39:12,890 --> 00:39:15,740 We might take a couple of weeks to do the Scratch project just 847 00:39:15,740 --> 00:39:18,740 to get used to the concept of these different computing 848 00:39:18,740 --> 00:39:22,460 structures like loops and conditional statements, variables. 849 00:39:22,460 --> 00:39:24,762 So I don't rush through it. 850 00:39:24,762 --> 00:39:26,220 I mean, that is another thing I do. 851 00:39:26,220 --> 00:39:27,428 I just don't rush through it. 852 00:39:27,428 --> 00:39:30,920 I actually often give them extra time for their problems if they need it. 853 00:39:30,920 --> 00:39:34,340 Because I don't want them to feel like, oh my God, it's due tomorrow. 854 00:39:34,340 --> 00:39:35,630 I don't know what to do. 855 00:39:35,630 --> 00:39:39,020 I better copy a friend's program or I'm going to fail. 856 00:39:39,020 --> 00:39:41,300 I don't want them to have that feeling. 857 00:39:41,300 --> 00:39:45,660 So I let them come to me and I'll usually give them a little extra time. 858 00:39:45,660 --> 00:39:48,140 Ask them to come see me during their lunch period 859 00:39:48,140 --> 00:39:51,660 and maybe we'll take a look together and walk through it a bit together. 860 00:39:51,660 --> 00:39:54,440 So it's a process. 861 00:39:54,440 --> 00:39:56,780 It's a process. 862 00:39:56,780 --> 00:39:58,010 I think it's hard sometimes-- 863 00:39:58,010 --> 00:39:58,940 I do the same thing. 864 00:39:58,940 --> 00:40:00,050 Who has questions? 865 00:40:00,050 --> 00:40:01,610 What questions do you have? 866 00:40:01,610 --> 00:40:03,860 Silence, right? 867 00:40:03,860 --> 00:40:05,690 Nobody says anything, right? 868 00:40:05,690 --> 00:40:10,887 So sometimes, I'll try to ask a little more specific question. 869 00:40:10,887 --> 00:40:11,970 Instead of just questions. 870 00:40:11,970 --> 00:40:16,260 Who could answer like, what is this for loop doing or something like that. 871 00:40:16,260 --> 00:40:22,770 Or what is this little snippet of code going to print to try to get something. 872 00:40:22,770 --> 00:40:26,670 Because I think, very general-- and I fall into it all the time myself. 873 00:40:26,670 --> 00:40:29,640 Very general questions sometimes like people 874 00:40:29,640 --> 00:40:32,610 are afraid to sound like they don't know anything, 875 00:40:32,610 --> 00:40:34,980 like they're embarrassed to ask a question, right? 876 00:40:34,980 --> 00:40:39,720 And then, sometimes, I end up having the most advanced students say something 877 00:40:39,720 --> 00:40:44,400 that sounds so smart that everybody else feels like they're not up for it, right? 878 00:40:44,400 --> 00:40:49,200 So I think it's just a matter of finding your own way and trying to encourage. 879 00:40:49,200 --> 00:40:50,590 What did you think about this? 880 00:40:50,590 --> 00:40:54,390 I'll have students also sometimes talk at their table groups. 881 00:40:54,390 --> 00:40:55,650 So here's a question. 882 00:40:55,650 --> 00:40:57,480 I want you to talk about this together. 883 00:40:57,480 --> 00:41:00,690 And then, I'll share out like for each table have something 884 00:41:00,690 --> 00:41:03,390 that somebody talked about that problem to try 885 00:41:03,390 --> 00:41:06,420 to get everybody engaged in talking. 886 00:41:06,420 --> 00:41:08,550 OK, other questions? 887 00:41:08,550 --> 00:41:11,570 OK, over here. 888 00:41:11,570 --> 00:41:13,385 OK, thank you. 889 00:41:13,385 --> 00:41:14,135 Thank you, Carter. 890 00:41:14,135 --> 00:41:17,330 891 00:41:17,330 --> 00:41:18,890 AUDIENCE: Hello, Miss Margaret. 892 00:41:18,890 --> 00:41:22,490 I am Lily from [INAUDIBLE]. 893 00:41:22,490 --> 00:41:23,660 MARGARET TANZOSH: Hey, guys. 894 00:41:23,660 --> 00:41:24,952 I think we can help each other. 895 00:41:24,952 --> 00:41:28,040 We all have questions that are good for each other as well. 896 00:41:28,040 --> 00:41:32,300 AUDIENCE: Coincidently, I also teach software engineering. 897 00:41:32,300 --> 00:41:38,120 And I want to ask, what if my student lack of interest 898 00:41:38,120 --> 00:41:43,040 to read the error message? 899 00:41:43,040 --> 00:41:45,680 How to improve their interest to-- 900 00:41:45,680 --> 00:41:51,500 for them to able to read that message? 901 00:41:51,500 --> 00:41:58,610 Because every time their program give error, they always ask the teacher? 902 00:41:58,610 --> 00:42:01,490 903 00:42:01,490 --> 00:42:08,300 But actually, the error, especially in Word line or in Word file, 904 00:42:08,300 --> 00:42:11,255 it's already written in their terminal. 905 00:42:11,255 --> 00:42:13,130 MARGARET TANZOSH: But you're saying when they 906 00:42:13,130 --> 00:42:15,963 get an error, rather than looking at it and trying to understand it, 907 00:42:15,963 --> 00:42:21,180 AUDIENCE: Rather than look at it, they directly ask the teacher. 908 00:42:21,180 --> 00:42:26,220 How to improve that so they can read it their own. 909 00:42:26,220 --> 00:42:26,912 Thank you. 910 00:42:26,912 --> 00:42:27,870 MARGARET TANZOSH: Sure. 911 00:42:27,870 --> 00:42:29,280 Now, that happens to me too. 912 00:42:29,280 --> 00:42:33,450 Well now, to be honest with the AI Duck, it helps a lot. 913 00:42:33,450 --> 00:42:35,730 [LAUGHTER] 914 00:42:35,730 --> 00:42:38,303 I'll have them paste their error message. 915 00:42:38,303 --> 00:42:40,470 You could just paste the whole error message, right? 916 00:42:40,470 --> 00:42:43,230 It explains to you a little more what it means. 917 00:42:43,230 --> 00:42:44,250 I'll try to go around. 918 00:42:44,250 --> 00:42:48,510 I mean, I will try to go and I'll say, oh look, it's saying it's on line 19. 919 00:42:48,510 --> 00:42:49,590 Let's look at 19. 920 00:42:49,590 --> 00:42:50,670 What is that telling us? 921 00:42:50,670 --> 00:42:53,130 Oh, it looks like there's a semicolon over here. 922 00:42:53,130 --> 00:42:54,720 It's giving us a hint, right? 923 00:42:54,720 --> 00:42:58,350 So I try to help them interpret the error messages. 924 00:42:58,350 --> 00:43:00,420 But again, it takes time. 925 00:43:00,420 --> 00:43:02,760 It doesn't happen like overnight. 926 00:43:02,760 --> 00:43:05,910 And it's interesting, a couple of months into the class, 927 00:43:05,910 --> 00:43:09,795 I see most students at that point are getting more comfortable 928 00:43:09,795 --> 00:43:10,920 and they're so proud of it. 929 00:43:10,920 --> 00:43:12,810 It's like, I didn't know what I was doing. 930 00:43:12,810 --> 00:43:17,790 Now, I did Caesar all by myself and I didn't need any help. 931 00:43:17,790 --> 00:43:20,250 So but it takes time. 932 00:43:20,250 --> 00:43:23,220 And so I do try to explain the error codes a bit. 933 00:43:23,220 --> 00:43:25,080 I try to ask them to decipher it. 934 00:43:25,080 --> 00:43:28,530 But honestly, this year, we have taken a lot of advantage of the Duck. 935 00:43:28,530 --> 00:43:31,170 So the Duck explains it pretty well. 936 00:43:31,170 --> 00:43:35,055 And I'll just have them paste and paste the whole error message in the Duck. 937 00:43:35,055 --> 00:43:37,930 So I think that's a tool that's going to be extremely helpful for you 938 00:43:37,930 --> 00:43:38,900 all as well. 939 00:43:38,900 --> 00:43:40,507 So let's take a question. 940 00:43:40,507 --> 00:43:41,590 Any questions at the back? 941 00:43:41,590 --> 00:43:46,180 I see a bunch of hands in the back over here. 942 00:43:46,180 --> 00:43:47,770 We'll go over there next, OK? 943 00:43:47,770 --> 00:43:49,000 We'll take up here. 944 00:43:49,000 --> 00:43:49,810 Thank you. 945 00:43:49,810 --> 00:43:56,275 946 00:43:56,275 --> 00:43:58,900 Here and here and I think that's probably all we have time for. 947 00:43:58,900 --> 00:44:01,180 So let's do one here then one here. 948 00:44:01,180 --> 00:44:01,680 Yes. 949 00:44:01,680 --> 00:44:02,680 AUDIENCE: Miss Margaret. 950 00:44:02,680 --> 00:44:03,430 My name is Anne. 951 00:44:03,430 --> 00:44:05,080 I'm from [INAUDIBLE]. 952 00:44:05,080 --> 00:44:06,580 MARGARET TANZOSH: I want to make sure I can hear, please. 953 00:44:06,580 --> 00:44:07,150 Thank you. 954 00:44:07,150 --> 00:44:08,692 AUDIENCE: Yeah, I'm from [INAUDIBLE]. 955 00:44:08,692 --> 00:44:10,600 I teach in vocational school. 956 00:44:10,600 --> 00:44:12,670 I want to ask you how about-- 957 00:44:12,670 --> 00:44:19,150 how can you evaluate your students whether they are success in this field 958 00:44:19,150 --> 00:44:21,760 or not in the future? 959 00:44:21,760 --> 00:44:26,857 I mean, are they failed or not like that? 960 00:44:26,857 --> 00:44:29,190 MARGARET TANZOSH: So I want to understand your question. 961 00:44:29,190 --> 00:44:30,950 How to direct them in the future? 962 00:44:30,950 --> 00:44:32,790 AUDIENCE: How can you evaluate your students 963 00:44:32,790 --> 00:44:38,040 that they are going to be success in this field in the future? 964 00:44:38,040 --> 00:44:45,780 Or they can just move to another field not in CS like that. 965 00:44:45,780 --> 00:44:49,200 MARGARET TANZOSH: Right, so how do I encourage them. 966 00:44:49,200 --> 00:44:52,500 So again, I kind of feel like it's, in some sense, 967 00:44:52,500 --> 00:44:54,570 they're going to want to go into this or not. 968 00:44:54,570 --> 00:44:57,240 I can't force them to go into computer science. 969 00:44:57,240 --> 00:45:01,920 I do try to make the material and I do think the CS50 problem sets. 970 00:45:01,920 --> 00:45:05,790 Make the material pretty interesting and rewarding 971 00:45:05,790 --> 00:45:09,060 and just, occasionally, we'll have speakers come in 972 00:45:09,060 --> 00:45:12,645 and talk about opportunities in the field of computer science. 973 00:45:12,645 --> 00:45:13,770 We'll have people who work. 974 00:45:13,770 --> 00:45:18,000 I have somebody maybe recently who works for Facebook came in 975 00:45:18,000 --> 00:45:21,090 and talked about a little bit of what their day looks like 976 00:45:21,090 --> 00:45:23,730 or somebody who works-- 977 00:45:23,730 --> 00:45:25,530 actually, not even a programmer, but more 978 00:45:25,530 --> 00:45:30,840 in like English in kind of the interpreting 979 00:45:30,840 --> 00:45:33,120 language for their AIs with Google. 980 00:45:33,120 --> 00:45:36,720 So I sometimes we'll have different industry people come in and talk. 981 00:45:36,720 --> 00:45:41,392 I don't know if you have access to any parents or people in the community 982 00:45:41,392 --> 00:45:42,600 or maybe you could reach out. 983 00:45:42,600 --> 00:45:46,470 Create like a you know a community here of each other of people 984 00:45:46,470 --> 00:45:50,310 that you can share like what they were able to do 985 00:45:50,310 --> 00:45:54,180 with a degree in computer science or with having studied computer science. 986 00:45:54,180 --> 00:45:56,670 Sometimes, I'll have old students come back 987 00:45:56,670 --> 00:46:00,240 that will decided to take computer science in college. 988 00:46:00,240 --> 00:46:02,160 And they could talk to the class and say-- 989 00:46:02,160 --> 00:46:06,060 and a lot of them will say, gee, taking CS50 here in high school 990 00:46:06,060 --> 00:46:08,670 was so helpful for me because it allowed me 991 00:46:08,670 --> 00:46:12,150 to have a better sense of what was happening when I got to college. 992 00:46:12,150 --> 00:46:14,790 So that's actually a great thing to have students-- 993 00:46:14,790 --> 00:46:19,920 if you have contact with some old students maybe that have graduated 994 00:46:19,920 --> 00:46:22,920 and have taken the courses and they could come and talk to your students 995 00:46:22,920 --> 00:46:23,740 as well. 996 00:46:23,740 --> 00:46:25,145 So some of those ideas. 997 00:46:25,145 --> 00:46:26,770 I said I know we're almost out of time. 998 00:46:26,770 --> 00:46:28,580 Can we take one more question? 999 00:46:28,580 --> 00:46:29,830 How about up here in the back? 1000 00:46:29,830 --> 00:46:31,788 We have kind of been ignoring the back up here. 1001 00:46:31,788 --> 00:46:38,300 1002 00:46:38,300 --> 00:46:39,620 AUDIENCE: Thank you so much. 1003 00:46:39,620 --> 00:46:41,120 Well, my name is [INAUDIBLE]. 1004 00:46:41,120 --> 00:46:42,830 Just call me Dang. 1005 00:46:42,830 --> 00:46:46,520 I have two very simple question, though, but I need more details 1006 00:46:46,520 --> 00:46:52,190 about-- you just already explained about ongoing teacher communication helpful. 1007 00:46:52,190 --> 00:46:54,920 And then, this is basically was related to what 1008 00:46:54,920 --> 00:47:00,080 we were talking in the small discussion in those window shopping like activity 1009 00:47:00,080 --> 00:47:06,410 or something when we were talking about how can you make the students excited 1010 00:47:06,410 --> 00:47:07,910 about computer science. 1011 00:47:07,910 --> 00:47:12,650 And then, I called it like-- provide a help desk or something. 1012 00:47:12,650 --> 00:47:16,520 And then, got this term like ongoing teacher communication helpful. 1013 00:47:16,520 --> 00:47:19,400 So how do you think about that one? 1014 00:47:19,400 --> 00:47:22,580 I mean, would you like to suggest us what kind of activity 1015 00:47:22,580 --> 00:47:28,130 that we-- that you think can be implemented for the senior high school 1016 00:47:28,130 --> 00:47:30,320 students, especially for us? 1017 00:47:30,320 --> 00:47:34,550 Because sometimes, let's see, if we come to the real classroom, 1018 00:47:34,550 --> 00:47:37,580 like me, I don't have any like-- 1019 00:47:37,580 --> 00:47:38,450 how do you call it? 1020 00:47:38,450 --> 00:47:40,460 Like office hour. 1021 00:47:40,460 --> 00:47:42,050 We don't provide that kind of things. 1022 00:47:42,050 --> 00:47:44,720 And then, I think that office hours really help 1023 00:47:44,720 --> 00:47:46,610 the students to solve their problems. 1024 00:47:46,610 --> 00:47:51,620 So would you like to suggest us or any kind of activities that you can-- 1025 00:47:51,620 --> 00:47:55,550 that you can recommend us that we can implement in order 1026 00:47:55,550 --> 00:47:58,220 to help the students for their project or something. 1027 00:47:58,220 --> 00:47:59,690 Thank you. 1028 00:47:59,690 --> 00:48:04,340 MARGARET TANZOSH: So my class, about a good half of my class every day 1029 00:48:04,340 --> 00:48:06,830 is like office hours. 1030 00:48:06,830 --> 00:48:09,230 That's what my class is, all right? 1031 00:48:09,230 --> 00:48:13,130 So again, I teach a very short, little bit every day. 1032 00:48:13,130 --> 00:48:14,720 Sometimes I don't at all. 1033 00:48:14,720 --> 00:48:16,820 Sometimes I don't even teach a new lesson. 1034 00:48:16,820 --> 00:48:19,417 I might just have a question I ask, a little discussion. 1035 00:48:19,417 --> 00:48:22,250 And then, everybody is just moving on and working on their programs. 1036 00:48:22,250 --> 00:48:27,650 So a good chunk of my class most days, allowing 1037 00:48:27,650 --> 00:48:32,330 them to do the programming in class is really kind of like office hours. 1038 00:48:32,330 --> 00:48:35,030 So rather than just teaching all day, lecturing 1039 00:48:35,030 --> 00:48:36,860 all day where they're going to fall asleep, 1040 00:48:36,860 --> 00:48:39,990 they're not going to half of them may not understand what I'm saying. 1041 00:48:39,990 --> 00:48:42,090 I also bring a lot of enthusiasm. 1042 00:48:42,090 --> 00:48:45,630 Because I really like the curriculum so much myself. 1043 00:48:45,630 --> 00:48:49,470 I still feel-- I was so happy to find this when I was looking for a way 1044 00:48:49,470 --> 00:48:50,220 to teach. 1045 00:48:50,220 --> 00:48:54,210 I'm so excited about watching even still now the lecture videos that 1046 00:48:54,210 --> 00:48:55,950 get better and better every year. 1047 00:48:55,950 --> 00:48:59,850 David does a better job of presenting the material. 1048 00:48:59,850 --> 00:49:03,720 But honestly, my class every day, almost half of it is like office hours. 1049 00:49:03,720 --> 00:49:08,010 And unless you have to do it in a particular way, what a better way where 1050 00:49:08,010 --> 00:49:10,410 they're going to learn when you're helping them 1051 00:49:10,410 --> 00:49:12,390 get past that to the next step, right? 1052 00:49:12,390 --> 00:49:14,130 So that's my goal. 1053 00:49:14,130 --> 00:49:16,020 All right, so I think we're good. 1054 00:49:16,020 --> 00:49:16,590 Yeah. 1055 00:49:16,590 --> 00:49:18,012 Anyway, thank you all. 1056 00:49:18,012 --> 00:49:18,720 CARTER: Margaret. 1057 00:49:18,720 --> 00:49:19,620 A round of applause. 1058 00:49:19,620 --> 00:49:23,270 [APPLAUSE] 1059 00:49:23,270 --> 00:49:26,000