1 00:00:00,000 --> 00:00:01,870 2 00:00:01,870 --> 00:00:06,430 BRUCE ELGORT: It was the summer of 1981. 3 00:00:06,430 --> 00:00:13,600 I enrolled prior to my freshman year of college in a Fortran 77 class. 4 00:00:13,600 --> 00:00:19,120 And it kicked my butt it really did. 5 00:00:19,120 --> 00:00:21,790 It was a short-term class. 6 00:00:21,790 --> 00:00:26,830 I had to write out my code on this columnar type of paper. 7 00:00:26,830 --> 00:00:33,730 Once I had the solution to the assignment at hand, I then-- whoops-- 8 00:00:33,730 --> 00:00:40,450 I then had to punch, using a punch card machine, a stack of cards. 9 00:00:40,450 --> 00:00:47,800 Hopefully, I didn't drop it on the way to the decsystem 10 computer lab 10 00:00:47,800 --> 00:00:50,080 that we had at school. 11 00:00:50,080 --> 00:00:52,270 And hopefully-- whoops-- 12 00:00:52,270 --> 00:00:53,680 it's a little delayed here. 13 00:00:53,680 --> 00:01:01,180 Hopefully, when the printout showed up maybe 4.5 hours later, hopefully 14 00:01:01,180 --> 00:01:02,950 my code was right. 15 00:01:02,950 --> 00:01:08,420 But I'm sure you can guess that most times, it was not. 16 00:01:08,420 --> 00:01:12,440 And I had to repeat that process over and over again. 17 00:01:12,440 --> 00:01:18,970 And sometimes it took days to get a simple assignment completed, 1981. 18 00:01:18,970 --> 00:01:26,170 So this course that I enrolled in was much like CS50 is today. 19 00:01:26,170 --> 00:01:34,030 It was a personalized, self-paced, instructional course, again, in 1981. 20 00:01:34,030 --> 00:01:35,670 We had no internet. 21 00:01:35,670 --> 00:01:38,900 We had no screens. 22 00:01:38,900 --> 00:01:44,090 We had a textbook and some TAs. 23 00:01:44,090 --> 00:01:50,580 We also had an honor code that we had to adhere to as well, 24 00:01:50,580 --> 00:01:56,670 again, much like the CS50 syllabus has today. 25 00:01:56,670 --> 00:02:06,050 So March 2021, I receive an email from Professor Sara Read, 26 00:02:06,050 --> 00:02:08,600 at Portland State University. 27 00:02:08,600 --> 00:02:10,699 And she's like, hey-- 28 00:02:10,699 --> 00:02:11,990 there was more to the email. 29 00:02:11,990 --> 00:02:16,910 Hey, Bruce, I heard that you teach coding at Clark College. 30 00:02:16,910 --> 00:02:22,500 And would you be interested, during the summer of 2021, 31 00:02:22,500 --> 00:02:28,340 to teach a coding bootcamp using CS50? 32 00:02:28,340 --> 00:02:33,320 And I was like, CS50, what the heck is CS50? 33 00:02:33,320 --> 00:02:36,860 So I did probably like a lot of you did. 34 00:02:36,860 --> 00:02:39,620 I enrolled in CS50. 35 00:02:39,620 --> 00:02:44,620 I was immediately hooked, like you all. 36 00:02:44,620 --> 00:02:48,070 It had accessible content and tools. 37 00:02:48,070 --> 00:02:56,530 And what I enjoyed most was interactive educational theater, 38 00:02:56,530 --> 00:03:00,730 much like was discussed over the last couple of days here. 39 00:03:00,730 --> 00:03:08,290 And it reminded me of my pedagogy that I've been delivering in my classes. 40 00:03:08,290 --> 00:03:12,220 I didn't have the cool kind of props that they have here, 41 00:03:12,220 --> 00:03:17,320 but I had some pretty cool props, OK? 42 00:03:17,320 --> 00:03:24,670 So the course that I taught during the summer of 2021 involved-- 43 00:03:24,670 --> 00:03:27,840 it was an eight-week course. 44 00:03:27,840 --> 00:03:33,590 It used five modules from CS50X, and it was 45 00:03:33,590 --> 00:03:38,990 taught to people really not interested in learning how to code. 46 00:03:38,990 --> 00:03:45,010 They were students, graduate students, enrolled in the professional 47 00:03:45,010 --> 00:03:47,380 and technical writing program. 48 00:03:47,380 --> 00:03:49,730 And it was a lot of fun. 49 00:03:49,730 --> 00:03:52,120 There were 20 students at the time. 50 00:03:52,120 --> 00:03:54,670 We weren't using Visual Studio code. 51 00:03:54,670 --> 00:03:58,910 We were using the CS50 IDE. 52 00:03:58,910 --> 00:04:02,000 So again, we used the scratch module. 53 00:04:02,000 --> 00:04:03,350 Everyone loves that. 54 00:04:03,350 --> 00:04:09,380 We spent two weeks on C, two weeks on arrays, two weeks on algorithms. 55 00:04:09,380 --> 00:04:14,600 And then we wrapped things up with HTML, CSS, and JavaScript. 56 00:04:14,600 --> 00:04:16,040 It went really well. 57 00:04:16,040 --> 00:04:20,149 These professional and technical writers would often 58 00:04:20,149 --> 00:04:24,200 be sitting at the table with software engineers, 59 00:04:24,200 --> 00:04:31,340 in the Pacific Northwest, from where I'm from, in what we call Silicon Forest. 60 00:04:31,340 --> 00:04:39,560 So in 2022, I came back, and I reworked the course after the CS50P. 61 00:04:39,560 --> 00:04:45,397 The Introduction to Programming with Python course was released. 62 00:04:45,397 --> 00:04:45,980 And I took it. 63 00:04:45,980 --> 00:04:46,710 I loved it. 64 00:04:46,710 --> 00:04:48,900 It was a great course. 65 00:04:48,900 --> 00:04:53,000 But we did slip in that scratch module in the beginning. 66 00:04:53,000 --> 00:04:59,010 And I also included modules on markdown because that was something 67 00:04:59,010 --> 00:05:07,330 that these particular students would be asked to do most likely at their job. 68 00:05:07,330 --> 00:05:08,070 OK? 69 00:05:08,070 --> 00:05:13,410 So here's a quote from Dr. Read about CS50. 70 00:05:13,410 --> 00:05:15,480 And I'm going to read it here. 71 00:05:15,480 --> 00:05:18,270 And it says, "At Portland State University, 72 00:05:18,270 --> 00:05:24,900 CS50 has been the foundation for a coding literacy course 73 00:05:24,900 --> 00:05:28,770 for students in the master's in professional and technical writing 74 00:05:28,770 --> 00:05:29,550 program. 75 00:05:29,550 --> 00:05:33,000 The CS50 curriculum is an excellent foundation 76 00:05:33,000 --> 00:05:36,540 for all students new to computer science because it 77 00:05:36,540 --> 00:05:41,460 begins by building a conceptual foundation for computing 78 00:05:41,460 --> 00:05:46,170 and coding before immersing students in the challenge of learning 79 00:05:46,170 --> 00:05:47,460 new languages." 80 00:05:47,460 --> 00:05:51,630 But this second part really resonates with me. 81 00:05:51,630 --> 00:05:54,390 "For many students, especially those coming 82 00:05:54,390 --> 00:05:58,830 from outside of technical disciplines, learning the how and the why of 83 00:05:58,830 --> 00:06:02,640 computing and coding before being plunged 84 00:06:02,640 --> 00:06:06,300 into learning the details of new syntaxes and grammars 85 00:06:06,300 --> 00:06:08,970 aligns learning computer science with other ways 86 00:06:08,970 --> 00:06:13,650 of learning that they already practice that, it 87 00:06:13,650 --> 00:06:18,780 can be hard to find conceptual first instruction in computing. 88 00:06:18,780 --> 00:06:21,780 But CS50 leads the way." 89 00:06:21,780 --> 00:06:23,880 And that's from Dr. Sara Read. 90 00:06:23,880 --> 00:06:28,890 So I'm happy to announce that I will be teaching this course again 91 00:06:28,890 --> 00:06:31,170 during the summer of 2024. 92 00:06:31,170 --> 00:06:39,390 And it's going to be mostly based on Python with that scratch introduction 93 00:06:39,390 --> 00:06:42,010 and markdown as well. 94 00:06:42,010 --> 00:06:43,200 So who am? 95 00:06:43,200 --> 00:06:43,890 Right? 96 00:06:43,890 --> 00:06:47,520 I am not a trained educator. 97 00:06:47,520 --> 00:06:49,260 I come from industry. 98 00:06:49,260 --> 00:06:53,520 I went to school and became an electrical engineer. 99 00:06:53,520 --> 00:06:58,740 At a college, I went to work for Underwriters Laboratories, where 100 00:06:58,740 --> 00:07:02,700 I tested things to make sure, that when I used my hair straightener 101 00:07:02,700 --> 00:07:06,420 and stepped in the shower, I wouldn't get electrocuted. 102 00:07:06,420 --> 00:07:11,460 I then went on to work for Sharp, the division that sells the LCD 103 00:07:11,460 --> 00:07:13,650 panels to companies like Apple. 104 00:07:13,650 --> 00:07:18,900 And in UL and Sharp, for the most part, I somehow 105 00:07:18,900 --> 00:07:23,550 morphed, during the evolution of the personal computer and networking, 106 00:07:23,550 --> 00:07:26,190 into IT. 107 00:07:26,190 --> 00:07:30,330 And I also did some other things, did some work for lynda.com. 108 00:07:30,330 --> 00:07:33,750 But I was fortunate enough to have a small boutique software 109 00:07:33,750 --> 00:07:41,880 company that my wife and myself started, ELG, for Elgort, UJI, for Ujifusa. 110 00:07:41,880 --> 00:07:42,990 It's a Japanese name. 111 00:07:42,990 --> 00:07:47,400 We stuck them together, and we created a little software product called 112 00:07:47,400 --> 00:07:52,468 IdeaJam, which we're very thankful for. 113 00:07:52,468 --> 00:07:53,760 So there are some other things. 114 00:07:53,760 --> 00:07:56,700 But I'm a faculty member at Clark College. 115 00:07:56,700 --> 00:08:02,250 And just so you know, I'm from Vancouver, Washington, not 116 00:08:02,250 --> 00:08:03,630 Vancouver, Canada. 117 00:08:03,630 --> 00:08:06,630 I know all of you that I spoke with, all of Canada. 118 00:08:06,630 --> 00:08:08,490 Yeah, I know who you are, all right? 119 00:08:08,490 --> 00:08:10,470 So I teach web development. 120 00:08:10,470 --> 00:08:12,580 I teach seven courses in it. 121 00:08:12,580 --> 00:08:18,303 And one of the courses is, just so you know, Python. 122 00:08:18,303 --> 00:08:19,720 We'll talk about that in a second. 123 00:08:19,720 --> 00:08:25,110 But I teach a two-year degree program in web development. 124 00:08:25,110 --> 00:08:28,690 And it starts, and it's built on accessibility, 125 00:08:28,690 --> 00:08:34,870 making content, websites, mobile apps, that are available to anyone, 126 00:08:34,870 --> 00:08:38,520 regardless of their age or disability. 127 00:08:38,520 --> 00:08:41,820 All right, so Clark College, what is a community college? 128 00:08:41,820 --> 00:08:45,330 Some of you here in the room and on Zoom may not 129 00:08:45,330 --> 00:08:48,930 be familiar with what a community college is. 130 00:08:48,930 --> 00:08:52,050 But it's an educational institution that offers 131 00:08:52,050 --> 00:08:56,400 two-year degrees, vocational training, and certificate programs 132 00:08:56,400 --> 00:08:58,900 to prepare students for the workforce force 133 00:08:58,900 --> 00:09:04,600 and to transfer on to four-year universities. 134 00:09:04,600 --> 00:09:09,670 So Introduction to Programming and Problem-Solving with Python, 135 00:09:09,670 --> 00:09:17,030 these degree programs at Clark, students enrolled in these degree programs 136 00:09:17,030 --> 00:09:21,140 will most likely take my programming class. 137 00:09:21,140 --> 00:09:21,830 OK? 138 00:09:21,830 --> 00:09:28,940 So as you can see, it's a quite diverse series of degree programs. 139 00:09:28,940 --> 00:09:32,840 Students' ages who enroll in these courses 140 00:09:32,840 --> 00:09:36,830 are anywhere from 15 to 80 years old. 141 00:09:36,830 --> 00:09:38,240 It's a community college. 142 00:09:38,240 --> 00:09:40,800 It's open to the community. 143 00:09:40,800 --> 00:09:46,490 So it's quite fascinating having a class with a diverse age 144 00:09:46,490 --> 00:09:50,750 population of students, all right? 145 00:09:50,750 --> 00:09:54,570 It's really a really unique environment for learning. 146 00:09:54,570 --> 00:09:59,090 So when I came to this college back in 2010-- 147 00:09:59,090 --> 00:10:02,750 2013, the professor who taught the course 148 00:10:02,750 --> 00:10:06,560 before me was using these two books here, which some of you 149 00:10:06,560 --> 00:10:07,490 may be familiar with. 150 00:10:07,490 --> 00:10:10,170 Anyone familiar with these two books, by any chance? 151 00:10:10,170 --> 00:10:10,670 No? 152 00:10:10,670 --> 00:10:12,370 Oh, I see some hands. 153 00:10:12,370 --> 00:10:17,100 So from 2013 to 2022, we used the John Zell book. 154 00:10:17,100 --> 00:10:20,400 And for a few years when I started there, I was new. 155 00:10:20,400 --> 00:10:24,970 Again, I used this Robertson book for teaching pseudocode. 156 00:10:24,970 --> 00:10:31,450 So idle, the idle, I-D-E, if you want to call it that, 157 00:10:31,450 --> 00:10:36,450 is what we used for many years, from 2013 to 2018. 158 00:10:36,450 --> 00:10:43,800 And then we moved to Visual Studio code and GitHub and GitHub Classroom. 159 00:10:43,800 --> 00:10:44,460 OK? 160 00:10:44,460 --> 00:10:48,510 So here is my course outline, the module structure. 161 00:10:48,510 --> 00:10:51,710 I'm not going to go through them all. 162 00:10:51,710 --> 00:10:56,280 This particular series of modules here is 163 00:10:56,280 --> 00:11:01,290 very similar in a lot of ways to the CS50P curriculum. 164 00:11:01,290 --> 00:11:05,580 What this particular course culminated in 165 00:11:05,580 --> 00:11:09,420 was what we call a Microsoft MTA certification. 166 00:11:09,420 --> 00:11:13,920 Remember that a lot of my students go into the workforce. 167 00:11:13,920 --> 00:11:20,190 And a lot of the companies that they go work for love micro-credentials, 168 00:11:20,190 --> 00:11:23,160 such as these Microsoft certifications. 169 00:11:23,160 --> 00:11:29,700 And thankfully, students had an 80% to 100% pass rate on this certification. 170 00:11:29,700 --> 00:11:32,400 Now, they just didn't take the Python one. 171 00:11:32,400 --> 00:11:33,900 They took a JavaScript one. 172 00:11:33,900 --> 00:11:35,550 They took a SQL one. 173 00:11:35,550 --> 00:11:38,550 There were many of these micro certifications 174 00:11:38,550 --> 00:11:40,710 that they were able to earn. 175 00:11:40,710 --> 00:11:49,000 So last fall, after I took the CS50P course, like I said, I was hooked. 176 00:11:49,000 --> 00:11:50,730 So I plunged in. 177 00:11:50,730 --> 00:11:56,160 I took the dive and converted my course over to CS50P. 178 00:11:56,160 --> 00:12:01,290 And I was scared, just especially with this sea 179 00:12:01,290 --> 00:12:04,140 change of technology and curriculum. 180 00:12:04,140 --> 00:12:09,000 But we started off in module 0. 181 00:12:09,000 --> 00:12:15,360 Module 0 is pre-course of setting up the GitHub and CS50 coding environment. 182 00:12:15,360 --> 00:12:19,600 And then I actually-- no, this is correct. 183 00:12:19,600 --> 00:12:25,870 We spent two weeks learning how to use the IDE. 184 00:12:25,870 --> 00:12:26,800 Folder? 185 00:12:26,800 --> 00:12:27,790 What's a folder? 186 00:12:27,790 --> 00:12:29,980 I'm of the Google Docs generation. 187 00:12:29,980 --> 00:12:30,970 Files? 188 00:12:30,970 --> 00:12:34,510 What, creating files through this thing called the terminal? 189 00:12:34,510 --> 00:12:38,710 So again, we spent two weeks, one on learning 190 00:12:38,710 --> 00:12:42,640 how to use the interface itself, the Visual Studio code 191 00:12:42,640 --> 00:12:47,470 interface, and the second on the first module functions 192 00:12:47,470 --> 00:12:51,490 and variables in CS50P. 193 00:12:51,490 --> 00:12:56,680 And then we carried on with the curriculum from CS50P. 194 00:12:56,680 --> 00:13:03,470 But I sprinkle in some of my labs that I create myself, 195 00:13:03,470 --> 00:13:05,860 such as how to debug, right? 196 00:13:05,860 --> 00:13:10,390 There is material in CS50P about debugging, 197 00:13:10,390 --> 00:13:14,780 but there is currently no prepared curriculum. 198 00:13:14,780 --> 00:13:18,040 So I'm in the process of writing that. 199 00:13:18,040 --> 00:13:19,780 OK? 200 00:13:19,780 --> 00:13:23,000 And then I missed one important thing. 201 00:13:23,000 --> 00:13:28,357 In module 6 is when I get them thinking about their final project 202 00:13:28,357 --> 00:13:29,690 and what they're going to build. 203 00:13:29,690 --> 00:13:33,680 And then we have milestones throughout the course 204 00:13:33,680 --> 00:13:39,980 as they go from idea to a product. 205 00:13:39,980 --> 00:13:40,640 OK? 206 00:13:40,640 --> 00:13:42,620 So then we have finals week. 207 00:13:42,620 --> 00:13:47,780 Again, my quarter is 10 weeks, with one week for finals. 208 00:13:47,780 --> 00:13:51,110 And that's when we do final project presentations. 209 00:13:51,110 --> 00:13:57,080 And I'm thankful, that over the last three quarters, 210 00:13:57,080 --> 00:14:01,580 that during the first quarter, we had 8 out of 40 students 211 00:14:01,580 --> 00:14:04,760 earn the CS50 certification. 212 00:14:04,760 --> 00:14:06,770 We had one in winter. 213 00:14:06,770 --> 00:14:08,550 I'm happy with that. 214 00:14:08,550 --> 00:14:13,700 And then this past spring, we also had 8 out of 20 students. 215 00:14:13,700 --> 00:14:18,740 I'm starting to get my gait, learning how to teach this course. 216 00:14:18,740 --> 00:14:22,290 And you'll learn-- whoops-- you'll learn more about that shortly. 217 00:14:22,290 --> 00:14:26,870 What I'm really happy about is seeing students 218 00:14:26,870 --> 00:14:38,150 go outside of my classroom embracing the CS50 curriculum, such as CS50x, CS50W. 219 00:14:38,150 --> 00:14:43,820 And this particular student earned the CS50P originally with me in the fall. 220 00:14:43,820 --> 00:14:45,600 So this, this is awesome. 221 00:14:45,600 --> 00:14:46,100 All right? 222 00:14:46,100 --> 00:14:47,790 And there are other students. 223 00:14:47,790 --> 00:14:50,150 This particular student was our tutor. 224 00:14:50,150 --> 00:14:55,370 And let's just say, they encouraged a lot of people who came to them. 225 00:14:55,370 --> 00:15:00,980 I made them aware of these other things, these other courses that students 226 00:15:00,980 --> 00:15:01,670 can earn. 227 00:15:01,670 --> 00:15:08,700 But Colin here helped sprinkle the CS50 love with my students. 228 00:15:08,700 --> 00:15:10,880 So I use Canvas. 229 00:15:10,880 --> 00:15:13,340 We use Canvas at our college. 230 00:15:13,340 --> 00:15:20,930 And what I have done is I've consumed all of the CS50P content, 231 00:15:20,930 --> 00:15:25,850 a majority of it, 90-something percent into my Canvas course shell. 232 00:15:25,850 --> 00:15:33,590 The modules resemble that of the CS50P curriculum, the website. 233 00:15:33,590 --> 00:15:34,220 OK? 234 00:15:34,220 --> 00:15:42,110 So how does my class Function I have interactive lectures. 235 00:15:42,110 --> 00:15:49,310 I form small work groups, much like we do in industry, and these work groups, 236 00:15:49,310 --> 00:15:52,610 these groups work together throughout the quarter. 237 00:15:52,610 --> 00:15:56,720 They don't do your typical group activities, 238 00:15:56,720 --> 00:16:01,580 where they are sometimes asynchronous. 239 00:16:01,580 --> 00:16:07,220 But for the most part, a lot of them get them in the same virtual room 240 00:16:07,220 --> 00:16:12,620 and get them talking and meeting, not just filling out Canvas discussion 241 00:16:12,620 --> 00:16:14,570 posts, and stuff like that. 242 00:16:14,570 --> 00:16:18,500 Their roles within the group change each week. 243 00:16:18,500 --> 00:16:23,870 So they each have, they get a taste of, what 244 00:16:23,870 --> 00:16:27,960 it is to perform certain roles within a work group. 245 00:16:27,960 --> 00:16:30,950 Then we have skill-building and practice problems. 246 00:16:30,950 --> 00:16:37,080 These I've brought over from my prior Python course. 247 00:16:37,080 --> 00:16:40,430 The problem sets are those of CS50P. 248 00:16:40,430 --> 00:16:43,880 The labs are ones that I'm creating. 249 00:16:43,880 --> 00:16:47,750 And the labs and the skill building, they're 250 00:16:47,750 --> 00:16:53,060 backed by check50 and submit50 tests, that I've written myself. 251 00:16:53,060 --> 00:16:58,610 And I'm very thankful to Rongxin for answering each and every single email 252 00:16:58,610 --> 00:17:03,980 that I sent him while I've been learning how to write check50 tests. 253 00:17:03,980 --> 00:17:06,619 I have something called learning guide quizzes, 254 00:17:06,619 --> 00:17:11,060 where I immerse them within the content of the course. 255 00:17:11,060 --> 00:17:14,780 And they're able to find what I'm asking for. 256 00:17:14,780 --> 00:17:19,400 And then I have these exit slip surveys, like what was good? 257 00:17:19,400 --> 00:17:20,540 And what was bad? 258 00:17:20,540 --> 00:17:23,550 And it's a matter of checking boxes off. 259 00:17:23,550 --> 00:17:28,440 And they do have the opportunity to provide me with written feedback, 260 00:17:28,440 --> 00:17:35,380 as well, in this exit slip survey, and it's been a very good thing. 261 00:17:35,380 --> 00:17:38,850 So here is the introduction to my module. 262 00:17:38,850 --> 00:17:40,140 This is my Canvas shell. 263 00:17:40,140 --> 00:17:42,318 This is how I structure things. 264 00:17:42,318 --> 00:17:43,860 And I'm not going to go through them. 265 00:17:43,860 --> 00:17:46,380 But I do record each and every lecture. 266 00:17:46,380 --> 00:17:49,140 And I'll show you some interesting tools that I've 267 00:17:49,140 --> 00:17:51,810 developed that I've made available to everyone 268 00:17:51,810 --> 00:17:56,130 here to help deal with these things here. 269 00:17:56,130 --> 00:18:02,940 I do offer David Malan's recorded videos, as well, 270 00:18:02,940 --> 00:18:07,950 along with links to the lecture notes provided by CS50. 271 00:18:07,950 --> 00:18:14,970 And then I have my micro topic videos, micro topic. 272 00:18:14,970 --> 00:18:16,150 That's not right. 273 00:18:16,150 --> 00:18:20,730 But they are small, bit-sized, instructional video. 274 00:18:20,730 --> 00:18:24,220 And I've done this for 10 years, so I have 275 00:18:24,220 --> 00:18:30,520 this collection that I can pick and choose and insert into my course shell. 276 00:18:30,520 --> 00:18:32,200 And it continues on, right? 277 00:18:32,200 --> 00:18:34,180 There's additional material that they need 278 00:18:34,180 --> 00:18:38,530 to read and consume because it's on the learning guide quizzes. 279 00:18:38,530 --> 00:18:42,610 But this unit happens to be on conditionals. 280 00:18:42,610 --> 00:18:43,340 All right? 281 00:18:43,340 --> 00:18:46,310 So let's carry on here. 282 00:18:46,310 --> 00:18:50,110 So I have a bunch of skill-building exercises or practice problems, 283 00:18:50,110 --> 00:18:52,600 again, backed by check50. 284 00:18:52,600 --> 00:18:55,780 They have a lab, Learning About Conditionals, right? 285 00:18:55,780 --> 00:19:02,380 So I take them through a pay stub calculator and how to do things there. 286 00:19:02,380 --> 00:19:05,980 I think I have some screenshots of that, and then that work group 287 00:19:05,980 --> 00:19:09,910 activity that I showed you all earlier. 288 00:19:09,910 --> 00:19:11,860 I then have the problem set. 289 00:19:11,860 --> 00:19:16,060 They have the option to submit to CS50P. 290 00:19:16,060 --> 00:19:20,620 I have my own problem set slugs. 291 00:19:20,620 --> 00:19:22,840 Again, if they want to earn the certificate, 292 00:19:22,840 --> 00:19:26,500 they're going to have to be submitting to CS50, that learning 293 00:19:26,500 --> 00:19:30,700 guide quiz, and that exit slip, OK? 294 00:19:30,700 --> 00:19:36,430 So I stated that the problem sets, I brought in to Canvas, right? 295 00:19:36,430 --> 00:19:37,990 So here they are. 296 00:19:37,990 --> 00:19:41,390 I talk about solutions found on the internet and stuff like that. 297 00:19:41,390 --> 00:19:43,090 But here they are. 298 00:19:43,090 --> 00:19:47,470 Some of you may recognize these problems here. 299 00:19:47,470 --> 00:19:51,310 By the way, this grading rubric is something 300 00:19:51,310 --> 00:20:00,010 that I learned virtually when Carter Zenke showed this grading rubric 301 00:20:00,010 --> 00:20:03,010 from the educator workshop last year. 302 00:20:03,010 --> 00:20:05,150 So I thank Carter for that. 303 00:20:05,150 --> 00:20:11,050 And as you can see, I'm not just saying, here's CS50P. 304 00:20:11,050 --> 00:20:16,730 I'm trying to obfuscate as much as CS50P with David. 305 00:20:16,730 --> 00:20:19,690 And no offense David, but I'm just trying 306 00:20:19,690 --> 00:20:25,810 to make it a Clark College class, with the option if you want to earn. 307 00:20:25,810 --> 00:20:29,750 Well, number one is to learn Python and to be really good at it. 308 00:20:29,750 --> 00:20:32,630 So here, here is that deep thought problem. 309 00:20:32,630 --> 00:20:38,020 And not only is this problem verbatim from the CS50P curriculum, 310 00:20:38,020 --> 00:20:42,640 but I also include little hint videos that I've created 311 00:20:42,640 --> 00:20:45,050 or suggestions for them. 312 00:20:45,050 --> 00:20:48,970 I'm like that rubber duck, all right, so in video form here. 313 00:20:48,970 --> 00:20:49,480 All right? 314 00:20:49,480 --> 00:20:53,440 So again, you can just see this is mostly 315 00:20:53,440 --> 00:20:58,540 the problem from the CS50P material. 316 00:20:58,540 --> 00:21:03,290 Now, what I've been doing for the last couple of years, 317 00:21:03,290 --> 00:21:05,530 I teach at a community college. 318 00:21:05,530 --> 00:21:10,780 Again, students, there are very few prerequisites 319 00:21:10,780 --> 00:21:16,840 other than college algebra and some college English. 320 00:21:16,840 --> 00:21:22,900 But I'm trying to make the assignments as transparent as possible, 321 00:21:22,900 --> 00:21:30,430 trying to give the students talk in a language that they can all understand. 322 00:21:30,430 --> 00:21:32,180 So this is not an assignment. 323 00:21:32,180 --> 00:21:36,340 This is just an example of this shell, this tilt shell 324 00:21:36,340 --> 00:21:40,600 that I've developed-- due date, purpose, skills, knowledge, and then 325 00:21:40,600 --> 00:21:46,250 a series of tasks, and then the specific criteria for success. 326 00:21:46,250 --> 00:21:49,180 And I don't know how well-known this is. 327 00:21:49,180 --> 00:21:52,600 I believe it was developed at Brandeis University. 328 00:21:52,600 --> 00:21:58,930 But I've done over 100 assignments in the seven classes that I teach. 329 00:21:58,930 --> 00:22:02,710 And it's the only way that I create assignments now. 330 00:22:02,710 --> 00:22:04,570 And here is an example of one. 331 00:22:04,570 --> 00:22:07,790 The slides are all available to you to download, 332 00:22:07,790 --> 00:22:10,010 so we don't need to go through it here. 333 00:22:10,010 --> 00:22:13,270 But again, I've gotten a lot of great feedback 334 00:22:13,270 --> 00:22:16,630 and the exit slips and those course evaluations 335 00:22:16,630 --> 00:22:19,750 that I get from students, all right? 336 00:22:19,750 --> 00:22:24,270 And you can see here, it's just an example of that pay calculator. 337 00:22:24,270 --> 00:22:27,360 I teach a lot of students who are blind. 338 00:22:27,360 --> 00:22:33,160 We have the Washington State School for the Blind within a mile of our college. 339 00:22:33,160 --> 00:22:38,010 So all of these images that you and I can see fine here, 340 00:22:38,010 --> 00:22:43,870 they're also made to work with a screen reader, using alternative text. 341 00:22:43,870 --> 00:22:44,370 OK? 342 00:22:44,370 --> 00:22:47,160 So again, there are just some more screenshots here 343 00:22:47,160 --> 00:22:50,610 of this particular lab, of how conditionals 344 00:22:50,610 --> 00:22:54,730 work to create a pay stub calculator. 345 00:22:54,730 --> 00:22:55,260 All right? 346 00:22:55,260 --> 00:22:59,400 And I'll just flip through them here, OK-- 347 00:22:59,400 --> 00:23:02,320 348 00:23:02,320 --> 00:23:07,060 and again, check50 and submit50 and stuff like that. 349 00:23:07,060 --> 00:23:11,160 OK, now, this slide here, for those of you 350 00:23:11,160 --> 00:23:16,390 who are familiar with check50 and submit50, I don't know about you 351 00:23:16,390 --> 00:23:20,710 and what your experiences are, but a lot of students 352 00:23:20,710 --> 00:23:26,690 will shoot for or go for using check50 before they even read the problem. 353 00:23:26,690 --> 00:23:32,380 And I don't have a problem with that, but I've collected all of these things 354 00:23:32,380 --> 00:23:33,230 that I've seen. 355 00:23:33,230 --> 00:23:36,670 And let me just share a few of my favorites with you. 356 00:23:36,670 --> 00:23:39,160 Have you read the problem carefully? 357 00:23:39,160 --> 00:23:44,380 Have you created an IPO model, inputs, processes, and outputs? 358 00:23:44,380 --> 00:23:48,070 Have you created code that attempts to fool check50? 359 00:23:48,070 --> 00:23:51,010 How many of you have seen that, anyone, where 360 00:23:51,010 --> 00:23:57,970 they try to write code that just generates print statements matching 361 00:23:57,970 --> 00:24:01,240 the text that they see in the check50 test? 362 00:24:01,240 --> 00:24:04,610 Well, if you haven't, you will. 363 00:24:04,610 --> 00:24:07,910 Have you tested your code before using check50? 364 00:24:07,910 --> 00:24:12,320 Did you run the Python command line to run your code? 365 00:24:12,320 --> 00:24:14,930 Have you reread the problem carefully? 366 00:24:14,930 --> 00:24:17,750 Have you completed the skill-building problems? 367 00:24:17,750 --> 00:24:19,460 They are there for a reason. 368 00:24:19,460 --> 00:24:24,290 And within a particular problem, I reference 369 00:24:24,290 --> 00:24:30,920 the practice problems and skill-building exercises that would help them complete 370 00:24:30,920 --> 00:24:32,210 said problem. 371 00:24:32,210 --> 00:24:34,490 Have you studied the module material? 372 00:24:34,490 --> 00:24:39,050 Have you used Visual Studio code to explain the code to yourself, 373 00:24:39,050 --> 00:24:43,580 as David, Rongxin, and Carter spoke of earlier? 374 00:24:43,580 --> 00:24:47,690 Have you used Visual Studio code to check the style of your code, 375 00:24:47,690 --> 00:24:51,110 again, just recently introduced? 376 00:24:51,110 --> 00:24:55,160 Would it be beneficial to take a break, step away from your computer? 377 00:24:55,160 --> 00:24:58,130 We use Slack within my course. 378 00:24:58,130 --> 00:25:04,760 And these are the types of things that I ask questions, when they Slack me 379 00:25:04,760 --> 00:25:07,970 all throughout the day and night. 380 00:25:07,970 --> 00:25:11,750 And again, have you watched the instructional videos? 381 00:25:11,750 --> 00:25:14,700 Have you asked to help from your work group? 382 00:25:14,700 --> 00:25:21,290 Et cetera here-- so just know that you're going to run into these things. 383 00:25:21,290 --> 00:25:21,980 All right. 384 00:25:21,980 --> 00:25:26,660 Check50, as I spoke of before, if you know Python, 385 00:25:26,660 --> 00:25:29,330 you can write check50 tests. 386 00:25:29,330 --> 00:25:34,100 It took me a little while and a couple emails to Rongxin. 387 00:25:34,100 --> 00:25:36,080 No, that's an overexaggeration. 388 00:25:36,080 --> 00:25:41,210 But I'm putting together some instructional videos and examples 389 00:25:41,210 --> 00:25:46,430 on my YouTube channel about how to create your own check50 tests. 390 00:25:46,430 --> 00:25:47,090 All right? 391 00:25:47,090 --> 00:25:53,780 So what comes next, now that I've done a year of CS50P? 392 00:25:53,780 --> 00:25:58,370 All right, I'm going to embrace the concept 393 00:25:58,370 --> 00:26:04,910 that Carter spoke of yesterday about creating alternative problems 394 00:26:04,910 --> 00:26:10,580 for people who are less comfortable with a particular topic or more comfortable. 395 00:26:10,580 --> 00:26:17,390 The more comfortable will be the CS50-based problem sets. 396 00:26:17,390 --> 00:26:23,100 And I may even offer a third option, OK, just to be more equitable. 397 00:26:23,100 --> 00:26:27,200 The other thing that I want to do is to continue to focus my pedagogy 398 00:26:27,200 --> 00:26:29,660 and incorporate it into the course. 399 00:26:29,660 --> 00:26:34,040 I had 10 years of interactive educational theater 400 00:26:34,040 --> 00:26:35,510 that involved a lot of things. 401 00:26:35,510 --> 00:26:41,600 But I need to re infuse it into this new course here and of course, 402 00:26:41,600 --> 00:26:47,120 get to work with you people here in the room and those on YouTube and Zoom, 403 00:26:47,120 --> 00:26:49,010 to collaborate and communicate. 404 00:26:49,010 --> 00:26:53,810 Because it's only the experiments and the result of those experiments, 405 00:26:53,810 --> 00:26:57,590 that we perform as educators and share with one another, 406 00:26:57,590 --> 00:27:04,760 that we will continue to improve what we do for the people that we teach. 407 00:27:04,760 --> 00:27:11,300 So an example, I've developed quite a few iOS apps. 408 00:27:11,300 --> 00:27:13,310 And this is an example of one here. 409 00:27:13,310 --> 00:27:17,400 It's one that I wrote for the Children's Cancer Association, in Portland, 410 00:27:17,400 --> 00:27:18,050 Oregon. 411 00:27:18,050 --> 00:27:24,920 And it's using the iTunes API, the same API that David demonstrates 412 00:27:24,920 --> 00:27:28,580 in the CS50P lecture on libraries. 413 00:27:28,580 --> 00:27:34,910 So I'm trying to bring all of my industry experience into the classroom, 414 00:27:34,910 --> 00:27:40,850 using things that are not-- not that David's material is not relatable, 415 00:27:40,850 --> 00:27:43,280 but to an actual application. 416 00:27:43,280 --> 00:27:46,130 And I have plenty of these, including the software 417 00:27:46,130 --> 00:27:52,790 that we developed to infuse, again, into lab assignments. 418 00:27:52,790 --> 00:27:57,060 So I've got some helpful tools that I want to share with you all. 419 00:27:57,060 --> 00:28:02,190 The first one is this submission tracker Google Sheet. 420 00:28:02,190 --> 00:28:08,440 And this particular Google Sheet that I developed is a fork. 421 00:28:08,440 --> 00:28:12,270 It was based somewhat on someone else's prior work. 422 00:28:12,270 --> 00:28:14,370 And it's available to you. 423 00:28:14,370 --> 00:28:18,030 It's in the links on the Notion site, the educator site. 424 00:28:18,030 --> 00:28:22,080 And I've provided a set of instructions here for you to follow. 425 00:28:22,080 --> 00:28:26,860 There is no code whatsoever that you need to modify. 426 00:28:26,860 --> 00:28:29,440 I come from a background of shipping production software, 427 00:28:29,440 --> 00:28:31,740 so I did the best that I could here. 428 00:28:31,740 --> 00:28:34,110 And you may recognize these. 429 00:28:34,110 --> 00:28:36,810 These are CS50 submission slugs. 430 00:28:36,810 --> 00:28:42,090 These are going to get auto-generated auto-magically through a menu option, 431 00:28:42,090 --> 00:28:43,710 that I'll show you shortly. 432 00:28:43,710 --> 00:28:47,790 And the next thing is these would be the names of students here, 433 00:28:47,790 --> 00:28:48,900 that I blurred out. 434 00:28:48,900 --> 00:28:53,950 And you can see the result that they achieved on each and every problem. 435 00:28:53,950 --> 00:28:58,620 And not only can you see the results, but these are links. 436 00:28:58,620 --> 00:29:01,720 These are hyperlinks, and you can click on them 437 00:29:01,720 --> 00:29:06,550 and be brought to that particular problem that they solved. 438 00:29:06,550 --> 00:29:07,960 All right? 439 00:29:07,960 --> 00:29:12,460 The other thing that you can do here is select a particular problem 440 00:29:12,460 --> 00:29:16,300 and update the scores for that particular problem. 441 00:29:16,300 --> 00:29:16,990 OK? 442 00:29:16,990 --> 00:29:21,670 And the menu options that are available in the upper right-hand corner-- 443 00:29:21,670 --> 00:29:25,120 get assignment slugs, update student roster. 444 00:29:25,120 --> 00:29:29,875 You can pull in the roster from submit50, update all scores, 445 00:29:29,875 --> 00:29:35,230 like redo everyone's grades, and update a single assignment 446 00:29:35,230 --> 00:29:38,240 that I showed you earlier. 447 00:29:38,240 --> 00:29:42,280 The next one, and this is kind of serendipitous here. 448 00:29:42,280 --> 00:29:46,210 This is a submission downloader with compare50 support. 449 00:29:46,210 --> 00:29:52,000 And after this particular conference ran last year, 450 00:29:52,000 --> 00:29:58,930 somehow I got in touch with a gentleman by the name of Phil Bowman. 451 00:29:58,930 --> 00:30:01,930 And if you remember the Phil sort with David yesterday, 452 00:30:01,930 --> 00:30:03,580 there's Phil right there. 453 00:30:03,580 --> 00:30:08,800 And I took this wonderful code that Phil developed, 454 00:30:08,800 --> 00:30:12,790 and I modified it to work with CS50P. 455 00:30:12,790 --> 00:30:17,020 And it's made my life a heck of a lot easier. 456 00:30:17,020 --> 00:30:21,820 Not only can I pull down particular assignments 457 00:30:21,820 --> 00:30:25,450 and see each and every student's work, but it also 458 00:30:25,450 --> 00:30:29,830 will run compare50 and show the graphs that I 459 00:30:29,830 --> 00:30:32,290 believe Rongxin showed us yesterday. 460 00:30:32,290 --> 00:30:35,980 So Phil, I'm very grateful to you for this software. 461 00:30:35,980 --> 00:30:39,800 And you can see Phil's name in the comments there. 462 00:30:39,800 --> 00:30:45,610 So it's in the link, so you can go download this, OK? 463 00:30:45,610 --> 00:30:50,380 The other tool is a Visual Studio code snippet extension. 464 00:30:50,380 --> 00:30:54,250 I find that students, no matter how many times you 465 00:30:54,250 --> 00:30:58,000 tell them to enter their name and the name of the file and the date, 466 00:30:58,000 --> 00:31:03,820 and whatever it may be, at the top as comments and maybe some starting code 467 00:31:03,820 --> 00:31:07,960 for a student to get started with, I wanted a way 468 00:31:07,960 --> 00:31:16,100 to infuse snippets into the classroom, into Visual Studio code. 469 00:31:16,100 --> 00:31:20,560 And what I did there is I developed an extension. 470 00:31:20,560 --> 00:31:22,870 It wasn't very difficult. 471 00:31:22,870 --> 00:31:28,010 And students can install it in their Visual Studio code. 472 00:31:28,010 --> 00:31:34,630 And as a result, they can type in some pset, for Problem Set. 473 00:31:34,630 --> 00:31:38,290 And then when they do that, they can get this information here. 474 00:31:38,290 --> 00:31:44,290 They can tab through and enter in all of the specific information regarding 475 00:31:44,290 --> 00:31:45,080 the problem. 476 00:31:45,080 --> 00:31:47,540 And there are other snippets in there as well. 477 00:31:47,540 --> 00:31:52,610 But you can just take this extension, fill in the snippet-- 478 00:31:52,610 --> 00:31:55,660 this is a JSON file here, JavaScript Object Notation-- 479 00:31:55,660 --> 00:32:04,630 fill it in and have it installed inside of your code space, OK? 480 00:32:04,630 --> 00:32:06,910 By the way, this is the code. 481 00:32:06,910 --> 00:32:10,970 This is the link to that extension code. 482 00:32:10,970 --> 00:32:17,240 The next thing I have here is what I call a clickable transcript tool. 483 00:32:17,240 --> 00:32:20,570 I record my Zoom meetings. 484 00:32:20,570 --> 00:32:26,780 And as a result of recording, Zoom gives you what's called an SRT file. 485 00:32:26,780 --> 00:32:29,840 And I believe David spoke about SRT files yesterday. 486 00:32:29,840 --> 00:32:32,450 They're closed-caption files. 487 00:32:32,450 --> 00:32:39,170 And what I wanted to do is to create something that allowed students 488 00:32:39,170 --> 00:32:43,460 to maybe search for a word in the course shell 489 00:32:43,460 --> 00:32:46,970 and then see where it was talked about in class, 490 00:32:46,970 --> 00:32:49,640 exactly where it was talked about. 491 00:32:49,640 --> 00:32:54,290 And using this tool-- this is a website that I wrote. 492 00:32:54,290 --> 00:32:58,160 And this works right now with Panopto videos. 493 00:32:58,160 --> 00:33:01,730 As soon as I get back, it's going to work with YouTube videos. 494 00:33:01,730 --> 00:33:07,100 But you just give it the URL of where this video lives 495 00:33:07,100 --> 00:33:09,920 in your learning management system. 496 00:33:09,920 --> 00:33:16,230 You upload the SRT file, and out pops a clickable set of HTML 497 00:33:16,230 --> 00:33:20,730 that you can paste in to a learning management system page. 498 00:33:20,730 --> 00:33:26,050 And then students can use the search facility of the learning management 499 00:33:26,050 --> 00:33:26,550 system. 500 00:33:26,550 --> 00:33:32,580 Because without this, when students go to search for something in Canvas, 501 00:33:32,580 --> 00:33:36,150 the learning management system, the only thing that they're going to find 502 00:33:36,150 --> 00:33:40,810 are things like quizzes, pages, et cetera. 503 00:33:40,810 --> 00:33:45,030 So this totally opens up the Canvas shell 504 00:33:45,030 --> 00:33:49,770 to what occurred during classroom time. 505 00:33:49,770 --> 00:33:50,550 OK? 506 00:33:50,550 --> 00:33:53,510 So I don't know. 507 00:33:53,510 --> 00:33:56,850 We're at 11:11, 11:11. 508 00:33:56,850 --> 00:34:01,290 I want to open it up to any questions, feedback, 509 00:34:01,290 --> 00:34:04,990 and hopefully, give some answers here. 510 00:34:04,990 --> 00:34:05,490 Anyone? 511 00:34:05,490 --> 00:34:09,480 512 00:34:09,480 --> 00:34:12,060 If you're raising your hand, you need to raise it higher. 513 00:34:12,060 --> 00:34:12,989 [LAUGHTER] 514 00:34:12,989 --> 00:34:14,800 Because I don't see that. 515 00:34:14,800 --> 00:34:18,030 Well, so Vlad, anything that I need to-- 516 00:34:18,030 --> 00:34:19,917 oh, I mean, Charlie? 517 00:34:19,917 --> 00:34:21,750 AUDIENCE: No, not at the moment in the chat, 518 00:34:21,750 --> 00:34:24,150 although quite a few laudatory comments from people just complimenting 519 00:34:24,150 --> 00:34:25,083 your tools and work. 520 00:34:25,083 --> 00:34:26,250 BRUCE ELGORT: Oh, thank you. 521 00:34:26,250 --> 00:34:31,810 Well, CS50 changed the game for me. 522 00:34:31,810 --> 00:34:38,489 It totally-- check50 and submit50, I tried to write my own testing tools, 523 00:34:38,489 --> 00:34:44,880 using GitHub actions and other things, and it was a pain in the butt. 524 00:34:44,880 --> 00:34:47,639 It wasn't check50 and submit50. 525 00:34:47,639 --> 00:34:54,120 Once I wrap my head around those tools, I'm hooked. 526 00:34:54,120 --> 00:34:57,210 And why not use? 527 00:34:57,210 --> 00:35:02,660 I'm out of the mindset where I have to write everything myself. 528 00:35:02,660 --> 00:35:03,160 OK. 529 00:35:03,160 --> 00:35:06,490 530 00:35:06,490 --> 00:35:08,050 Questions? 531 00:35:08,050 --> 00:35:10,780 I'll ask one more time, Charlie, nothing? 532 00:35:10,780 --> 00:35:14,280 AUDIENCE: Yeah, I'm still checking, but I'll get back to you if there are. 533 00:35:14,280 --> 00:35:15,280 BRUCE ELGORT: All right. 534 00:35:15,280 --> 00:35:19,860 535 00:35:19,860 --> 00:35:22,830 Is anyone-- oh, yes, Ken? 536 00:35:22,830 --> 00:35:24,960 AUDIENCE: So you talked about those micro topics, 537 00:35:24,960 --> 00:35:27,840 that phrase you just coined. 538 00:35:27,840 --> 00:35:30,840 How long did you make those videos? 539 00:35:30,840 --> 00:35:34,260 BRUCE ELGORT: Yeah, so Ken asked the question. 540 00:35:34,260 --> 00:35:37,600 The micro topic videos that I talked about, 541 00:35:37,600 --> 00:35:49,010 those videos can range anywhere from 60 seconds to 5 to 15 minutes. 542 00:35:49,010 --> 00:35:51,740 And there is just one other thing. 543 00:35:51,740 --> 00:35:55,460 This came up in discussion at breakfast. 544 00:35:55,460 --> 00:35:58,490 And let me just see if I can show you. 545 00:35:58,490 --> 00:36:03,890 Because amongst those tools that I just showed you, there's one more tool. 546 00:36:03,890 --> 00:36:06,110 And let me see if I can get this to work. 547 00:36:06,110 --> 00:36:08,795 I'm taking a little chance here. 548 00:36:08,795 --> 00:36:13,000 549 00:36:13,000 --> 00:36:17,700 So you can see I have a simple Python program here. 550 00:36:17,700 --> 00:36:20,580 And I do a lot of remote teaching. 551 00:36:20,580 --> 00:36:24,240 And one thing that I'm able to do now, I don't 552 00:36:24,240 --> 00:36:30,960 know how well it shows, but Kate, as you can see here in this for loop-- 553 00:36:30,960 --> 00:36:32,790 I'm just using your name as an example-- 554 00:36:32,790 --> 00:36:38,190 where I can get behind the code, I don't need to do the mouse wiggle, 555 00:36:38,190 --> 00:36:39,340 as they say. 556 00:36:39,340 --> 00:36:40,890 Look over here, over here. 557 00:36:40,890 --> 00:36:42,760 I can get behind the code. 558 00:36:42,760 --> 00:36:49,620 And it's not only for code, but it could be for anything on my desktop. 559 00:36:49,620 --> 00:36:54,150 I can then also do things like-- 560 00:36:54,150 --> 00:36:57,400 hold on one second here, if I can type the right key. 561 00:36:57,400 --> 00:37:00,750 I can also emphasize my hands. 562 00:37:00,750 --> 00:37:07,620 And I can also, if I need to, draw around things, not that I'm 563 00:37:07,620 --> 00:37:11,550 a good drawer, but I can also draw. 564 00:37:11,550 --> 00:37:18,400 And it's totally changed the way that my Zoom-based meetings work because I'm 565 00:37:18,400 --> 00:37:22,060 not relegated to a box in the corner. 566 00:37:22,060 --> 00:37:24,980 I'm in their face all the time. 567 00:37:24,980 --> 00:37:30,610 So Charlie, any last questions before we-- 568 00:37:30,610 --> 00:37:33,970 AUDIENCE: Quite a few "awesomes" and "thank yous" and "amazing" in the chat 569 00:37:33,970 --> 00:37:34,630 for you. 570 00:37:34,630 --> 00:37:36,730 BRUCE ELGORT: Oh, well, well, thanks for that. 571 00:37:36,730 --> 00:37:43,600 Let me just want to thank everybody here for their time and the networking, 572 00:37:43,600 --> 00:37:48,430 not only to you in the room, but to the people on YouTube and Zoom. 573 00:37:48,430 --> 00:37:50,450 And reach out. 574 00:37:50,450 --> 00:37:52,300 I love to collaborate. 575 00:37:52,300 --> 00:37:55,720 And take the tools that I develop. 576 00:37:55,720 --> 00:37:57,190 Give me feedback. 577 00:37:57,190 --> 00:37:59,020 Give me comments. 578 00:37:59,020 --> 00:38:01,870 Tell me what I can improve upon. 579 00:38:01,870 --> 00:38:04,460 And that's all. 580 00:38:04,460 --> 00:38:06,170 Thank you for your time. 581 00:38:06,170 --> 00:38:09,220 [APPLAUSE] 582 00:38:09,220 --> 00:38:11,000