1 00:00:00,000 --> 00:00:03,010 2 00:00:03,010 --> 00:00:06,900 DAVID MALAN: So we'll go ahead and dive into the Q&A portion of today. 3 00:00:06,900 --> 00:00:09,515 So here at Harvard, office hours are? 4 00:00:09,515 --> 00:00:11,390 And here are the results which you should now 5 00:00:11,390 --> 00:00:15,490 see on your screen particularly down toward the bottom for all 6 00:00:15,490 --> 00:00:16,370 of the courses. 7 00:00:16,370 --> 00:00:18,890 So what office hours are at Harvard are an opportunity 8 00:00:18,890 --> 00:00:23,510 for students to drop by professors offices for an hour 9 00:00:23,510 --> 00:00:26,960 and just talk about the class, talk about how life is going, 10 00:00:26,960 --> 00:00:30,150 any questions they might have about academics or the real world. 11 00:00:30,150 --> 00:00:32,689 So even though we're all in just a virtual office today 12 00:00:32,689 --> 00:00:35,030 the goal is just to interact and chat a bit 13 00:00:35,030 --> 00:00:36,950 about topics that are on your minds. 14 00:00:36,950 --> 00:00:39,410 Let Brian and I just ask that if you have questions 15 00:00:39,410 --> 00:00:41,870 that are specific to a problem set or a project, 16 00:00:41,870 --> 00:00:46,558 like code, let's answer those on Slack, or on Discord, or on Ed, 17 00:00:46,558 --> 00:00:48,350 or some other tool because I don't think we 18 00:00:48,350 --> 00:00:53,160 could do a very good job debugging people's code live on video here today. 19 00:00:53,160 --> 00:00:55,610 So let's focus more on concepts. 20 00:00:55,610 --> 00:00:57,890 Without further ado why don't we go ahead 21 00:00:57,890 --> 00:01:00,090 and start the questions and answers. 22 00:01:00,090 --> 00:01:03,350 I see Galaxym20 your hand is up first. 23 00:01:03,350 --> 00:01:08,250 You want to go ahead and unmute yourself and ask a question of the group? 24 00:01:08,250 --> 00:01:09,420 Galaxym20? 25 00:01:09,420 --> 00:01:13,540 26 00:01:13,540 --> 00:01:15,290 Still muted, Galaxym20. 27 00:01:15,290 --> 00:01:18,810 28 00:01:18,810 --> 00:01:19,310 No? 29 00:01:19,310 --> 00:01:20,840 All right, let's move around. 30 00:01:20,840 --> 00:01:22,550 We'll come back to you if that's OK. 31 00:01:22,550 --> 00:01:24,080 Tony Su, is it? 32 00:01:24,080 --> 00:01:25,960 Can we start with you? 33 00:01:25,960 --> 00:01:26,900 AUDIENCE: Yes. 34 00:01:26,900 --> 00:01:28,700 Yes, this is Tony. 35 00:01:28,700 --> 00:01:29,930 I'm Tony Su. 36 00:01:29,930 --> 00:01:32,014 I'm right out from Taipei. 37 00:01:32,014 --> 00:01:35,780 I actually have a couple of questions I want to ask. 38 00:01:35,780 --> 00:01:41,900 But right now the most pressing question I'm curious about 39 00:01:41,900 --> 00:01:45,230 is really mostly about security. 40 00:01:45,230 --> 00:01:48,470 I've really only programmed for one year. 41 00:01:48,470 --> 00:01:51,800 I sometimes stream my coding sessions online. 42 00:01:51,800 --> 00:01:54,830 And some of my developer friends in coffee shops 43 00:01:54,830 --> 00:01:59,750 tell me, don't stream your code online as everyone sees your secret key, 44 00:01:59,750 --> 00:02:01,830 everyone sees everything. 45 00:02:01,830 --> 00:02:05,030 And I'm just wondering, what ware the typical conventions 46 00:02:05,030 --> 00:02:11,670 to basic security management for during development, 47 00:02:11,670 --> 00:02:15,170 or during post development for managing apps? 48 00:02:15,170 --> 00:02:19,880 Or-- what should I even do to try to get into network security or cyber 49 00:02:19,880 --> 00:02:25,460 security, or with Python or like if I have some analytic skills with Python 50 00:02:25,460 --> 00:02:26,910 and so on and so forth. 51 00:02:26,910 --> 00:02:29,210 What should I study and stuff, like that? 52 00:02:29,210 --> 00:02:29,960 DAVID MALAN: Sure. 53 00:02:29,960 --> 00:02:32,710 Why don't I answer the first part and then turn to the latter part 54 00:02:32,710 --> 00:02:33,320 over to Brian? 55 00:02:33,320 --> 00:02:38,210 So if you are live streaming your code and with it your secret keys 56 00:02:38,210 --> 00:02:39,590 on the internet, don't. 57 00:02:39,590 --> 00:02:41,210 That is bad. 58 00:02:41,210 --> 00:02:44,480 You answered the questions yourself already. 59 00:02:44,480 --> 00:02:48,050 If you've taken CS50 or CS50 Web you might recall that anytime 60 00:02:48,050 --> 00:02:50,990 we dealt with secrets, like API keys, we would 61 00:02:50,990 --> 00:02:54,470 encourage you to put them into what are called environment variables which 62 00:02:54,470 --> 00:02:58,550 put them into the computer's memory but in a place where it's not in your code, 63 00:02:58,550 --> 00:03:01,760 which means people on the internet can't see it if you're live streaming, 64 00:03:01,760 --> 00:03:05,300 and you don't accidentally therefore push it to GitHub 65 00:03:05,300 --> 00:03:09,110 or save it in your code repository if you're using version control. 66 00:03:09,110 --> 00:03:11,720 So generally speaking anything you put in your code really 67 00:03:11,720 --> 00:03:13,250 shouldn't be that sensitive. 68 00:03:13,250 --> 00:03:16,250 You should not have passwords, not secret keys or the like. 69 00:03:16,250 --> 00:03:19,100 Use some other mechanism for those. 70 00:03:19,100 --> 00:03:23,000 As for Python itself and security practices and learning more, Brian, 71 00:03:23,000 --> 00:03:25,400 you want to take it from there? 72 00:03:25,400 --> 00:03:25,900 BRIAN: Yeah. 73 00:03:25,900 --> 00:03:28,950 I mean, certainly if you're interested in learning more about security 74 00:03:28,950 --> 00:03:32,850 the domain I'd suggest looking into the world of cryptography, which 75 00:03:32,850 --> 00:03:36,180 is this very vast discipline within computer science 76 00:03:36,180 --> 00:03:39,690 all about trying to communicate things securely 77 00:03:39,690 --> 00:03:44,070 which is becoming very, very necessary in the context of the internet 78 00:03:44,070 --> 00:03:47,310 where you want to be able to send messages to someone across the internet 79 00:03:47,310 --> 00:03:49,768 but you want to do so securely so that nobody in the middle 80 00:03:49,768 --> 00:03:53,160 is going to be able to access whatever information you're trying to send them. 81 00:03:53,160 --> 00:03:55,920 And there are a whole bunch of now algorithms and libraries 82 00:03:55,920 --> 00:03:59,430 that exist in languages like Python that might be worth exploring there. 83 00:03:59,430 --> 00:04:01,680 And this kind of cryptography is the basis 84 00:04:01,680 --> 00:04:04,380 for how communication over the internet works. 85 00:04:04,380 --> 00:04:07,340 It's the basis for how cryptocurrencies like Bitcoin work, 86 00:04:07,340 --> 00:04:09,650 if you're familiar with or ever heard of those. 87 00:04:09,650 --> 00:04:13,050 So a lot of applications now have used cryptographic techniques. 88 00:04:13,050 --> 00:04:16,870 And we talk about these a little bit in CS50 and the web programming class, 89 00:04:16,870 --> 00:04:20,311 but definitely a lot more there to explore. 90 00:04:20,311 --> 00:04:21,269 DAVID MALAN: Wonderful. 91 00:04:21,269 --> 00:04:22,686 Well, thank you for that question. 92 00:04:22,686 --> 00:04:27,030 Can we go next to, let's say, Moritz? 93 00:04:27,030 --> 00:04:28,438 If I'm saying it correctly? 94 00:04:28,438 --> 00:04:31,580 95 00:04:31,580 --> 00:04:33,950 AUDIENCE: Yes, hello. 96 00:04:33,950 --> 00:04:36,150 My question is a two parter. 97 00:04:36,150 --> 00:04:43,700 So I started out programming with CS50X, and well, our university semester 98 00:04:43,700 --> 00:04:47,840 is kind of on hold now because of the whole coronavirus situation. 99 00:04:47,840 --> 00:04:52,040 And I've long considered the CS50x in particular 100 00:04:52,040 --> 00:04:58,140 to be the master class when it comes to teaching programming 101 00:04:58,140 --> 00:05:00,260 in an online kind of environment. 102 00:05:00,260 --> 00:05:04,020 And I'm sure that a lot of work has gone into getting it up to that level. 103 00:05:04,020 --> 00:05:07,250 And I'd like you to share with us some of the insights that you 104 00:05:07,250 --> 00:05:12,500 had going through developing this online course and all of the material, 105 00:05:12,500 --> 00:05:16,310 and what perhaps other educators could take away 106 00:05:16,310 --> 00:05:19,640 from it to improve their own materials. 107 00:05:19,640 --> 00:05:21,560 DAVID MALAN: Well thank you, first of all. 108 00:05:21,560 --> 00:05:25,550 I can say that it's been very incremental over the years what 109 00:05:25,550 --> 00:05:27,410 we've done with CS50. 110 00:05:27,410 --> 00:05:30,710 And I think what you see now is really the aggregate effect 111 00:05:30,710 --> 00:05:34,310 of a lot of efforts by myself, by people like Brian, 112 00:05:34,310 --> 00:05:37,190 by other members of our team over the past 13 years 113 00:05:37,190 --> 00:05:39,140 now since I took over the class. 114 00:05:39,140 --> 00:05:41,750 And I think the simplest answer from the get go 115 00:05:41,750 --> 00:05:45,240 is that we set out some time ago really just to solve a problem. 116 00:05:45,240 --> 00:05:48,863 So back in 2004 or so I was teaching a different class 117 00:05:48,863 --> 00:05:51,530 at Harvard's extension school, which is our continuing education 118 00:05:51,530 --> 00:05:55,710 program for adults primarily, both on campus and off. 119 00:05:55,710 --> 00:05:58,580 And at the time Harvard was using video technology called 120 00:05:58,580 --> 00:06:00,890 Real Video, if any of you remember it. 121 00:06:00,890 --> 00:06:03,830 It was one of the earliest streaming video formats. 122 00:06:03,830 --> 00:06:07,880 It wasn't that great but it was still cutting edge nonetheless at the time. 123 00:06:07,880 --> 00:06:11,150 But it didn't allow you to save the videos locally. 124 00:06:11,150 --> 00:06:13,350 It didn't allow you to take the videos with you. 125 00:06:13,350 --> 00:06:17,810 And so it was around 2004 that I think the first iPod came out, give or take, 126 00:06:17,810 --> 00:06:20,900 and podcasting became a term. 127 00:06:20,900 --> 00:06:24,140 I didn't really know what it was but it seems interesting to us 128 00:06:24,140 --> 00:06:27,560 that we could allow our students in that class to maybe download 129 00:06:27,560 --> 00:06:29,870 these videos, or even MP3s-- 130 00:06:29,870 --> 00:06:31,400 audio recordings of them-- 131 00:06:31,400 --> 00:06:35,150 and then take them with them on the train, to work, to the gym, 132 00:06:35,150 --> 00:06:36,320 on the treadmill. 133 00:06:36,320 --> 00:06:38,960 And so we really started doing everything 134 00:06:38,960 --> 00:06:41,780 on the internet just for our own students' sake. 135 00:06:41,780 --> 00:06:44,420 But [INAUDIBLE] that a whole lot of people around the world 136 00:06:44,420 --> 00:06:47,390 start tuning in which was a pleasant surprise to us. 137 00:06:47,390 --> 00:06:49,940 And then in the years since then did we very consciously 138 00:06:49,940 --> 00:06:53,660 start making sure that any materials we create 139 00:06:53,660 --> 00:06:55,648 are digitally accessible as well. 140 00:06:55,648 --> 00:06:58,190 And this is PDFs, and this is handouts, and this is software, 141 00:06:58,190 --> 00:06:59,420 and everything else. 142 00:06:59,420 --> 00:07:03,170 And we also became more sensitized to internationalization. 143 00:07:03,170 --> 00:07:08,810 So very early on we would ask questions about American sports or even US 144 00:07:08,810 --> 00:07:11,570 currency, which of course if you're living abroad like many of you 145 00:07:11,570 --> 00:07:14,963 are you might not have those same experiences or backgrounds. 146 00:07:14,963 --> 00:07:16,880 And so I think in recent years too we've tried 147 00:07:16,880 --> 00:07:21,050 to be more culturally sensitive and geographically sensitive to students 148 00:07:21,050 --> 00:07:23,340 disparate backgrounds and not assume anything. 149 00:07:23,340 --> 00:07:25,340 And so now we still have a problem set you might 150 00:07:25,340 --> 00:07:27,860 recall on cash, a greedy algorithm. 151 00:07:27,860 --> 00:07:32,540 But we define for everyone what a nickel is, what a dime is, and so forth. 152 00:07:32,540 --> 00:07:35,410 And then lastly I think I would propose that it's 153 00:07:35,410 --> 00:07:37,160 thanks to members of our team, one of whom 154 00:07:37,160 --> 00:07:40,830 is-- a few of them actually are on this video call with us today, Ian 155 00:07:40,830 --> 00:07:42,890 and Arturo and Ramon. 156 00:07:42,890 --> 00:07:45,650 We have this amazing team focusing on videography. 157 00:07:45,650 --> 00:07:48,830 And we now stream in widescreen 4K video. 158 00:07:48,830 --> 00:07:50,480 And I mean, that's very deliberate too. 159 00:07:50,480 --> 00:07:52,522 I think all of us take pride in what we're doing. 160 00:07:52,522 --> 00:07:54,770 And the goal is not to have, ironically today, 161 00:07:54,770 --> 00:07:57,770 small little video screens of people normally, 162 00:07:57,770 --> 00:08:03,230 but media that really draw the students in and make education as engaging, 163 00:08:03,230 --> 00:08:05,480 if not entertaining, as possible. 164 00:08:05,480 --> 00:08:10,580 I spent 18 plus years in high school and prior not really loving school. 165 00:08:10,580 --> 00:08:12,982 I sort of worked hard just because I thought I should. 166 00:08:12,982 --> 00:08:15,440 But I don't think school needs to be this obligatory thing. 167 00:08:15,440 --> 00:08:16,790 I think it can be a passion. 168 00:08:16,790 --> 00:08:19,970 And so we've tried to create, we hope, an environment 169 00:08:19,970 --> 00:08:23,090 that draws folks like yourself in. 170 00:08:23,090 --> 00:08:25,220 Thank you for asking. 171 00:08:25,220 --> 00:08:31,250 Can we go to our next question here, how about from-- 172 00:08:31,250 --> 00:08:33,730 looking for some blue hands-- 173 00:08:33,730 --> 00:08:35,000 Debashis? 174 00:08:35,000 --> 00:08:39,210 If I'm pronouncing that right, against the green screen? 175 00:08:39,210 --> 00:08:40,980 Still muted. 176 00:08:40,980 --> 00:08:42,240 AUDIENCE: My voice is clear? 177 00:08:42,240 --> 00:08:43,260 DAVID MALAN: Yes. 178 00:08:43,260 --> 00:08:44,490 AUDIENCE: OK. 179 00:08:44,490 --> 00:08:48,140 I was asking, I follow your videos from your group. 180 00:08:48,140 --> 00:08:48,702 Hello? 181 00:08:48,702 --> 00:08:49,410 DAVID MALAN: Yes. 182 00:08:49,410 --> 00:08:50,871 We can hear you. 183 00:08:50,871 --> 00:08:53,310 AUDIENCE: I follow your videos from your group. 184 00:08:53,310 --> 00:09:02,880 I wanted to know, is there any more because [INAUDIBLE] Hello? 185 00:09:02,880 --> 00:09:03,630 DAVID MALAN: Yeah. 186 00:09:03,630 --> 00:09:06,110 Can you say that question again? 187 00:09:06,110 --> 00:09:11,570 AUDIENCE: Can you suggest more videos which we can get from the internet? 188 00:09:11,570 --> 00:09:17,220 I am from India and I follow your YouTube videos and CS50 lectures. 189 00:09:17,220 --> 00:09:17,742 Hello? 190 00:09:17,742 --> 00:09:18,450 DAVID MALAN: Yes. 191 00:09:18,450 --> 00:09:19,708 We can hear you. 192 00:09:19,708 --> 00:09:20,250 AUDIENCE: OK. 193 00:09:20,250 --> 00:09:23,340 I follow your CS50 lectures. 194 00:09:23,340 --> 00:09:28,800 And can you suggest some more [INAUDIBLE] 195 00:09:28,800 --> 00:09:31,780 on the internet which you follow? 196 00:09:31,780 --> 00:09:33,520 [INAUDIBLE] comments. 197 00:09:33,520 --> 00:09:34,440 DAVID MALAN: Yeah. 198 00:09:34,440 --> 00:09:35,850 Let me let Brian answer this too. 199 00:09:35,850 --> 00:09:39,000 There aren't that many courses I've taken online to be honest. 200 00:09:39,000 --> 00:09:41,940 I tend to be so focused on what it is we're doing. 201 00:09:41,940 --> 00:09:45,360 With some bias, let me paste into the chat window, which 202 00:09:45,360 --> 00:09:46,800 you should be able to see-- 203 00:09:46,800 --> 00:09:51,690 this of course is all of CS50's courses which go beyond CS50 itself. 204 00:09:51,690 --> 00:09:54,660 Brian now teaches a course on web programming, 205 00:09:54,660 --> 00:09:56,605 soon on artificial intelligence. 206 00:09:56,605 --> 00:09:59,730 But another one that I do like-- let me go ahead and Google it real quickly 207 00:09:59,730 --> 00:10:01,830 and then paste this as well-- 208 00:10:01,830 --> 00:10:04,930 is of course from Princeton University on algorithms. 209 00:10:04,930 --> 00:10:07,140 It's freely available on Coursera. 210 00:10:07,140 --> 00:10:10,470 And if you're looking to learn a little more CS Theory, 211 00:10:10,470 --> 00:10:14,760 see the algorithms class that I just pasted into the chat window as well. 212 00:10:14,760 --> 00:10:16,800 Brian I think is a better student than I am 213 00:10:16,800 --> 00:10:19,430 Do you have courses you'd recommend too? 214 00:10:19,430 --> 00:10:23,250 BRIAN: Other courses I'd recommend-- really depends a lot on your interests. 215 00:10:23,250 --> 00:10:26,010 So if algorithms are something that are interesting to you, 216 00:10:26,010 --> 00:10:29,400 definitely that Coursera class on algorithms is great. 217 00:10:29,400 --> 00:10:32,490 A former Harvard professor, Jelani Nelson, 218 00:10:32,490 --> 00:10:35,940 taught an advanced algorithms classes at Harvard too and most of those lectures 219 00:10:35,940 --> 00:10:38,880 are also available on YouTube if algorithm design 220 00:10:38,880 --> 00:10:40,890 is something you're also interested in. 221 00:10:40,890 --> 00:10:42,810 And then depending on your other interests, 222 00:10:42,810 --> 00:10:46,350 MIT has a great class on deep learning if machine learning is something 223 00:10:46,350 --> 00:10:47,435 that you're interested. 224 00:10:47,435 --> 00:10:50,310 They have a great course on deep learning that's available on YouTube 225 00:10:50,310 --> 00:10:51,520 as well. 226 00:10:51,520 --> 00:10:52,950 And then I personally am-- 227 00:10:52,950 --> 00:10:54,600 I studied linguistics in college. 228 00:10:54,600 --> 00:10:57,390 I'm very interested in natural language processing. 229 00:10:57,390 --> 00:11:01,440 Stanford has a great online class about natural language processing too. 230 00:11:01,440 --> 00:11:05,583 So lots of universities make a lot of their courses available online. 231 00:11:05,583 --> 00:11:07,500 So just a little bit of looking around and you 232 00:11:07,500 --> 00:11:09,500 can probably find the ones that I just mentioned 233 00:11:09,500 --> 00:11:12,147 and also a number of others too. 234 00:11:12,147 --> 00:11:12,980 DAVID MALAN: Indeed. 235 00:11:12,980 --> 00:11:15,920 Please feel free to paste URLs of courses into the chat window 236 00:11:15,920 --> 00:11:17,570 for everyone as well. 237 00:11:17,570 --> 00:11:18,500 Let's move on. 238 00:11:18,500 --> 00:11:20,930 And if you do have your hand up but your video is not on, 239 00:11:20,930 --> 00:11:22,730 if you do have a camera do try to turn it 240 00:11:22,730 --> 00:11:27,890 on because it'll make it easier for us to see you, literally, and interact. 241 00:11:27,890 --> 00:11:33,010 How about next question from Suhaus, if I'm saying it right? 242 00:11:33,010 --> 00:11:33,680 AUDIENCE: Hello. 243 00:11:33,680 --> 00:11:38,470 So I'm doing CS50X 2020. 244 00:11:38,470 --> 00:11:40,840 And I have a friend who did the 2019 course, 245 00:11:40,840 --> 00:11:43,240 and based on what I taught them, I personally-- 246 00:11:43,240 --> 00:11:47,880 I don't know if this is true but I felt as if the 2019 one was actually tougher 247 00:11:47,880 --> 00:11:49,180 than the 2020 one. 248 00:11:49,180 --> 00:11:54,820 How do you decide the pieces of each year? 249 00:11:54,820 --> 00:11:56,680 You change some of them every year. 250 00:11:56,680 --> 00:11:59,978 So how do you decide which ones to keep and which ones to replace? 251 00:11:59,978 --> 00:12:02,020 DAVID MALAN: Yeah, that's a really good question. 252 00:12:02,020 --> 00:12:04,380 And Brian and I especially spent a lot of time 253 00:12:04,380 --> 00:12:10,830 last summer, summer of 2019, thinking about what problem sets to change, 254 00:12:10,830 --> 00:12:12,090 which ones to keep. 255 00:12:12,090 --> 00:12:13,950 There are several that we really like. 256 00:12:13,950 --> 00:12:18,540 So for instance Mario, which of course is the first one, Cash and Credit we've 257 00:12:18,540 --> 00:12:22,110 used for many years now, CS50 Finance on the end of the course 258 00:12:22,110 --> 00:12:23,820 we've used for many years now. 259 00:12:23,820 --> 00:12:25,740 But there's always some number of problem sets 260 00:12:25,740 --> 00:12:29,070 that I, and Brian, and the teaching fellows, don't quite love, 261 00:12:29,070 --> 00:12:33,690 either because it's not quite as engaging as we would hope 262 00:12:33,690 --> 00:12:37,230 or it's not quite focused as we would like on some subject. 263 00:12:37,230 --> 00:12:42,650 So Brian wonderfully came up with a long list of new problems set ideas. 264 00:12:42,650 --> 00:12:43,770 I, after 13-- 265 00:12:43,770 --> 00:12:45,330 12 years at the time-- 266 00:12:45,330 --> 00:12:47,370 was running low on new ideas. 267 00:12:47,370 --> 00:12:50,160 And he wonderfully infused us with a number of new problem sets. 268 00:12:50,160 --> 00:12:52,770 And in fact, do you, Brian, want to speak to what 269 00:12:52,770 --> 00:12:55,170 guided your decision making there? 270 00:12:55,170 --> 00:12:56,080 BRIAN: Yeah, sure. 271 00:12:56,080 --> 00:12:59,370 So a big part of the guiding ideas that we 272 00:12:59,370 --> 00:13:03,240 have when we were coming up with new problems for CS50x 2020 273 00:13:03,240 --> 00:13:05,490 was thinking about the different backgrounds 274 00:13:05,490 --> 00:13:07,307 that people come to this class with. 275 00:13:07,307 --> 00:13:09,390 That most of the people that are taking the class, 276 00:13:09,390 --> 00:13:12,180 they haven't had computer science background before but they maybe 277 00:13:12,180 --> 00:13:13,740 come with some other background. 278 00:13:13,740 --> 00:13:16,107 Maybe they know a little bit about government 279 00:13:16,107 --> 00:13:18,690 or maybe you know a little bit by a biology from other classes 280 00:13:18,690 --> 00:13:19,720 they might have taken. 281 00:13:19,720 --> 00:13:22,770 So with a lot of the problem sets that we've created, 282 00:13:22,770 --> 00:13:26,640 especially in the past year, we've tried to integrate computer science 283 00:13:26,640 --> 00:13:29,340 with other fields and try and show how you 284 00:13:29,340 --> 00:13:32,490 can take the skills you learn in CS50 and really apply them 285 00:13:32,490 --> 00:13:35,110 to other domains outside of computer science. 286 00:13:35,110 --> 00:13:38,460 And so if you've done the CS50X 2020 problems, 287 00:13:38,460 --> 00:13:40,920 you might be familiar with the election problems. 288 00:13:40,920 --> 00:13:42,780 There are three different election problems 289 00:13:42,780 --> 00:13:45,150 that are all based around the idea of trying 290 00:13:45,150 --> 00:13:49,110 to simulate an election and various different election algorithms. 291 00:13:49,110 --> 00:13:52,510 And these algorithms come at varying different degrees of complexity, 292 00:13:52,510 --> 00:13:56,010 which lends itself really nicely to our less comfortable and more comfortable 293 00:13:56,010 --> 00:13:59,250 problems where we like to offer a bit of a more comfortable challenge 294 00:13:59,250 --> 00:14:02,490 for students who would like to try a more challenging problem, 295 00:14:02,490 --> 00:14:06,000 or who complete one of the problems and are looking for another problem 296 00:14:06,000 --> 00:14:07,870 to try to complete as well. 297 00:14:07,870 --> 00:14:10,350 So we created a problem set to integrate with government. 298 00:14:10,350 --> 00:14:13,740 We created a problem set to integrate with English and literature 299 00:14:13,740 --> 00:14:17,240 in the context of the readability analysis in problem set two. 300 00:14:17,240 --> 00:14:21,990 And then we had another new problem that was all about biology and DNA analysis 301 00:14:21,990 --> 00:14:25,290 in terms of the types of things that happen in criminal justice 302 00:14:25,290 --> 00:14:26,550 investigations. 303 00:14:26,550 --> 00:14:29,413 And so problem set six now includes that as well. 304 00:14:29,413 --> 00:14:31,830 And with all those problems our goal was to try and create 305 00:14:31,830 --> 00:14:33,930 something interesting to really demonstrate 306 00:14:33,930 --> 00:14:37,920 the power you get with just a couple of weeks of learning about programming 307 00:14:37,920 --> 00:14:39,920 and learning about computer science. 308 00:14:39,920 --> 00:14:43,740 DAVID MALAN: And Suhaus, just so we get a sense, what country are you from? 309 00:14:43,740 --> 00:14:44,910 AUDIENCE: I'm from India. 310 00:14:44,910 --> 00:14:45,350 DAVID MALAN: India? 311 00:14:45,350 --> 00:14:45,720 OK. 312 00:14:45,720 --> 00:14:46,330 AUDIENCE: Yeah. 313 00:14:46,330 --> 00:14:47,000 DAVID MALAN: Wonderful. 314 00:14:47,000 --> 00:14:47,850 Thank you for the question. 315 00:14:47,850 --> 00:14:49,935 AUDIENCE: I have a question that's an extension. 316 00:14:49,935 --> 00:14:51,720 Could I ask that if that's fine? 317 00:14:51,720 --> 00:14:52,720 DAVID MALAN: Sure, sure. 318 00:14:52,720 --> 00:14:54,070 Go ahead. 319 00:14:54,070 --> 00:14:59,600 AUDIENCE: I've noticed this, especially if you look at week four, the filter 320 00:14:59,600 --> 00:15:02,700 ones, and even week three where you're only 321 00:15:02,700 --> 00:15:05,340 required to fill out certain functions. 322 00:15:05,340 --> 00:15:10,470 But like there are other pieces where [INAUDIBLE] function from scratch. 323 00:15:10,470 --> 00:15:13,530 So on what basis do you decide that? 324 00:15:13,530 --> 00:15:16,300 DAVID MALAN: That depends on the complexity of the problem sets. 325 00:15:16,300 --> 00:15:18,470 And one of the goals of problem set four, 326 00:15:18,470 --> 00:15:20,820 to which you're referring this most recent year, where 327 00:15:20,820 --> 00:15:24,540 if you're unfamiliar we had students implement in addition to JPEG 328 00:15:24,540 --> 00:15:26,880 recovery, which some of you might recall, 329 00:15:26,880 --> 00:15:29,700 we also had students implement a number of Instagram 330 00:15:29,700 --> 00:15:32,670 like filters which is just one of Brian's new problem sets. 331 00:15:32,670 --> 00:15:34,920 One of the goals for that problem set is not just 332 00:15:34,920 --> 00:15:40,410 file I/O, but is also how to read code, read code that someone else wrote. 333 00:15:40,410 --> 00:15:43,260 So one of the things we tend to do is start 334 00:15:43,260 --> 00:15:46,080 to put place holders in code so that students first 335 00:15:46,080 --> 00:15:50,370 have to understand everything we wrote and then write the actual logic 336 00:15:50,370 --> 00:15:51,180 themselves. 337 00:15:51,180 --> 00:15:54,760 We often provide distribution code too if we think that either one, 338 00:15:54,760 --> 00:15:57,480 it would just be way too hard for new programmers 339 00:15:57,480 --> 00:16:00,210 to come up with everything on their own, or if it would just 340 00:16:00,210 --> 00:16:03,000 be too boring or mundane to do some of the details 341 00:16:03,000 --> 00:16:05,400 like getting command line arguments or things like this. 342 00:16:05,400 --> 00:16:10,820 We want each problem set to focus and only focus on something new. 343 00:16:10,820 --> 00:16:11,470 Thank you. 344 00:16:11,470 --> 00:16:12,860 Carolina, can we go to you next? 345 00:16:12,860 --> 00:16:15,360 And do you want to tell us what country you're in right now? 346 00:16:15,360 --> 00:16:17,630 AUDIENCE: I'm actually in Miami, Florida. 347 00:16:17,630 --> 00:16:18,860 But I'm from Colombia. 348 00:16:18,860 --> 00:16:20,290 DAVID MALAN: OK. 349 00:16:20,290 --> 00:16:24,670 AUDIENCE: I decided to join CS50 because I'm actually in the beauty industry 350 00:16:24,670 --> 00:16:29,560 and I came up with an idea to do an app for the industry 351 00:16:29,560 --> 00:16:31,330 as a professional in it. 352 00:16:31,330 --> 00:16:33,820 And it has turned out to be crazy but I wanted 353 00:16:33,820 --> 00:16:36,370 to learn more because if I had decide to hire people 354 00:16:36,370 --> 00:16:39,770 to do this for me, which I have tried in the past, I haven't had any luck. 355 00:16:39,770 --> 00:16:41,770 It's not good to hire people if you don't really 356 00:16:41,770 --> 00:16:43,062 know what you're talking about. 357 00:16:43,062 --> 00:16:46,900 I have to speak the same language as the programmers. 358 00:16:46,900 --> 00:16:49,690 So this has been interesting for me. 359 00:16:49,690 --> 00:16:53,470 I actually went to visit the business school in October last year. 360 00:16:53,470 --> 00:16:56,910 And I noticed there were so many people in different industries 361 00:16:56,910 --> 00:16:58,660 but not one person in the beauty industry. 362 00:16:58,660 --> 00:17:02,710 So that gave me a little more enthusiasm to do this. 363 00:17:02,710 --> 00:17:06,297 And I just finished my first problem, which I've 364 00:17:06,297 --> 00:17:07,839 been procrastinating for a long time. 365 00:17:07,839 --> 00:17:11,569 But now with this [INAUDIBLE] going on I've been trying to upload it, 366 00:17:11,569 --> 00:17:14,440 but it shows that I'm not registered although I even 367 00:17:14,440 --> 00:17:16,994 paid for the certification. 368 00:17:16,994 --> 00:17:18,369 That's one thing that I need to-- 369 00:17:18,369 --> 00:17:20,500 I've been writing to a few people and no one 370 00:17:20,500 --> 00:17:23,849 has been able to help me to submit my first [INAUDIBLE].. 371 00:17:23,849 --> 00:17:30,100 But one question that I had, previously I had an account on GitHub for the app 372 00:17:30,100 --> 00:17:32,230 that I was working for, [INAUDIBLE]. 373 00:17:32,230 --> 00:17:34,780 And the developer kind of abandoned that. 374 00:17:34,780 --> 00:17:35,860 And I just [INAUDIBLE]. 375 00:17:35,860 --> 00:17:39,760 So I created a new account for this course. 376 00:17:39,760 --> 00:17:41,850 And I'm not able to use that either. 377 00:17:41,850 --> 00:17:43,060 And how safe is that? 378 00:17:43,060 --> 00:17:46,490 Because I noticed that he had the whole coding exposed. 379 00:17:46,490 --> 00:17:48,430 And I keep getting notifications from them 380 00:17:48,430 --> 00:17:57,080 about possible issues, or security issues, with the coding. 381 00:17:57,080 --> 00:18:00,040 So I don't know for this program for Harvard, 382 00:18:00,040 --> 00:18:02,647 if it's going to be the same way. 383 00:18:02,647 --> 00:18:03,730 DAVID MALAN: Tough to say. 384 00:18:03,730 --> 00:18:04,210 AUDIENCE: --to upload-- 385 00:18:04,210 --> 00:18:05,540 DAVID MALAN: [INAUDIBLE] this. 386 00:18:05,540 --> 00:18:09,790 I've just pasted into the chat window an email address for our staff. 387 00:18:09,790 --> 00:18:13,240 If you can write us your question about the account, 388 00:18:13,240 --> 00:18:15,460 that would be best answered there. 389 00:18:15,460 --> 00:18:17,740 Hard to say about the GitHub scenario you described, 390 00:18:17,740 --> 00:18:19,990 but if you don't mind elaborating over an email that 391 00:18:19,990 --> 00:18:21,990 would be best for a question like that. 392 00:18:21,990 --> 00:18:26,080 And then I should mention too, we do have this class that I also just 393 00:18:26,080 --> 00:18:30,370 pasted into the chat window, an introduction to technology 394 00:18:30,370 --> 00:18:33,740 for managers, which is based on the classes I teach at Harvard's Business 395 00:18:33,740 --> 00:18:34,240 School. 396 00:18:34,240 --> 00:18:36,070 That might also be of interest. 397 00:18:36,070 --> 00:18:38,860 It focuses less on programming and more on concepts, 398 00:18:38,860 --> 00:18:44,657 especially for folks who want to apply CS in real world businesses. 399 00:18:44,657 --> 00:18:45,240 AUDIENCE: Yes. 400 00:18:45,240 --> 00:18:47,070 I was thinking of the algorithm class too 401 00:18:47,070 --> 00:18:49,620 because I feel like that's so important, especially for what 402 00:18:49,620 --> 00:18:52,305 I'm trying to do because it has to do with the categories in how 403 00:18:52,305 --> 00:18:54,450 I want to divide everyone in the beauty industry. 404 00:18:54,450 --> 00:18:56,300 I think that would probably work as well. 405 00:18:56,300 --> 00:18:56,700 DAVID MALAN: Yeah, absolutely. 406 00:18:56,700 --> 00:18:57,250 AUDIENCE: What do you think? 407 00:18:57,250 --> 00:19:00,375 DAVID MALAN: That one it's probably better to do after a programming class, 408 00:19:00,375 --> 00:19:04,536 just because Kevin and the professors there assume more of a background. 409 00:19:04,536 --> 00:19:07,220 All right, well next can we go to-- 410 00:19:07,220 --> 00:19:08,990 Cem, or Kem is it? 411 00:19:08,990 --> 00:19:09,560 Salta? 412 00:19:09,560 --> 00:19:11,720 I'm sorry if I'm not pronouncing that right. 413 00:19:11,720 --> 00:19:12,950 AUDIENCE: It's actually Jim. 414 00:19:12,950 --> 00:19:14,683 It's Turkish so that's why. 415 00:19:14,683 --> 00:19:15,350 DAVID MALAN: OK. 416 00:19:15,350 --> 00:19:17,890 Do you want to tell us where you're from, if not MIT? 417 00:19:17,890 --> 00:19:18,590 AUDIENCE: Sure. 418 00:19:18,590 --> 00:19:22,050 Well, I don't go to MIT but I'm from Turkey. 419 00:19:22,050 --> 00:19:23,660 I had an exchange year last year. 420 00:19:23,660 --> 00:19:25,290 I lived in Massachusetts. 421 00:19:25,290 --> 00:19:27,860 So that's how I get it. 422 00:19:27,860 --> 00:19:30,230 And right now I'm in the IB program, which 423 00:19:30,230 --> 00:19:31,825 is the International Baccalaureate. 424 00:19:31,825 --> 00:19:33,200 I actually want to go to Harvard. 425 00:19:33,200 --> 00:19:35,890 I'm in high school. 426 00:19:35,890 --> 00:19:40,610 So I'm taking the course, CS50, and right now for my school 427 00:19:40,610 --> 00:19:42,440 I'm also writing a paper. 428 00:19:42,440 --> 00:19:43,970 And I have this question. 429 00:19:43,970 --> 00:19:47,800 It's, to what extent are Massive Online Open Courses, 430 00:19:47,800 --> 00:19:55,990 MOOCs, more effective than those courses completed face to face within Harvard? 431 00:19:55,990 --> 00:19:57,490 DAVID MALAN: That's a good question. 432 00:19:57,490 --> 00:19:59,615 I'm not sure if we should do your homework for you. 433 00:19:59,615 --> 00:20:00,290 But-- 434 00:20:00,290 --> 00:20:00,915 AUDIENCE: Yeah. 435 00:20:00,915 --> 00:20:04,790 Well, eventually I will have to ask you a couple of more questions 436 00:20:04,790 --> 00:20:06,720 so I'll probably email it to you. 437 00:20:06,720 --> 00:20:07,730 But yeah. 438 00:20:07,730 --> 00:20:08,490 DAVID MALAN: Sure. 439 00:20:08,490 --> 00:20:11,190 I think I have a few thoughts in general on this. 440 00:20:11,190 --> 00:20:16,780 So I do think there's value to taking courses in person when you can, 441 00:20:16,780 --> 00:20:20,130 not because I think it's that useful to be in the same classroom, 442 00:20:20,130 --> 00:20:24,150 with the same classmates, with the same professor two or three times a week 443 00:20:24,150 --> 00:20:26,970 for 12 weeks or 16 weeks. 444 00:20:26,970 --> 00:20:30,870 I think there is some value certainly to that interpersonal aspect. 445 00:20:30,870 --> 00:20:34,380 So for instance in CS50, among the goals of our own lecturers 446 00:20:34,380 --> 00:20:38,100 is not only to present material conceptually so that hopefully students 447 00:20:38,100 --> 00:20:41,070 are understanding the week's topics, but also we 448 00:20:41,070 --> 00:20:43,140 hope to just get students excited and maybe 449 00:20:43,140 --> 00:20:45,150 a little bit inspired about that material 450 00:20:45,150 --> 00:20:47,370 so that they rather care about what it is 451 00:20:47,370 --> 00:20:49,690 they're going to be doing in the homework assignments. 452 00:20:49,690 --> 00:20:55,110 I'd like to think that we or I can do a good job, or a decent job, 453 00:20:55,110 --> 00:20:59,400 maybe once a week for 12 weeks at generating excitement and generating 454 00:20:59,400 --> 00:21:00,270 enthusiasm. 455 00:21:00,270 --> 00:21:02,372 I don't think I can do that three times a week 456 00:21:02,372 --> 00:21:04,830 and have everyone leaving with the same sense of excitement 457 00:21:04,830 --> 00:21:06,420 for the material the next day. 458 00:21:06,420 --> 00:21:08,880 So at that point I think that it becomes very 459 00:21:08,880 --> 00:21:13,050 reasonable to do a lot more of the learning on one's own asynchronously, 460 00:21:13,050 --> 00:21:16,448 via a MOOC or via online education more generally. 461 00:21:16,448 --> 00:21:18,990 But what I think is important and helpful for a lot of people 462 00:21:18,990 --> 00:21:20,640 is just to have some community. 463 00:21:20,640 --> 00:21:23,553 Maybe ideally its classmates, or friends, or teachers, 464 00:21:23,553 --> 00:21:26,220 who can look over your shoulder at what it is you're programming 465 00:21:26,220 --> 00:21:28,653 and give you very specific advice. 466 00:21:28,653 --> 00:21:30,570 I don't think it's unreasonable though to have 467 00:21:30,570 --> 00:21:33,480 a roomful of people on Zoom, or Slack, or Discord, 468 00:21:33,480 --> 00:21:36,510 or Stack Exchange, or Reddit, or any of those communities 469 00:21:36,510 --> 00:21:38,250 that CS50 itself uses. 470 00:21:38,250 --> 00:21:40,880 I think what's just important is that you have a community. 471 00:21:40,880 --> 00:21:44,610 And I do think that in some ways CS50 is a better experience 472 00:21:44,610 --> 00:21:49,750 to take online because all of you can pause, rewind, fast forward, 473 00:21:49,750 --> 00:21:52,890 search a transcript, hyperlink to some other website, 474 00:21:52,890 --> 00:21:54,990 and take a moment to apply those lessons. 475 00:21:54,990 --> 00:21:57,210 Whereas the Harvard students in Cambridge 476 00:21:57,210 --> 00:21:59,220 are a captive audience for two hours. 477 00:21:59,220 --> 00:22:01,890 And if I go too fast they're sort of out of luck. 478 00:22:01,890 --> 00:22:03,648 They can't ask me to rewind. 479 00:22:03,648 --> 00:22:06,690 I mean, they can ask a question but they can't necessarily rewind in time 480 00:22:06,690 --> 00:22:08,242 or take some time to absorb it. 481 00:22:08,242 --> 00:22:09,450 So I think there's a balance. 482 00:22:09,450 --> 00:22:11,820 And what we try to do in CS50 at least is, 483 00:22:11,820 --> 00:22:15,120 we present the conceptual material just as effectively, 484 00:22:15,120 --> 00:22:17,400 we hope, in person as on video. 485 00:22:17,400 --> 00:22:19,080 But then we have these communities. 486 00:22:19,080 --> 00:22:21,540 In Cambridge we call them sections on campus. 487 00:22:21,540 --> 00:22:25,170 Online you might just call them cohorts, or friends online. 488 00:22:25,170 --> 00:22:28,470 I think just having that human support structure is important. 489 00:22:28,470 --> 00:22:31,290 And I don't think it's effective if a course is really 490 00:22:31,290 --> 00:22:33,690 just videos and multiple choice questions, 491 00:22:33,690 --> 00:22:35,850 or PowerPoint slides that you're flipping through. 492 00:22:35,850 --> 00:22:38,970 I've taken some very bad online courses. 493 00:22:38,970 --> 00:22:42,020 But the hope is to find the best of both worlds. 494 00:22:42,020 --> 00:22:43,770 So I hope that helps you do your homework. 495 00:22:43,770 --> 00:22:44,400 Feel free to reach out to us. 496 00:22:44,400 --> 00:22:45,070 AUDIENCE: That's a great answer. 497 00:22:45,070 --> 00:22:46,200 Thank you very much. 498 00:22:46,200 --> 00:22:49,260 And also, there's an aspect to it because I 499 00:22:49,260 --> 00:22:52,890 have some friends in the business school and doing that, during the class 500 00:22:52,890 --> 00:22:55,370 they always participate. 501 00:22:55,370 --> 00:23:00,420 It's like a lecture where the professor is teaching whatever the material is, 502 00:23:00,420 --> 00:23:02,820 but they're participating, or the situation 503 00:23:02,820 --> 00:23:07,090 is they're talking a lot like students too, inside a classroom. 504 00:23:07,090 --> 00:23:08,950 So I think there's variables to it. 505 00:23:08,950 --> 00:23:12,180 And there's also people's attention, like are they 506 00:23:12,180 --> 00:23:14,310 able to look at a screen for two hours? 507 00:23:14,310 --> 00:23:19,590 Or are they better at looking at the professor on the board? 508 00:23:19,590 --> 00:23:22,180 I mean, there are many variables to it. 509 00:23:22,180 --> 00:23:23,430 DAVID MALAN: Yeah, absolutely. 510 00:23:23,430 --> 00:23:24,720 AUDIENCE: Thank you very much for answering. 511 00:23:24,720 --> 00:23:24,960 DAVID MALAN: No. 512 00:23:24,960 --> 00:23:25,877 And it's funny timing. 513 00:23:25,877 --> 00:23:28,110 I mean, hundreds of thousands of people are now 514 00:23:28,110 --> 00:23:32,100 getting used to online education for unfortunate reasons, 515 00:23:32,100 --> 00:23:34,710 but I do think this will start to change minds, too, at just 516 00:23:34,710 --> 00:23:39,750 how well or not well certain aspects of online education can work. 517 00:23:39,750 --> 00:23:45,130 Can we go next to Omarion, if I'm pronouncing it right? 518 00:23:45,130 --> 00:23:46,530 AUDIENCE: Hey, thanks. 519 00:23:46,530 --> 00:23:47,873 Yeah, my name's actually Omar. 520 00:23:47,873 --> 00:23:48,540 That's just my-- 521 00:23:48,540 --> 00:23:49,582 DAVID MALAN: [INAUDIBLE]. 522 00:23:49,582 --> 00:23:50,740 And where are you from? 523 00:23:50,740 --> 00:23:52,040 AUDIENCE: I'm from Toronto. 524 00:23:52,040 --> 00:23:53,046 DAVID MALAN: OK. 525 00:23:53,046 --> 00:23:53,665 [INAUDIBLE] 526 00:23:53,665 --> 00:23:55,540 AUDIENCE: So I just wanted to start by saying 527 00:23:55,540 --> 00:23:56,998 thank you so much for your program. 528 00:23:56,998 --> 00:23:59,300 I've actually done CS50, and I did the Princeton course 529 00:23:59,300 --> 00:24:00,430 that you mentioned as well. 530 00:24:00,430 --> 00:24:02,410 I work as a recruiter at a tech company here 531 00:24:02,410 --> 00:24:05,470 and I feel like having done these courses has really changed 532 00:24:05,470 --> 00:24:07,010 the relationship I have with my job. 533 00:24:07,010 --> 00:24:09,700 So thank you so much. 534 00:24:09,700 --> 00:24:16,210 My question is kind of around computer science education in general. 535 00:24:16,210 --> 00:24:19,420 So in today's world I feel like it's-- 536 00:24:19,420 --> 00:24:21,337 I personally think given the way we're moving, 537 00:24:21,337 --> 00:24:23,212 and especially now looking at what's happened 538 00:24:23,212 --> 00:24:26,620 to coronavirus, people working online, everything is all internet focused. 539 00:24:26,620 --> 00:24:30,087 I think it's really important for people to understand the basics of maybe 540 00:24:30,087 --> 00:24:32,170 computer science, or at least how these things are 541 00:24:32,170 --> 00:24:36,790 built because a lot of what people do deals with these kinds of concepts. 542 00:24:36,790 --> 00:24:39,383 My girlfriend for example is a lawyer and she actually 543 00:24:39,383 --> 00:24:41,300 works for tech companies and things like that. 544 00:24:41,300 --> 00:24:44,650 And I think for her to understand these kinds of things would be very useful. 545 00:24:44,650 --> 00:24:46,400 At the same time though, I feel like there 546 00:24:46,400 --> 00:24:49,848 is such an abstraction of some of these things at a certain level, where people 547 00:24:49,848 --> 00:24:51,390 don't necessarily have to touch code. 548 00:24:51,390 --> 00:24:54,340 They can use a GUI or something to do various operations. 549 00:24:54,340 --> 00:24:59,643 And so you've almost got this separation of a group of experts that do the stuff 550 00:24:59,643 --> 00:25:02,560 and then a bunch of people that don't necessarily understand the stuff 551 00:25:02,560 --> 00:25:03,820 but just use the stuff. 552 00:25:03,820 --> 00:25:07,340 And I'm trying to understand maybe your opinion on-- 553 00:25:07,340 --> 00:25:09,090 and maybe there's no right answer to this. 554 00:25:09,090 --> 00:25:13,090 But do you think that we're moving more towards a world where 555 00:25:13,090 --> 00:25:15,772 you do have these experts in machine learning, and AI, and NLP, 556 00:25:15,772 --> 00:25:18,730 and stuff like that, that are building the stuff, that understand maybe 557 00:25:18,730 --> 00:25:22,690 the minutia of what actually builds the systems that we use, 558 00:25:22,690 --> 00:25:26,080 and then catering to a group of the larger group that doesn't necessarily 559 00:25:26,080 --> 00:25:26,950 understand? 560 00:25:26,950 --> 00:25:29,372 Or are we moving now more towards a world 561 00:25:29,372 --> 00:25:31,330 where people are really interested in the stuff 562 00:25:31,330 --> 00:25:34,420 and I think they want to get more involved in it and-- 563 00:25:34,420 --> 00:25:35,385 I don't know. 564 00:25:35,385 --> 00:25:37,510 It's maybe not even just a question, just something 565 00:25:37,510 --> 00:25:38,642 I wanted to put out there. 566 00:25:38,642 --> 00:25:40,600 DAVID MALAN: Yeah, it's a really good question. 567 00:25:40,600 --> 00:25:42,670 And let me turn to Brian too in a moment, who 568 00:25:42,670 --> 00:25:46,465 focuses on security for instance in the web programming class especially. 569 00:25:46,465 --> 00:25:49,990 570 00:25:49,990 --> 00:25:54,540 So I'm reminded of Tony's question which kicked us off about secret keys 571 00:25:54,540 --> 00:25:55,440 and live streaming. 572 00:25:55,440 --> 00:25:59,193 I think what's valuable about certain courses in technology and computer 573 00:25:59,193 --> 00:26:01,110 science is that they give you certain building 574 00:26:01,110 --> 00:26:03,930 blocks from which you can reason deductively 575 00:26:03,930 --> 00:26:05,190 as to how other systems work. 576 00:26:05,190 --> 00:26:07,440 I don't think it's necessary for everyone in the world 577 00:26:07,440 --> 00:26:10,440 to take an artificial intelligence class, or machine learning, 578 00:26:10,440 --> 00:26:12,540 or even a programming class per se. 579 00:26:12,540 --> 00:26:16,440 But just any class that's really about computational thinking and logic 580 00:26:16,440 --> 00:26:19,440 because I think once you start to clean up your thought 581 00:26:19,440 --> 00:26:21,930 processes and you start to think a little more methodically 582 00:26:21,930 --> 00:26:25,140 in terms of ifs, and elses, and so forth, then you 583 00:26:25,140 --> 00:26:29,850 can take some information as input and produce from that 584 00:26:29,850 --> 00:26:32,860 some conclusion that you can make better decisions based on. 585 00:26:32,860 --> 00:26:35,460 And this is so true in the worlds of security. 586 00:26:35,460 --> 00:26:38,820 I mean, all of us right now have our cameras on pointing at ourselves. 587 00:26:38,820 --> 00:26:42,270 Who's to say when this session ends in half an hour 588 00:26:42,270 --> 00:26:45,433 so that those cameras aren't still watching? 589 00:26:45,433 --> 00:26:47,850 Who's to say our phones haven't been sending everything we 590 00:26:47,850 --> 00:26:51,430 say to Google or Apple for years now? 591 00:26:51,430 --> 00:26:52,290 And those are risks. 592 00:26:52,290 --> 00:26:55,510 But I think among the topics we try to get students to think about in CS50, 593 00:26:55,510 --> 00:26:57,630 and in the business class, and in the web class, 594 00:26:57,630 --> 00:27:02,010 is to recognize that yes everything I just said is possible, 595 00:27:02,010 --> 00:27:06,480 but then to sort of evaluate the risk for themselves. 596 00:27:06,480 --> 00:27:10,740 So I know for sure Apple could be listening in on everything I say. 597 00:27:10,740 --> 00:27:12,210 Are they likely doing so? 598 00:27:12,210 --> 00:27:14,700 Probably not, but at least make an informed decision 599 00:27:14,700 --> 00:27:17,430 as opposed to naively buying the latest and greatest technology 600 00:27:17,430 --> 00:27:21,360 and then being surprised and caught off guard when your privacy, for instance, 601 00:27:21,360 --> 00:27:22,013 is compromised. 602 00:27:22,013 --> 00:27:24,930 And Brian, do you want to address how you think about this, especially 603 00:27:24,930 --> 00:27:27,210 in the context of software? 604 00:27:27,210 --> 00:27:28,240 BRIAN: Yeah, of course. 605 00:27:28,240 --> 00:27:30,510 So I agree with a lot of what David was just 606 00:27:30,510 --> 00:27:33,570 saying about how a little bit of computer science, 607 00:27:33,570 --> 00:27:36,180 even if it's not about programming, gives you the building 608 00:27:36,180 --> 00:27:39,210 blocks to understand a lot of the technology around us. 609 00:27:39,210 --> 00:27:41,730 And I think that in part the wide availability 610 00:27:41,730 --> 00:27:43,860 of some of the courses that we've talked about 611 00:27:43,860 --> 00:27:46,863 has helped in order to bring more exposure, 612 00:27:46,863 --> 00:27:48,780 or bring to light, some more of this knowledge 613 00:27:48,780 --> 00:27:50,970 even to people that aren't computer scientists. 614 00:27:50,970 --> 00:27:52,540 But it is definitely not widespread. 615 00:27:52,540 --> 00:27:54,810 I think if you look around in the news there are so 616 00:27:54,810 --> 00:27:58,890 many stories about lawmakers who seem to be disconnected 617 00:27:58,890 --> 00:28:04,110 in some way from technology and that they might be creating policy or trying 618 00:28:04,110 --> 00:28:09,120 to draft laws that might not be consistent with a real understanding 619 00:28:09,120 --> 00:28:10,980 of security and technology. 620 00:28:10,980 --> 00:28:13,470 You see this a lot with lawmakers that are 621 00:28:13,470 --> 00:28:17,160 trying to make laws that are about security, like trying to-- 622 00:28:17,160 --> 00:28:20,010 there's been a long ongoing tension between the federal government 623 00:28:20,010 --> 00:28:23,680 and Apple, for example, about whether Apple should be creating backdoors 624 00:28:23,680 --> 00:28:28,310 into all the iPhones that the federal government's able to get into. 625 00:28:28,310 --> 00:28:33,420 And there is this idea that even if you create a backdoor 626 00:28:33,420 --> 00:28:36,660 that the government can get into, that this creates security vulnerabilities 627 00:28:36,660 --> 00:28:37,180 elsewhere. 628 00:28:37,180 --> 00:28:41,010 Having a real understanding of how it is that this cryptographic process works, 629 00:28:41,010 --> 00:28:45,270 how it is that information is actually encrypted and then decrypted, 630 00:28:45,270 --> 00:28:49,260 can give you a better understanding for the implications of technology 631 00:28:49,260 --> 00:28:52,350 when you might not recognize those implications without having 632 00:28:52,350 --> 00:28:53,970 some of those building blocks. 633 00:28:53,970 --> 00:28:55,910 So I do think there's a lot of value in having 634 00:28:55,910 --> 00:28:57,660 an understanding of those building blocks. 635 00:28:57,660 --> 00:28:59,790 And I would hope that the world is slowly 636 00:28:59,790 --> 00:29:03,540 starting to become more educated about these matters, even outside of just 637 00:29:03,540 --> 00:29:05,493 the world of computer scientists. 638 00:29:05,493 --> 00:29:06,660 AUDIENCE: I appreciate that. 639 00:29:06,660 --> 00:29:07,390 Thank you. 640 00:29:07,390 --> 00:29:08,070 DAVID MALAN: Brian said it well. 641 00:29:08,070 --> 00:29:09,990 And if some of you might have tuned in some months 642 00:29:09,990 --> 00:29:11,770 ago to when Mark Zuckerberg, for instance, 643 00:29:11,770 --> 00:29:14,310 was testifying in the United States to Congress-- 644 00:29:14,310 --> 00:29:17,160 I mean, not only was it quite frightening what 645 00:29:17,160 --> 00:29:19,470 Facebook had been doing at the time but also 646 00:29:19,470 --> 00:29:24,990 frightening how ill informed so many of the politicians who were interviewing 647 00:29:24,990 --> 00:29:29,250 Mark and just had no idea of how tools like Facebook or online advertising 648 00:29:29,250 --> 00:29:30,490 even work. 649 00:29:30,490 --> 00:29:32,940 It's, I think, incredibly important for folks 650 00:29:32,940 --> 00:29:35,340 just to have this modicum of understanding of technology 651 00:29:35,340 --> 00:29:38,520 and of reason so that if they are ultimately the decision 652 00:29:38,520 --> 00:29:42,630 makers, whether it's in business, or law, or politics, or any other domain, 653 00:29:42,630 --> 00:29:44,262 that they're making better decisions. 654 00:29:44,262 --> 00:29:47,220 And you see this unfortunately even now with all of the health concerns 655 00:29:47,220 --> 00:29:50,280 going around the world, people not appreciating statistics, 656 00:29:50,280 --> 00:29:55,410 and data, and models, that students of any number of STEM fields 657 00:29:55,410 --> 00:29:57,450 would derive an appreciation for. 658 00:29:57,450 --> 00:30:02,200 So we make better decisions, I think, when we understand fundamentals. 659 00:30:02,200 --> 00:30:03,460 Thank you for your question. 660 00:30:03,460 --> 00:30:04,612 Saket, ready? 661 00:30:04,612 --> 00:30:05,320 Can we go to you? 662 00:30:05,320 --> 00:30:12,770 663 00:30:12,770 --> 00:30:13,850 Still muted. 664 00:30:13,850 --> 00:30:16,380 Click unmute in the bottom left corner? 665 00:30:16,380 --> 00:30:17,770 AUDIENCE: Hi. 666 00:30:17,770 --> 00:30:19,520 DAVID MALAN: Yes, there we go. 667 00:30:19,520 --> 00:30:20,930 AUDIENCE: [INAUDIBLE]. 668 00:30:20,930 --> 00:30:21,890 Can you hear me? 669 00:30:21,890 --> 00:30:23,390 DAVID MALAN: Yes. 670 00:30:23,390 --> 00:30:24,927 Yeah. 671 00:30:24,927 --> 00:30:25,760 AUDIENCE: I'm Saket. 672 00:30:25,760 --> 00:30:27,320 I'm located in India. 673 00:30:27,320 --> 00:30:30,470 I graduated in 2018, I did my bachelor's. 674 00:30:30,470 --> 00:30:34,400 And in 2020 August I'm going to pursue my master's degree. 675 00:30:34,400 --> 00:30:38,150 So there has been a two year break for me 676 00:30:38,150 --> 00:30:40,750 in terms of the computer science background. 677 00:30:40,750 --> 00:30:43,430 I've been working [INAUDIBLE] industry. 678 00:30:43,430 --> 00:30:47,110 So I want to brush up my concepts so now before I 679 00:30:47,110 --> 00:30:49,500 am going to my masters degree for CS. 680 00:30:49,500 --> 00:30:52,280 I want to start-- 681 00:30:52,280 --> 00:30:56,400 what are the courses that I need to start up and base up myself 682 00:30:56,400 --> 00:30:58,735 for the [INAUDIBLE]? 683 00:30:58,735 --> 00:30:59,860 DAVID MALAN: Good question. 684 00:30:59,860 --> 00:31:02,912 Brian, do you want to take that? 685 00:31:02,912 --> 00:31:05,620 BRIAN: Sorry, you were asking about what courses you should take? 686 00:31:05,620 --> 00:31:07,720 I didn't quite catch the end of the question. 687 00:31:07,720 --> 00:31:08,303 AUDIENCE: Yes. 688 00:31:08,303 --> 00:31:11,260 There has been a one a half year break for me with respect 689 00:31:11,260 --> 00:31:14,140 to computer science for my master's degree. 690 00:31:14,140 --> 00:31:17,350 So I'm going to pursue my master's in August. 691 00:31:17,350 --> 00:31:22,180 So what do you suggest in terms of the courses and the timeline of, 692 00:31:22,180 --> 00:31:24,344 what do I study about? 693 00:31:24,344 --> 00:31:25,045 BRIAN: Yeah. 694 00:31:25,045 --> 00:31:26,920 So I mean, if it's been a year and a half one 695 00:31:26,920 --> 00:31:30,580 thing I might start by doing is just brushing up on any material 696 00:31:30,580 --> 00:31:32,860 that you did learn a year and a half prior, 697 00:31:32,860 --> 00:31:35,680 because likely those will be the fundamentals 698 00:31:35,680 --> 00:31:38,800 of the basis for your future work in the program 699 00:31:38,800 --> 00:31:40,420 that you're beginning in August. 700 00:31:40,420 --> 00:31:42,490 And so I often find that taking some time, 701 00:31:42,490 --> 00:31:47,140 going back and reviewing prior notes, some prior videos if you have them 702 00:31:47,140 --> 00:31:49,690 from prior classes, is just a helpful refresher in case 703 00:31:49,690 --> 00:31:51,925 you're going to need that material in the future. 704 00:31:51,925 --> 00:31:54,550 And then beyond that I think it's going to depend in large part 705 00:31:54,550 --> 00:31:58,090 about what your master's program is focused on, and what type of research 706 00:31:58,090 --> 00:31:59,530 that you're going to be doing. 707 00:31:59,530 --> 00:32:01,810 Computer science is a fairly broad field. 708 00:32:01,810 --> 00:32:04,540 And so research is happening in the world of cryptography 709 00:32:04,540 --> 00:32:06,460 as we've talked about, but also happening 710 00:32:06,460 --> 00:32:08,420 in the world of artificial intelligence, it's 711 00:32:08,420 --> 00:32:10,170 happening in the world of networking, it's 712 00:32:10,170 --> 00:32:12,130 happening in the world of algorithm design. 713 00:32:12,130 --> 00:32:14,080 So all sorts of these very different domains 714 00:32:14,080 --> 00:32:18,100 that might lend itself towards different skills and different tools 715 00:32:18,100 --> 00:32:20,570 that you might need in order to be successful there. 716 00:32:20,570 --> 00:32:23,868 So I would start by thinking about what type of research and what type of work 717 00:32:23,868 --> 00:32:24,910 you're going to be doing. 718 00:32:24,910 --> 00:32:28,060 And that would help me, at least, to inform the types of topics 719 00:32:28,060 --> 00:32:31,072 that I would focus on in the upcoming months. 720 00:32:31,072 --> 00:32:32,030 DAVID MALAN: All right. 721 00:32:32,030 --> 00:32:33,197 Thank you for that question. 722 00:32:33,197 --> 00:32:34,760 Can we go next to Tommaso Padula? 723 00:32:34,760 --> 00:32:37,650 724 00:32:37,650 --> 00:32:41,880 AUDIENCE: [INAUDIBLE] question really simple and [INAUDIBLE] to learn. 725 00:32:41,880 --> 00:32:49,860 According to you, CS56, it's better to learn 726 00:32:49,860 --> 00:32:53,740 in a small period of time, three or four months, achieving 70%, 727 00:32:53,740 --> 00:33:02,510 80% of a problem set completed, or taking a longer time and doing 100%? 728 00:33:02,510 --> 00:33:03,862 Just that. 729 00:33:03,862 --> 00:33:05,570 DAVID MALAN: It's a really good question. 730 00:33:05,570 --> 00:33:07,137 And where are you from, Tommaso? 731 00:33:07,137 --> 00:33:08,720 AUDIENCE: I'm from Italy, [INAUDIBLE]. 732 00:33:08,720 --> 00:33:11,690 In science I'm studying and I'm trying to frame it. 733 00:33:11,690 --> 00:33:17,450 It is better to finish the first [INAUDIBLE] so I believe 85. 734 00:33:17,450 --> 00:33:22,500 [INAUDIBLE] to review, to do 100%, and then go, 735 00:33:22,500 --> 00:33:25,747 I'm going to finish, at the least at the minimum we can say. 736 00:33:25,747 --> 00:33:26,580 DAVID MALAN: Gotcha. 737 00:33:26,580 --> 00:33:30,710 Well I hope you and your family, in Italy especially, are doing OK lately. 738 00:33:30,710 --> 00:33:31,543 AUDIENCE: Thank you. 739 00:33:31,543 --> 00:33:32,960 DAVID MALAN: It's a hard question. 740 00:33:32,960 --> 00:33:35,005 I think it really depends on the student and what 741 00:33:35,005 --> 00:33:36,380 you want to get out of the class. 742 00:33:36,380 --> 00:33:41,810 We have many, many, many more students who do parts of CS50 then 743 00:33:41,810 --> 00:33:44,060 who do all of CS50. 744 00:33:44,060 --> 00:33:47,210 And I think that's partly because some people only have so much time. 745 00:33:47,210 --> 00:33:49,730 But I think it's also because some people only 746 00:33:49,730 --> 00:33:51,893 want to get certain aspects out of it. 747 00:33:51,893 --> 00:33:54,560 For instance, some students are interested in the C programming. 748 00:33:54,560 --> 00:33:57,980 Some students are interested in the web programming later on. 749 00:33:57,980 --> 00:34:04,280 I think that if you are looking to take future courses in computer science 750 00:34:04,280 --> 00:34:08,449 and programming, I think taking more time and finishing the whole course 751 00:34:08,449 --> 00:34:10,310 will probably better prepare you. 752 00:34:10,310 --> 00:34:12,550 If you are interested-- 753 00:34:12,550 --> 00:34:14,550 AUDIENCE: This is a slightly different question. 754 00:34:14,550 --> 00:34:17,179 To finish the course is the main goal. 755 00:34:17,179 --> 00:34:18,980 I will do that I hope. 756 00:34:18,980 --> 00:34:23,892 But about if I take 85% in the problem set one, it's better to-- 757 00:34:23,892 --> 00:34:24,850 DAVID MALAN: Oh, I see. 758 00:34:24,850 --> 00:34:25,969 AUDIENCE: OK. 759 00:34:25,969 --> 00:34:28,550 DAVID MALAN: I think the best answer is, the best approach is 760 00:34:28,550 --> 00:34:31,130 to get 100% in three or four months. 761 00:34:31,130 --> 00:34:34,050 762 00:34:34,050 --> 00:34:39,120 So we officially say that if you get a 70% or higher on all of the problem 763 00:34:39,120 --> 00:34:43,070 sets, that is quote unquote satisfactory and you have successfully 764 00:34:43,070 --> 00:34:44,360 completed the class. 765 00:34:44,360 --> 00:34:48,650 I think it's better if you can push yourself to do even better than that 766 00:34:48,650 --> 00:34:50,960 even if it takes more time. 767 00:34:50,960 --> 00:34:55,100 I think it's very, very reasonable to take six months, 768 00:34:55,100 --> 00:34:57,950 maybe a bit more to take the class, maybe a full year. 769 00:34:57,950 --> 00:35:01,242 But to take more than a year I think you should consider what it is you 770 00:35:01,242 --> 00:35:02,450 want to get out of the class. 771 00:35:02,450 --> 00:35:07,220 And I wouldn't just try to get 100% and just do everything 772 00:35:07,220 --> 00:35:08,840 just because you think you should. 773 00:35:08,840 --> 00:35:12,967 I would decide based on where your interest is starting to waiver. 774 00:35:12,967 --> 00:35:13,800 AUDIENCE: Thank you. 775 00:35:13,800 --> 00:35:17,910 BRIAN: The other thing I'll add is that any time you get less than 100% 776 00:35:17,910 --> 00:35:20,820 on any problem, we do our best to try and provide feedback 777 00:35:20,820 --> 00:35:25,220 to you, provided in an automated sense, through some of our web based tools. 778 00:35:25,220 --> 00:35:29,610 And so anytime you submit you should get a little URL that appears in the IDE 779 00:35:29,610 --> 00:35:33,090 where if you click on that link, you'll be able to see feedback on which parts 780 00:35:33,090 --> 00:35:36,257 of your program worked and which parts might have some room for improvement. 781 00:35:36,257 --> 00:35:37,980 And hopefully that can be a good learning 782 00:35:37,980 --> 00:35:41,640 and a lesson in terms of where to place your focus if you 783 00:35:41,640 --> 00:35:45,030 want to go back and iterate on the work that you have done in order to then 784 00:35:45,030 --> 00:35:48,180 potentially submit that problem again. 785 00:35:48,180 --> 00:35:52,730 DAVID MALAN: Can we go next to Omar [INAUDIBLE]?? 786 00:35:52,730 --> 00:35:58,330 AUDIENCE: So I'm 15 and I'm taking the course at the moment. 787 00:35:58,330 --> 00:36:04,690 And supposedly I make it into Harvard, like when I graduate. 788 00:36:04,690 --> 00:36:08,080 If I finish the course, does that count? 789 00:36:08,080 --> 00:36:12,525 Do I have to retake it or does it count as if I took it before? 790 00:36:12,525 --> 00:36:13,900 DAVID MALAN: So neither, in fact. 791 00:36:13,900 --> 00:36:19,180 At Harvard at least, if you have taken a class like CS50X online successfully, 792 00:36:19,180 --> 00:36:21,310 you don't get credit per se but you don't 793 00:36:21,310 --> 00:36:23,770 have to take it once you get to campus. 794 00:36:23,770 --> 00:36:28,540 Instead Harvard has other introductory courses, three in particular, 795 00:36:28,540 --> 00:36:31,040 and you have to take any two out of those. 796 00:36:31,040 --> 00:36:33,730 So in your situation if you were to attend Harvard, 797 00:36:33,730 --> 00:36:36,280 you would take the two other introductory courses. 798 00:36:36,280 --> 00:36:40,300 One is on what's called systems programming, which is lower level C 799 00:36:40,300 --> 00:36:42,140 code and assembly code. 800 00:36:42,140 --> 00:36:44,410 The other is on what's called functional programming 801 00:36:44,410 --> 00:36:45,970 and object oriented programming. 802 00:36:45,970 --> 00:36:48,920 You would take those two courses instead of CS50. 803 00:36:48,920 --> 00:36:52,240 But you don't graduate earlier because you've taken the course already, 804 00:36:52,240 --> 00:36:53,850 for instance. 805 00:36:53,850 --> 00:36:54,810 Good question. 806 00:36:54,810 --> 00:36:56,928 Can we go next to the Slav? 807 00:36:56,928 --> 00:36:57,470 AUDIENCE: Hi. 808 00:36:57,470 --> 00:36:59,928 DAVID MALAN: If you'd like to tell us where you're from to? 809 00:36:59,928 --> 00:37:03,000 AUDIENCE: Well, I'm originally from Russia but I live in Miami, Florida. 810 00:37:03,000 --> 00:37:03,430 DAVID MALAN: OK. 811 00:37:03,430 --> 00:37:04,420 Two from Miami so far. 812 00:37:04,420 --> 00:37:06,070 AUDIENCE: Yeah. 813 00:37:06,070 --> 00:37:09,060 So first of all, I want to say thank you to Brian. 814 00:37:09,060 --> 00:37:10,870 I take the CS [INAUDIBLE]. 815 00:37:10,870 --> 00:37:14,850 816 00:37:14,850 --> 00:37:19,930 And my question is actually related to the homework 817 00:37:19,930 --> 00:37:22,080 I'm told that we had earlier. 818 00:37:22,080 --> 00:37:28,890 [INAUDIBLE] I submitted two projects so far and both got 100%. 819 00:37:28,890 --> 00:37:30,780 But there is no feedback on 100%. 820 00:37:30,780 --> 00:37:34,080 So I'm wondering if it's really that good 821 00:37:34,080 --> 00:37:38,060 or if there is some feedback can be provided. 822 00:37:38,060 --> 00:37:39,690 BRIAN: Yeah. 823 00:37:39,690 --> 00:37:41,150 I'm glad you're enjoying the class. 824 00:37:41,150 --> 00:37:43,080 The projects for the web programming class 825 00:37:43,080 --> 00:37:45,870 and several of the follow on classes after CS50 826 00:37:45,870 --> 00:37:47,600 are graded on a pass/fail basis. 827 00:37:47,600 --> 00:37:52,080 So one of our staff reviews your submission, looks at your video, 828 00:37:52,080 --> 00:37:54,870 and then just evaluates it on a pass/fail basis. 829 00:37:54,870 --> 00:37:58,257 If you're looking for some more detailed feedback and certainly other people 830 00:37:58,257 --> 00:38:00,090 to take a look at your code, there are a lot 831 00:38:00,090 --> 00:38:03,690 of CS50 communities that have grown now across a variety 832 00:38:03,690 --> 00:38:07,110 of different social media platforms that you can look to in order to get 833 00:38:07,110 --> 00:38:08,940 some additional feedback on your code. 834 00:38:08,940 --> 00:38:13,140 I know there's a pretty active channel on the CS50 Discord, which 835 00:38:13,140 --> 00:38:15,960 you can join in order to post a little bit of your code 836 00:38:15,960 --> 00:38:18,930 in order to get feedback from other students, from other staff, 837 00:38:18,930 --> 00:38:20,440 about the work that you've done. 838 00:38:20,440 --> 00:38:23,460 So certainly that can be a nice way for code review, 839 00:38:23,460 --> 00:38:27,422 to get people to give feedback on your work as well. 840 00:38:27,422 --> 00:38:28,510 DAVID MALAN: Wonderful. 841 00:38:28,510 --> 00:38:31,996 Can we go next to-- 842 00:38:31,996 --> 00:38:34,540 [INAUDIBLE] some hands here-- 843 00:38:34,540 --> 00:38:36,773 Johanna Sabi? 844 00:38:36,773 --> 00:38:37,690 AUDIENCE: [INAUDIBLE]. 845 00:38:37,690 --> 00:38:38,700 Yes, it's correct. 846 00:38:38,700 --> 00:38:40,640 Johanna [INAUDIBLE] as Johanna. 847 00:38:40,640 --> 00:38:43,420 I'm from Egypt. 848 00:38:43,420 --> 00:38:47,370 Kindly, I'm doing development since five or six years. 849 00:38:47,370 --> 00:38:49,160 I'm graduated from computer science. 850 00:38:49,160 --> 00:38:55,060 I have a big problem through my career, and even when I started CS50. 851 00:38:55,060 --> 00:38:59,800 The problem is that I don't know at which level should I dig and deepen 852 00:38:59,800 --> 00:39:05,080 the information on that trail that I study. 853 00:39:05,080 --> 00:39:09,860 For example, when we started [INAUDIBLE] CS50 854 00:39:09,860 --> 00:39:12,580 I didn't know to which [INAUDIBLE] I have 855 00:39:12,580 --> 00:39:17,860 to open a tutorial [INAUDIBLE] tutorials learning more and more about big O, 856 00:39:17,860 --> 00:39:21,360 and then to solve some problems upon this. 857 00:39:21,360 --> 00:39:24,250 Or just I need to respect this global discourse 858 00:39:24,250 --> 00:39:28,210 and later on I can dig and deepen the information. 859 00:39:28,210 --> 00:39:34,450 I'm asking this question because in past I have tested or went through these two 860 00:39:34,450 --> 00:39:35,140 scenarios. 861 00:39:35,140 --> 00:39:38,360 I went through that I need to dig and deepen any information 862 00:39:38,360 --> 00:39:41,260 and the result is that I have finished courses or one months 863 00:39:41,260 --> 00:39:46,840 or two months just in one year because of much dig and deep. 864 00:39:46,840 --> 00:39:50,620 On the other hand one, when I start adjusting the parts of a course 865 00:39:50,620 --> 00:39:55,570 I feel that I miss many important subject. 866 00:39:55,570 --> 00:40:00,040 This is my question and thanks a lot for the tutorials that you've presented. 867 00:40:00,040 --> 00:40:01,000 DAVID MALAN: Of course. 868 00:40:01,000 --> 00:40:04,720 If I understand it correctly when learning a topic like big O notation, 869 00:40:04,720 --> 00:40:07,270 if you'd like to understand it better or learn more, 870 00:40:07,270 --> 00:40:10,960 for CS50 you can absolutely go and read other resources, 871 00:40:10,960 --> 00:40:14,740 you can google for other references, take another class. 872 00:40:14,740 --> 00:40:15,930 That is certainly OK. 873 00:40:15,930 --> 00:40:20,290 When we discuss in the class academic honesty what would not be appropriate 874 00:40:20,290 --> 00:40:23,830 is if what you're googling is literally the answer to a question 875 00:40:23,830 --> 00:40:27,190 that we've asked within the course, literally googling for code 876 00:40:27,190 --> 00:40:29,200 that's the solution to some problem. 877 00:40:29,200 --> 00:40:32,440 But absolutely you are welcome and encouraged to consult 878 00:40:32,440 --> 00:40:36,910 other references, Google, Stack Overflow, classmates, anytime you 879 00:40:36,910 --> 00:40:38,920 would like to learn some topic better. 880 00:40:38,920 --> 00:40:41,410 We do not claim to be teaching it in the best way. 881 00:40:41,410 --> 00:40:45,880 AUDIENCE: I think to this question, my original question is to which level 882 00:40:45,880 --> 00:40:49,840 should I dig and deepen any information of the course or any online course. 883 00:40:49,840 --> 00:40:52,290 I mean, there are many topics on the same course. 884 00:40:52,290 --> 00:40:57,280 Should I dig and deepen each topic of this course 885 00:40:57,280 --> 00:41:01,420 so that it takes much time for finishing just a code? 886 00:41:01,420 --> 00:41:04,090 So this is a reasonable question if you got this. 887 00:41:04,090 --> 00:41:04,840 DAVID MALAN: Yeah. 888 00:41:04,840 --> 00:41:06,440 It's a good question. 889 00:41:06,440 --> 00:41:08,390 I think it really depends on your interests. 890 00:41:08,390 --> 00:41:11,740 If you want to go down those rabbit holes, so to speak, and better 891 00:41:11,740 --> 00:41:14,270 understand the material, yes you should do that. 892 00:41:14,270 --> 00:41:17,650 But I'm not sure I would do that if it's going to take you four times as long 893 00:41:17,650 --> 00:41:18,910 to complete the class. 894 00:41:18,910 --> 00:41:23,977 Maybe twice as long is reasonable but I think there's probably a balance there. 895 00:41:23,977 --> 00:41:26,560 And in fact, the best way to think about it might be this way. 896 00:41:26,560 --> 00:41:30,280 Personally when I'm teaching a class, especially for the first time, 897 00:41:30,280 --> 00:41:31,900 I find myself doing what you're doing. 898 00:41:31,900 --> 00:41:34,300 I might take the class that I need to now teach, 899 00:41:34,300 --> 00:41:37,780 or I might watch previous videos or do previous homeworks, 900 00:41:37,780 --> 00:41:40,480 but I try to approach the class like I know 901 00:41:40,480 --> 00:41:43,630 I'm going to be a teacher, or a teaching assistant, or a teaching fellow 902 00:41:43,630 --> 00:41:46,510 as we call them, because I try to think if I'm 903 00:41:46,510 --> 00:41:51,370 about to teach this material to someone else what questions might they ask me? 904 00:41:51,370 --> 00:41:55,780 And I do start to google and I do start to learn more about some topics so 905 00:41:55,780 --> 00:41:58,330 that I'm not caught off guard, so that I'm not embarrassed 906 00:41:58,330 --> 00:42:00,260 because I don't really know something. 907 00:42:00,260 --> 00:42:02,920 So I think it's healthy to try to google and read 908 00:42:02,920 --> 00:42:06,520 other references when you want to understand the why and not just the 909 00:42:06,520 --> 00:42:07,120 what. 910 00:42:07,120 --> 00:42:09,280 But use your rule of thumb may be a saying. 911 00:42:09,280 --> 00:42:13,060 I want to understand it well enough so that I can explain it or teach it 912 00:42:13,060 --> 00:42:14,240 to someone else. 913 00:42:14,240 --> 00:42:18,620 And that's good enough for version one. 914 00:42:18,620 --> 00:42:20,640 Can we go next to Hassan Roman? 915 00:42:20,640 --> 00:42:25,730 916 00:42:25,730 --> 00:42:26,230 Hassan? 917 00:42:26,230 --> 00:42:28,978 918 00:42:28,978 --> 00:42:29,900 AUDIENCE: Hey? 919 00:42:29,900 --> 00:42:30,608 DAVID MALAN: Yes. 920 00:42:30,608 --> 00:42:32,780 921 00:42:32,780 --> 00:42:33,950 We can hear you. 922 00:42:33,950 --> 00:42:35,160 Yes, we can hear you. 923 00:42:35,160 --> 00:42:36,380 AUDIENCE: OK. 924 00:42:36,380 --> 00:42:42,470 Now I'm taking CS50 Introduction to Computer Programming. 925 00:42:42,470 --> 00:42:47,650 After finishing it I intend to take the course about [INAUDIBLE] Web 926 00:42:47,650 --> 00:42:49,100 Programming. 927 00:42:49,100 --> 00:42:52,550 And I want to know what's next after the web. 928 00:42:52,550 --> 00:42:55,140 929 00:42:55,140 --> 00:42:56,140 DAVID MALAN: Quite fair. 930 00:42:56,140 --> 00:42:59,840 You froze on my screen, but Brian do you want to take that? 931 00:42:59,840 --> 00:43:00,590 BRIAN: Yeah, sure. 932 00:43:00,590 --> 00:43:02,690 So after that it really depends on what it 933 00:43:02,690 --> 00:43:04,630 is that you're interested in studying. 934 00:43:04,630 --> 00:43:09,680 So CS50-- David posted a link before but we can post it again, 935 00:43:09,680 --> 00:43:14,630 in terms of all of the courses that CS50 offers that you can take after CS50. 936 00:43:14,630 --> 00:43:17,550 So in addition to the web programming class that I teach, 937 00:43:17,550 --> 00:43:20,960 there's also a class on game development if something 938 00:43:20,960 --> 00:43:24,290 of interest to you, [INAUDIBLE] and other CS50 stuff. 939 00:43:24,290 --> 00:43:28,280 And then coming in just a couple of days will be a brand new class 940 00:43:28,280 --> 00:43:29,720 on artificial intelligence. 941 00:43:29,720 --> 00:43:31,470 So if that's something of interest to you, 942 00:43:31,470 --> 00:43:34,220 diving into how machine learning works, and how it is 943 00:43:34,220 --> 00:43:36,250 that computers can become intelligent. 944 00:43:36,250 --> 00:43:38,000 We have a class in artificial intelligence 945 00:43:38,000 --> 00:43:39,960 that will be coming soon as well. 946 00:43:39,960 --> 00:43:44,010 So depending on your interests there are CS50 classes that are available to you, 947 00:43:44,010 --> 00:43:46,250 and then other classes that are available online too. 948 00:43:46,250 --> 00:43:48,710 A couple of people have mentioned Coursera in the chat, 949 00:43:48,710 --> 00:43:52,190 for MIT's OpenCourseWare that also have a lot of great course offerings 950 00:43:52,190 --> 00:43:53,722 there too. 951 00:43:53,722 --> 00:43:54,680 DAVID MALAN: Wonderful. 952 00:43:54,680 --> 00:43:57,513 Can we go next to Sarah, if you'd like to tell us where you're from? 953 00:43:57,513 --> 00:44:02,120 954 00:44:02,120 --> 00:44:04,250 AUDIENCE: Hello. 955 00:44:04,250 --> 00:44:06,200 I'm Sarah and I'm from Toronto. 956 00:44:06,200 --> 00:44:12,500 So I am attending university and cells and systems biology. 957 00:44:12,500 --> 00:44:15,320 958 00:44:15,320 --> 00:44:20,660 So in the third year towards the end of my studies I discovered-- 959 00:44:20,660 --> 00:44:28,910 I took this bioinformatics course and that introduced me to coding 960 00:44:28,910 --> 00:44:30,800 and computer science in general. 961 00:44:30,800 --> 00:44:36,080 And I kind of regretted even going to cells and systems biology 962 00:44:36,080 --> 00:44:38,990 when I discovered my passion for computer science. 963 00:44:38,990 --> 00:44:42,500 But it's kind of like, I don't know what to choose. 964 00:44:42,500 --> 00:44:45,410 So it's kind of, I want to have both at the same time. 965 00:44:45,410 --> 00:44:48,680 But I also thought of finishing this degree 966 00:44:48,680 --> 00:44:52,340 and even reapplying for another degree. 967 00:44:52,340 --> 00:44:58,100 But financially to be honest, I really cannot afford both degrees. 968 00:44:58,100 --> 00:45:02,120 So I tried looking up online and I read on how 969 00:45:02,120 --> 00:45:06,320 Google and so many other major companies have retracted 970 00:45:06,320 --> 00:45:11,900 their requirement for a CS degree. 971 00:45:11,900 --> 00:45:16,410 So right now I'm on my last year of studies, 972 00:45:16,410 --> 00:45:21,530 and I'm taking a grad level bioinformatics course. 973 00:45:21,530 --> 00:45:27,020 But the programming aspect of it is not as challenging 974 00:45:27,020 --> 00:45:30,440 that I was expecting it to be. 975 00:45:30,440 --> 00:45:34,190 I also took some CS courses that my university was offering. 976 00:45:34,190 --> 00:45:40,530 So I already have some basic in Python and other intro courses. 977 00:45:40,530 --> 00:45:49,760 So the text that is mentioned on CS50X is mostly on web development, games, 978 00:45:49,760 --> 00:45:52,100 iOS, Android, et cetera. 979 00:45:52,100 --> 00:46:01,400 So for someone like me that is in the health care and biology industry, 980 00:46:01,400 --> 00:46:07,280 I really want to know which other courses I can take and develop 981 00:46:07,280 --> 00:46:10,070 my knowledge based upon them. 982 00:46:10,070 --> 00:46:16,900 So if there is any advice on that I would really appreciate it. 983 00:46:16,900 --> 00:46:18,150 DAVID MALAN: Yeah, absolutely. 984 00:46:18,150 --> 00:46:21,860 I think that's a good problem to have, that you're so 985 00:46:21,860 --> 00:46:23,780 passionate about two different fields. 986 00:46:23,780 --> 00:46:25,550 I would recognize that first. 987 00:46:25,550 --> 00:46:29,840 I don't think you should worry as much about pursuing a computer science 988 00:46:29,840 --> 00:46:35,360 degree solely for the purpose of getting a job in the tech industry. 989 00:46:35,360 --> 00:46:37,220 There is certainly so much demand right now 990 00:46:37,220 --> 00:46:42,110 for technologists that simply having a strong technical background I 991 00:46:42,110 --> 00:46:44,660 do think will help open doors already. 992 00:46:44,660 --> 00:46:47,330 In terms of types of courses to take, I think 993 00:46:47,330 --> 00:46:51,170 a course like CS50 that's an introduction to procedural programming 994 00:46:51,170 --> 00:46:52,460 is compelling. 995 00:46:52,460 --> 00:46:58,220 Another course that's very popular out there is this one here from MIT 996 00:46:58,220 --> 00:47:01,250 called 6001, which you might find of interest 997 00:47:01,250 --> 00:47:03,530 as well which focuses on Python. 998 00:47:03,530 --> 00:47:08,630 The algorithms class that I mentioned earlier I think is a good way of-- 999 00:47:08,630 --> 00:47:09,800 and there's two parts to it. 1000 00:47:09,800 --> 00:47:13,190 Let me go ahead and paste both URLs, one and two. 1001 00:47:13,190 --> 00:47:16,280 I think it's a good way, especially for industry, 1002 00:47:16,280 --> 00:47:19,820 to get better and algorithms and data structures more generally. 1003 00:47:19,820 --> 00:47:22,790 And then I would also recommend a course on functional programming 1004 00:47:22,790 --> 00:47:27,080 specifically, which is a different type of programming than we teach in CS50. 1005 00:47:27,080 --> 00:47:29,400 And I think that will help round out your knowledge. 1006 00:47:29,400 --> 00:47:31,317 Brian, do you perhaps have any recommendations 1007 00:47:31,317 --> 00:47:33,460 along those lines or others? 1008 00:47:33,460 --> 00:47:33,960 BRIAN: Yeah. 1009 00:47:33,960 --> 00:47:36,640 I would agree with all of those recommendations. 1010 00:47:36,640 --> 00:47:38,850 In addition to that for biology specifically, 1011 00:47:38,850 --> 00:47:44,400 and for bioinformatics in particular, I think a course on data science 1012 00:47:44,400 --> 00:47:46,330 is going to be especially helpful. 1013 00:47:46,330 --> 00:47:50,400 A lot of what you'll do in data science are going to be tools that are related 1014 00:47:50,400 --> 00:47:54,060 to computer science but will specifically help with a lot of what 1015 00:47:54,060 --> 00:47:57,570 bioinformatics is all about, which is in large part about looking at a lot 1016 00:47:57,570 --> 00:47:58,860 of data, whether it's-- 1017 00:47:58,860 --> 00:47:59,450 AUDIENCE: A lot of genetics. 1018 00:47:59,450 --> 00:48:02,520 BRIAN: --evolutionary data or-- yeah, exactly, a lot of genetic data. 1019 00:48:02,520 --> 00:48:04,920 And to that extent I'd also suggest maybe a course 1020 00:48:04,920 --> 00:48:06,290 on artificial intelligence too. 1021 00:48:06,290 --> 00:48:07,720 That will help you think about a lot of the problems-- 1022 00:48:07,720 --> 00:48:10,490 AUDIENCE: I'm actually looking forward to the AI class that is coming up. 1023 00:48:10,490 --> 00:48:11,520 BRIAN: Oh, I'm glad. 1024 00:48:11,520 --> 00:48:12,030 You got it. 1025 00:48:12,030 --> 00:48:12,820 A lot of the problems-- 1026 00:48:12,820 --> 00:48:14,403 AUDIENCE: I'm really happy about that. 1027 00:48:14,403 --> 00:48:15,263 Thank you. 1028 00:48:15,263 --> 00:48:15,930 BRIAN: I'm glad. 1029 00:48:15,930 --> 00:48:17,888 A lot of the problems in bioinformatics, things 1030 00:48:17,888 --> 00:48:21,780 like when you're trying to do evolutionary biology analysis, 1031 00:48:21,780 --> 00:48:24,570 trying to look at how evolution has happened, that's often-- 1032 00:48:24,570 --> 00:48:24,810 AUDIENCE: [INAUDIBLE] 1033 00:48:24,810 --> 00:48:26,480 BRIAN: --done using machine learning techniques too. 1034 00:48:26,480 --> 00:48:27,240 Yeah, exactly. 1035 00:48:27,240 --> 00:48:30,210 So a lot of AI and machine learning can be applied 1036 00:48:30,210 --> 00:48:33,390 to biology and bioinformatics now too. 1037 00:48:33,390 --> 00:48:34,720 AUDIENCE: Thank you very much. 1038 00:48:34,720 --> 00:48:36,360 I really appreciate it. 1039 00:48:36,360 --> 00:48:37,080 DAVID MALAN: And I hope you'll forgive me. 1040 00:48:37,080 --> 00:48:38,205 We have a few minutes left. 1041 00:48:38,205 --> 00:48:41,580 And invariably we won't get to all questions but love to take a few more. 1042 00:48:41,580 --> 00:48:43,142 Can we go to User next? 1043 00:48:43,142 --> 00:48:45,600 And do you want to tell us your name and where you're from? 1044 00:48:45,600 --> 00:48:48,753 1045 00:48:48,753 --> 00:48:49,920 AUDIENCE: I think that's me. 1046 00:48:49,920 --> 00:48:52,190 I'm from Germany. 1047 00:48:52,190 --> 00:48:56,610 I'm from Augsburg, it's near Munich. 1048 00:48:56,610 --> 00:49:01,320 And I'm still a high school student. 1049 00:49:01,320 --> 00:49:09,390 Went to UCLA for summer and planning on studying abroad in the US 1050 00:49:09,390 --> 00:49:14,130 for this summer, hopefully if it works with all the coronavirus stuff going 1051 00:49:14,130 --> 00:49:15,720 on. 1052 00:49:15,720 --> 00:49:20,110 And I've also taken one of your courses-- 1053 00:49:20,110 --> 00:49:23,100 the first one, just CS50. 1054 00:49:23,100 --> 00:49:27,240 And I'm really looking forward to the course on artificial intelligence 1055 00:49:27,240 --> 00:49:33,180 and also glimpsed inside it at YouTube because you already 1056 00:49:33,180 --> 00:49:36,090 uploaded some videos on there. 1057 00:49:36,090 --> 00:49:41,520 So my question is regarding this course, actually 1058 00:49:41,520 --> 00:49:45,330 is it ever possible in the future to get credits for it, 1059 00:49:45,330 --> 00:49:48,790 like real college credits? 1060 00:49:48,790 --> 00:49:49,947 Or will it be? 1061 00:49:49,947 --> 00:49:53,030 DAVID MALAN: Brian, do you want to answer that from the Extension School's 1062 00:49:53,030 --> 00:49:54,420 perspective? 1063 00:49:54,420 --> 00:49:54,920 BRIAN: Yeah. 1064 00:49:54,920 --> 00:49:58,100 So ultimately, that's going to be up to the university as to whether to get 1065 00:49:58,100 --> 00:49:59,290 credit for something. 1066 00:49:59,290 --> 00:50:04,100 There are some universities that will allow you to cross register in a class 1067 00:50:04,100 --> 00:50:06,120 through Harvard's Extension School. 1068 00:50:06,120 --> 00:50:09,540 So Harvard Extension School is Harvard's Distance Learning Initiative. 1069 00:50:09,540 --> 00:50:12,470 And the students from other universities can sometimes 1070 00:50:12,470 --> 00:50:16,280 enroll in a class like our AI class through the Extension School 1071 00:50:16,280 --> 00:50:18,050 to get credit at your own university. 1072 00:50:18,050 --> 00:50:20,030 But you'll want to check with your university about that 1073 00:50:20,030 --> 00:50:22,655 because every university has slightly different rules about how 1074 00:50:22,655 --> 00:50:23,518 to make that work. 1075 00:50:23,518 --> 00:50:26,060 But even if you don't take it for credit all of that material 1076 00:50:26,060 --> 00:50:28,928 will be made available online. 1077 00:50:28,928 --> 00:50:29,595 AUDIENCE: Great. 1078 00:50:29,595 --> 00:50:35,420 And will there be also a deep learning course in the future? 1079 00:50:35,420 --> 00:50:36,830 BRIAN: No immediate plans. 1080 00:50:36,830 --> 00:50:39,230 In the tail part of the artificial intelligence class 1081 00:50:39,230 --> 00:50:41,720 we spent a couple of weeks on machine learning, 1082 00:50:41,720 --> 00:50:44,060 in particular looking at deep neural networks, 1083 00:50:44,060 --> 00:50:47,540 looking at image recognition and those sorts of topics that 1084 00:50:47,540 --> 00:50:49,340 are common in a deep learning class. 1085 00:50:49,340 --> 00:50:52,010 But certainly it's just a couple of weeks out of our class 1086 00:50:52,010 --> 00:50:55,370 as opposed to other classes that could spend a semester or a whole year 1087 00:50:55,370 --> 00:50:56,120 on deep learning. 1088 00:50:56,120 --> 00:50:58,620 So you should think of this class as more of an introduction 1089 00:50:58,620 --> 00:51:00,650 to those topics, from which you could therefore 1090 00:51:00,650 --> 00:51:04,647 most certainly go deeper and discover more about the field as well. 1091 00:51:04,647 --> 00:51:05,480 AUDIENCE: All right. 1092 00:51:05,480 --> 00:51:06,202 Thanks. 1093 00:51:06,202 --> 00:51:07,160 DAVID MALAN: Wonderful. 1094 00:51:07,160 --> 00:51:08,535 Can we go next to Muhammad Yunus? 1095 00:51:08,535 --> 00:51:16,953 1096 00:51:16,953 --> 00:51:17,620 Mohammed-- yeah. 1097 00:51:17,620 --> 00:51:19,008 AUDIENCE: Hello. 1098 00:51:19,008 --> 00:51:19,800 DAVID MALAN: Hello. 1099 00:51:19,800 --> 00:51:20,690 AUDIENCE: OK. 1100 00:51:20,690 --> 00:51:21,580 I'm Yunus. 1101 00:51:21,580 --> 00:51:23,630 I'm Yunus from Egypt. 1102 00:51:23,630 --> 00:51:27,050 I want to ask one question. 1103 00:51:27,050 --> 00:51:31,340 What can you [INAUDIBLE] that combines computer science and business 1104 00:51:31,340 --> 00:51:37,010 development to get a job in Google, Facebook, Amazon? 1105 00:51:37,010 --> 00:51:39,452 [INAUDIBLE] That's my question. 1106 00:51:39,452 --> 00:51:41,660 DAVID MALAN: What was the first part of the question? 1107 00:51:41,660 --> 00:51:42,460 About-- 1108 00:51:42,460 --> 00:51:44,165 [INTERPOSING VOICES] 1109 00:51:44,165 --> 00:51:45,290 AUDIENCE: What career path? 1110 00:51:45,290 --> 00:51:52,670 What career path that combines computer science and business development? 1111 00:51:52,670 --> 00:51:55,050 DAVID MALAN: Sure, and business development. 1112 00:51:55,050 --> 00:51:58,070 So I think a common intersection of those two worlds, 1113 00:51:58,070 --> 00:52:01,940 for instance, is what people would call project management whereby 1114 00:52:01,940 --> 00:52:04,490 you have ideally some technical background 1115 00:52:04,490 --> 00:52:07,310 to understand what it is the engineers are doing 1116 00:52:07,310 --> 00:52:10,880 and enough of a vocabulary to talk with them about features, 1117 00:52:10,880 --> 00:52:12,470 and goals, and motivation. 1118 00:52:12,470 --> 00:52:14,660 But you're also interested on the business side 1119 00:52:14,660 --> 00:52:17,360 and interacting with customers, and clients, 1120 00:52:17,360 --> 00:52:21,740 and translating their desires into more specific technical requests 1121 00:52:21,740 --> 00:52:22,713 of the team. 1122 00:52:22,713 --> 00:52:25,130 That tends to be the place that a lot of recent graduates, 1123 00:52:25,130 --> 00:52:29,270 for instance, start whether they take a business degree or a computer science 1124 00:52:29,270 --> 00:52:30,020 degree. 1125 00:52:30,020 --> 00:52:32,270 If they know they don't want to be programming all day 1126 00:52:32,270 --> 00:52:35,450 long but they want to straddle both worlds project management 1127 00:52:35,450 --> 00:52:40,210 tends to be the place to start at least in the tech world. 1128 00:52:40,210 --> 00:52:41,120 AUDIENCE: OK. 1129 00:52:41,120 --> 00:52:48,115 Will CS50 help me to get my goal, yes? 1130 00:52:48,115 --> 00:52:49,490 DAVID MALAN: To some extent, yes. 1131 00:52:49,490 --> 00:52:52,460 You will have more than enough technical background 1132 00:52:52,460 --> 00:52:55,880 to have those kinds of conversations with the engineers. 1133 00:52:55,880 --> 00:52:59,330 Let me go ahead and paste the URL of the same business class 1134 00:52:59,330 --> 00:53:00,800 that I mentioned earlier. 1135 00:53:00,800 --> 00:53:03,810 This URL that I just pasted into the chat window, 1136 00:53:03,810 --> 00:53:07,490 it's the OpenCourseWare version of a class similar to what 1137 00:53:07,490 --> 00:53:09,140 I teach at Harvard's Business School. 1138 00:53:09,140 --> 00:53:12,470 And that class talks more about security, cloud computing, 1139 00:53:12,470 --> 00:53:17,180 how the internet works, so topics that we don't cover per se in CS50, at least 1140 00:53:17,180 --> 00:53:20,240 at that conceptual level, but that's useful for a business 1141 00:53:20,240 --> 00:53:22,950 minded person to understand as well. 1142 00:53:22,950 --> 00:53:26,300 So I would say the two classes, CS50X and CS50B, 1143 00:53:26,300 --> 00:53:29,990 for Business, might help you with those interests. 1144 00:53:29,990 --> 00:53:31,060 AUDIENCE: OK. 1145 00:53:31,060 --> 00:53:37,190 Last question, do you recommend any books or other courses 1146 00:53:37,190 --> 00:53:41,915 to cover this, project management or? 1147 00:53:41,915 --> 00:53:42,415 BRIAN: Yeah. 1148 00:53:42,415 --> 00:53:45,200 1149 00:53:45,200 --> 00:53:48,590 So if you're interested in a PM role, otherwise known as a Product Manager 1150 00:53:48,590 --> 00:53:51,920 role, one of the most popular books is this one 1151 00:53:51,920 --> 00:53:55,910 that I've just pasted into the chat here, Cracking the PM Interview. 1152 00:53:55,910 --> 00:53:58,920 It's quite popular in terms of just preparing for that sort of role. 1153 00:53:58,920 --> 00:54:00,837 It'll be the types of questions that you might 1154 00:54:00,837 --> 00:54:03,837 be asked in an interview for that type of role and the types of problems 1155 00:54:03,837 --> 00:54:07,020 that you might face if you actually end up working in that sort of role. 1156 00:54:07,020 --> 00:54:10,550 So you are looking for a book that one might be a good one to start with. 1157 00:54:10,550 --> 00:54:11,880 AUDIENCE: OK, thanks. 1158 00:54:11,880 --> 00:54:12,780 Thanks a lot. 1159 00:54:12,780 --> 00:54:14,697 DAVID MALAN: Time for a couple more questions. 1160 00:54:14,697 --> 00:54:16,560 Raj, can we go to you? 1161 00:54:16,560 --> 00:54:17,600 AUDIENCE: Absolutely. 1162 00:54:17,600 --> 00:54:21,990 So first of all, I wanted to personally thank you. 1163 00:54:21,990 --> 00:54:25,980 CS50, like literally, I'm not exaggerating, changed my life. 1164 00:54:25,980 --> 00:54:29,000 I switched careers after taking CS50. 1165 00:54:29,000 --> 00:54:31,830 I'm just so thankful with you guys. 1166 00:54:31,830 --> 00:54:35,120 I just wanted to express that personally. 1167 00:54:35,120 --> 00:54:37,080 So that's point number one. 1168 00:54:37,080 --> 00:54:42,590 And number two is that obviously due to the COVID-19, a lot of people with kids 1169 00:54:42,590 --> 00:54:46,910 like myself are going crazy right now with the kids at home all day 1170 00:54:46,910 --> 00:54:49,720 long, and with homeschooling going on. 1171 00:54:49,720 --> 00:54:55,490 And one question for you, I guess, is are there 1172 00:54:55,490 --> 00:55:01,700 any resources or an approach you would suggest to make useful-- 1173 00:55:01,700 --> 00:55:02,690 useful? 1174 00:55:02,690 --> 00:55:07,460 Valuable use of time and get kids, let's say between 6 and 10 years old, 1175 00:55:07,460 --> 00:55:13,490 engaged with the very, very first steps in computer science and computing 1176 00:55:13,490 --> 00:55:16,348 in general, computers? 1177 00:55:16,348 --> 00:55:18,890 Are there any-- because there are so many projects out there. 1178 00:55:18,890 --> 00:55:22,880 You can buy a Raspberry Pi and I don't know, play with Minecraft, 1179 00:55:22,880 --> 00:55:29,360 and write some simple things in Python, and there's Scratch, there 1180 00:55:29,360 --> 00:55:32,150 Scratch Junior, there's the Sprite Box. 1181 00:55:32,150 --> 00:55:35,785 There are so many things and so what do you recommend? 1182 00:55:35,785 --> 00:55:37,910 DAVID MALAN: Well I am definitely a fan of Scratch. 1183 00:55:37,910 --> 00:55:42,080 Anyone who's taken CS50 itself is familiar with this one, which 1184 00:55:42,080 --> 00:55:46,700 I've just pasted in to the chat window. 1185 00:55:46,700 --> 00:55:49,700 A fun addition to Scratch is-- 1186 00:55:49,700 --> 00:55:54,310 let me go ahead and google this for you. 1187 00:55:54,310 --> 00:55:58,900 It's something called Snap at Berkeley, which is very similar in spirit-- 1188 00:55:58,900 --> 00:56:01,000 I'm going to go ahead and paste that URL here-- 1189 00:56:01,000 --> 00:56:02,480 but it has a lot more features. 1190 00:56:02,480 --> 00:56:04,600 So in fact, I think Sarah, we were talking 1191 00:56:04,600 --> 00:56:06,190 earlier about functional programming. 1192 00:56:06,190 --> 00:56:10,010 And so Snap is actually a-- has functional features, 1193 00:56:10,010 --> 00:56:14,660 even though it is a drag and drop block based language as well. 1194 00:56:14,660 --> 00:56:18,130 But it has features where you can talk to APIs, Application Programming 1195 00:56:18,130 --> 00:56:20,320 Interfaces, you can make internet connections. 1196 00:56:20,320 --> 00:56:23,290 So it does several things that Scratch itself does not do. 1197 00:56:23,290 --> 00:56:25,420 And it also interfaces well with hardware 1198 00:56:25,420 --> 00:56:28,570 if children might like to actually play with some physicality. 1199 00:56:28,570 --> 00:56:32,843 Brian, do you have other suggestions from experience or siblings? 1200 00:56:32,843 --> 00:56:33,760 BRIAN: Yeah, a couple. 1201 00:56:33,760 --> 00:56:38,320 So Scratch is, again, a favorite of mine, for even younger students 1202 00:56:38,320 --> 00:56:40,510 like children ages five to seven. 1203 00:56:40,510 --> 00:56:43,480 I think you mentioned Scratch Junior, which I'll paste in as well. 1204 00:56:43,480 --> 00:56:45,610 Also really great because Scratch's user interface 1205 00:56:45,610 --> 00:56:48,400 can be a bit much for a six-year-old but Scratch Junior 1206 00:56:48,400 --> 00:56:51,160 is typically designed to make it even easier for them. 1207 00:56:51,160 --> 00:56:54,727 And then with regards to hardware, another popular one 1208 00:56:54,727 --> 00:56:56,560 especially for younger children that's often 1209 00:56:56,560 --> 00:57:00,070 used in primary school classrooms and such 1210 00:57:00,070 --> 00:57:03,160 is KIBO, which is one of these robots that allows you to build 1211 00:57:03,160 --> 00:57:04,925 programs that have little blocks. 1212 00:57:04,925 --> 00:57:08,080 And you can build programs out of blocks and scan the blocks with the robot 1213 00:57:08,080 --> 00:57:10,550 and the robot can respond to those programs. 1214 00:57:10,550 --> 00:57:13,632 And I've seen kids have a lot of fun with that kind of approach too. 1215 00:57:13,632 --> 00:57:15,340 That one is hardware, though, so it's not 1216 00:57:15,340 --> 00:57:17,140 going to be just a web application the way 1217 00:57:17,140 --> 00:57:20,148 that Scratch is, [INAUDIBLE] for example. 1218 00:57:20,148 --> 00:57:20,690 AUDIENCE: OK. 1219 00:57:20,690 --> 00:57:22,533 Thanks a lot, super useful. 1220 00:57:22,533 --> 00:57:23,450 DAVID MALAN: For sure. 1221 00:57:23,450 --> 00:57:26,888 Let me go ahead, everyone, and paste into the chat window a Google form. 1222 00:57:26,888 --> 00:57:29,930 Invariably we're not going to be able to answer all of today's questions. 1223 00:57:29,930 --> 00:57:32,300 But if you'd like to fill out the Google form 1224 00:57:32,300 --> 00:57:35,030 that I just pasted into the chat window, you 1225 00:57:35,030 --> 00:57:38,360 can tell us your email address so we can let you know when the next office 1226 00:57:38,360 --> 00:57:42,050 hours will be online with us because we'd love to let you know and continue 1227 00:57:42,050 --> 00:57:43,460 the conversation. 1228 00:57:43,460 --> 00:57:46,370 And those of you who submitted wonderfully some questions in advance, 1229 00:57:46,370 --> 00:57:49,130 I hope you forgive that we haven't even turned to that spreadsheet 1230 00:57:49,130 --> 00:57:51,170 yet because there were so many questions in person 1231 00:57:51,170 --> 00:57:53,630 and we thought it would be more engaging for everyone if we 1232 00:57:53,630 --> 00:57:57,290 focus on the in-person questions first. 1233 00:57:57,290 --> 00:58:01,653 But let's go lastly for one final question perhaps to Arsh Dixit? 1234 00:58:01,653 --> 00:58:03,320 Your hand's been up for a while as well. 1235 00:58:03,320 --> 00:58:07,040 1236 00:58:07,040 --> 00:58:08,765 Oops, still muted somehow. 1237 00:58:08,765 --> 00:58:11,820 1238 00:58:11,820 --> 00:58:15,445 Zoom is showing you is unmuted but we're not hearing your voice. 1239 00:58:15,445 --> 00:58:17,070 Something doesn't seem to be connected. 1240 00:58:17,070 --> 00:58:20,040 1241 00:58:20,040 --> 00:58:22,760 Any luck there? 1242 00:58:22,760 --> 00:58:24,490 BRIAN: Yeah, I see you in the chat Arsh. 1243 00:58:24,490 --> 00:58:26,450 If you'd like to type your question that's OK too. 1244 00:58:26,450 --> 00:58:27,950 DAVID MALAN: Sure go ahead and type. 1245 00:58:27,950 --> 00:58:30,220 1246 00:58:30,220 --> 00:58:30,720 OK. 1247 00:58:30,720 --> 00:58:33,580 1248 00:58:33,580 --> 00:58:35,830 As you type that, Arsh, let me go to another question 1249 00:58:35,830 --> 00:58:36,880 but we'll come back to yours. 1250 00:58:36,880 --> 00:58:38,547 Go ahead and type it in the chat window. 1251 00:58:38,547 --> 00:58:40,710 Jason, can we go to you? 1252 00:58:40,710 --> 00:58:42,710 AUDIENCE: Thank you so much for the opportunity. 1253 00:58:42,710 --> 00:58:43,502 Can you hear me? 1254 00:58:43,502 --> 00:58:44,210 DAVID MALAN: Yes. 1255 00:58:44,210 --> 00:58:45,050 Where are you from? 1256 00:58:45,050 --> 00:58:45,675 AUDIENCE: Yeah. 1257 00:58:45,675 --> 00:58:48,200 I'm from Pakistan, Asia. 1258 00:58:48,200 --> 00:58:49,640 DAVID MALAN: Wonderful. 1259 00:58:49,640 --> 00:58:52,280 AUDIENCE: And the questions are a couple of questions 1260 00:58:52,280 --> 00:58:56,420 I have noted down, and quickly questions at the moment about mathematics. 1261 00:58:56,420 --> 00:58:59,600 How good a person should be at mathematics 1262 00:58:59,600 --> 00:59:02,690 if you want to start with a computer science or CS50 and something 1263 00:59:02,690 --> 00:59:05,690 beyond CS50 to get some introduction in computer science 1264 00:59:05,690 --> 00:59:07,850 and land a job on a tech company? 1265 00:59:07,850 --> 00:59:09,680 Number one question. 1266 00:59:09,680 --> 00:59:10,180 And-- 1267 00:59:10,180 --> 00:59:10,930 DAVID MALAN: Sure. 1268 00:59:10,930 --> 00:59:12,660 Go ahead. 1269 00:59:12,660 --> 00:59:14,800 AUDIENCE: Should I go for the next question? 1270 00:59:14,800 --> 00:59:16,350 [INAUDIBLE] 1271 00:59:16,350 --> 00:59:17,640 DAVID MALAN: Oh, sorry. 1272 00:59:17,640 --> 00:59:18,778 You got muted. 1273 00:59:18,778 --> 00:59:19,320 Say it again? 1274 00:59:19,320 --> 00:59:22,630 1275 00:59:22,630 --> 00:59:23,380 Still muted. 1276 00:59:23,380 --> 00:59:26,450 Still muted, Jason. 1277 00:59:26,450 --> 00:59:30,270 AUDIENCE: [INAUDIBLE] OK. 1278 00:59:30,270 --> 00:59:32,620 So first question answer, to you please. 1279 00:59:32,620 --> 00:59:35,550 1280 00:59:35,550 --> 00:59:37,530 DAVID MALAN: We missed your second question. 1281 00:59:37,530 --> 00:59:38,072 AUDIENCE: OK. 1282 00:59:38,072 --> 00:59:40,740 The second question is about the contents 1283 00:59:40,740 --> 00:59:44,820 that you are just delivering to the internet or the web based. 1284 00:59:44,820 --> 00:59:49,680 How about creating some kind of platform, a central platform, 1285 00:59:49,680 --> 00:59:53,940 that can eventually gather all the resources that you are just teaching 1286 00:59:53,940 --> 00:59:58,530 and other platforms like Coursera, edX, MIT, 1287 00:59:58,530 --> 01:00:00,480 that would be a common hub for everyone. 1288 01:00:00,480 --> 01:00:05,760 Like a couple of guys just ask about this, where we can do for the further 1289 01:00:05,760 --> 01:00:07,770 after CS50 or something like that. 1290 01:00:07,770 --> 01:00:11,280 How about considering a project, even though, if I'm looking for a project 1291 01:00:11,280 --> 01:00:13,730 to work on, how would it look like? 1292 01:00:13,730 --> 01:00:17,910 [INAUDIBLE] want you to know how would you recommend to do this, 1293 01:00:17,910 --> 01:00:20,910 that we're building a central project, a central distribution, that we 1294 01:00:20,910 --> 01:00:24,120 can put all of the courses, all the resources at one place, 1295 01:00:24,120 --> 01:00:28,980 and anyone can come and just utilize that resource 1296 01:00:28,980 --> 01:00:31,153 for further studying and all that. 1297 01:00:31,153 --> 01:00:33,570 DAVID MALAN: In reverse order, we have thought about that, 1298 01:00:33,570 --> 01:00:36,240 having a central platform for all of the courses 1299 01:00:36,240 --> 01:00:39,870 especially now that we have multiple courses taught by myself, by Brian, 1300 01:00:39,870 --> 01:00:41,490 and by other colleagues too. 1301 01:00:41,490 --> 01:00:43,380 We haven't started that process yet. 1302 01:00:43,380 --> 01:00:44,430 We might. 1303 01:00:44,430 --> 01:00:48,420 We have historically, though, tried to bring the material to where students 1304 01:00:48,420 --> 01:00:53,520 are already are, so putting it on YouTube, on edX, on iTunes, on Fire TV, 1305 01:00:53,520 --> 01:00:56,412 and on any number of other channels, rather than presume 1306 01:00:56,412 --> 01:00:57,870 that people should be coming to us. 1307 01:00:57,870 --> 01:01:00,540 We've generally preferred to go to where they are. 1308 01:01:00,540 --> 01:01:03,450 The downside, of course, though, is that it might not 1309 01:01:03,450 --> 01:01:05,645 be obvious to students what is in fact available 1310 01:01:05,645 --> 01:01:07,770 because there's so many different things out there, 1311 01:01:07,770 --> 01:01:09,550 not to mention different versions. 1312 01:01:09,550 --> 01:01:12,720 So we might get to that point in answer to your second question. 1313 01:01:12,720 --> 01:01:14,970 As for the first, I do think that math should not 1314 01:01:14,970 --> 01:01:21,450 be an impediment in one's mind to pursuing computer science even 1315 01:01:21,450 --> 01:01:25,090 if you don't think of yourself as very good at math or as a math person. 1316 01:01:25,090 --> 01:01:28,080 In CS50, certainly comfort with arithmetic 1317 01:01:28,080 --> 01:01:32,280 is a precondition, so knowing how to use basic mathematical operations. 1318 01:01:32,280 --> 01:01:35,970 And I think some comfort with algebra, just symbolic expressions 1319 01:01:35,970 --> 01:01:40,830 when you have x plus y equals z, so generally formulas along those lines 1320 01:01:40,830 --> 01:01:41,700 are helpful. 1321 01:01:41,700 --> 01:01:44,460 But beyond that nothing more is needed for CS50. 1322 01:01:44,460 --> 01:01:48,090 In higher level classes other mathematical tools come into play. 1323 01:01:48,090 --> 01:01:52,310 And Brian, do you want to speak to a few higher level assumptions? 1324 01:01:52,310 --> 01:01:52,930 BRIAN: Sure. 1325 01:01:52,930 --> 01:01:55,930 So we can speak about artificial intelligence, for example. 1326 01:01:55,930 --> 01:01:58,010 We've talked about the AI class a bit. 1327 01:01:58,010 --> 01:02:00,490 One of the goals in CS50's AI class has been 1328 01:02:00,490 --> 01:02:03,370 to try to create a class that doesn't require 1329 01:02:03,370 --> 01:02:06,980 a whole lot of mathematical background coming into the class. 1330 01:02:06,980 --> 01:02:10,690 So if you look around at artificial intelligence books and other resources, 1331 01:02:10,690 --> 01:02:14,410 a lot of them will assume a lot of multivariable calculus, 1332 01:02:14,410 --> 01:02:17,170 or linear algebra, or other high level mathematics, 1333 01:02:17,170 --> 01:02:20,320 which are quite helpful if you want to really dive 1334 01:02:20,320 --> 01:02:24,100 into this world of designing algorithms for artificial intelligence. 1335 01:02:24,100 --> 01:02:26,320 But there's a lot you can do with these technologies 1336 01:02:26,320 --> 01:02:28,780 without necessarily having that mathematical background. 1337 01:02:28,780 --> 01:02:31,720 So CS50's artificial intelligence class does not 1338 01:02:31,720 --> 01:02:33,960 assume any of that prior mathematical background. 1339 01:02:33,960 --> 01:02:38,590 We'll assume familiarity with algebra and the mathematics 1340 01:02:38,590 --> 01:02:41,050 that you need to know to be successful in CS50, 1341 01:02:41,050 --> 01:02:43,960 but we will then introduce some of the other mathematical concepts 1342 01:02:43,960 --> 01:02:47,320 that come up in the class-- things like probability and formal logic, 1343 01:02:47,320 --> 01:02:50,980 those are things that we will cover and teach over the course of the AI class 1344 01:02:50,980 --> 01:02:51,870 itself. 1345 01:02:51,870 --> 01:02:54,640 But depending on where you choose to go after that, 1346 01:02:54,640 --> 01:02:57,980 a little bit of familiarity with the mathematics can often be quite helpful. 1347 01:02:57,980 --> 01:03:01,760 And a lot of computer science now has to do with big data, for example. 1348 01:03:01,760 --> 01:03:05,642 And so looking around for some statistics classes, for example, 1349 01:03:05,642 --> 01:03:07,600 might be helpful if that's an area where you're 1350 01:03:07,600 --> 01:03:10,320 really interested in going further. 1351 01:03:10,320 --> 01:03:11,570 DAVID MALAN: And allow me to-- 1352 01:03:11,570 --> 01:03:12,945 AUDIENCE: That is a great answer. 1353 01:03:12,945 --> 01:03:13,500 Thank you. 1354 01:03:13,500 --> 01:03:19,457 And the last [INAUDIBLE] 1355 01:03:19,457 --> 01:03:20,790 DAVID MALAN: Still muted, Jason. 1356 01:03:20,790 --> 01:03:24,140 1357 01:03:24,140 --> 01:03:24,970 Still muted, Jason. 1358 01:03:24,970 --> 01:03:27,592 1359 01:03:27,592 --> 01:03:28,800 AUDIENCE: OK, unmuted, right? 1360 01:03:28,800 --> 01:03:29,390 DAVID MALAN: There we go, yes. 1361 01:03:29,390 --> 01:03:30,050 AUDIENCE: OK. 1362 01:03:30,050 --> 01:03:33,808 The last question is, ideally speaking-- what the heck? 1363 01:03:33,808 --> 01:03:34,850 DAVID MALAN: You're good. 1364 01:03:34,850 --> 01:03:37,425 1365 01:03:37,425 --> 01:03:38,550 No, now you're muted again. 1366 01:03:38,550 --> 01:03:41,530 1367 01:03:41,530 --> 01:03:45,220 AUDIENCE: The last question so to speak is ideally what is the best time, 1368 01:03:45,220 --> 01:03:49,720 in your opinion, to get to yourself in particular one discipline in computer 1369 01:03:49,720 --> 01:03:53,050 science rather than getting on and on and just 1370 01:03:53,050 --> 01:03:55,420 tired of learning new things and new technologies? 1371 01:03:55,420 --> 01:03:59,890 But eventually everyone, particularly me, I just 1372 01:03:59,890 --> 01:04:03,310 want to get a job in a career for a tech company. 1373 01:04:03,310 --> 01:04:07,690 So what time you would recommend to just get in one specific discipline 1374 01:04:07,690 --> 01:04:11,110 and then continue with only that instead of going here and there 1375 01:04:11,110 --> 01:04:12,880 and searching for the next stuff to learn? 1376 01:04:12,880 --> 01:04:14,150 DAVID MALAN: A good question. 1377 01:04:14,150 --> 01:04:16,720 And in fact, let me read our last question aloud 1378 01:04:16,720 --> 01:04:20,260 that Arsh kindly pasted into the chat window, which is similar-- 1379 01:04:20,260 --> 01:04:24,100 have you heard of people going straight into the field of technology right 1380 01:04:24,100 --> 01:04:25,390 after CS50? 1381 01:04:25,390 --> 01:04:29,980 And how much of a gulf is there between the skill game from CS50 and the skill 1382 01:04:29,980 --> 01:04:32,740 needed for a basic unpaid internship? 1383 01:04:32,740 --> 01:04:34,960 That is, is it a good idea or feasible? 1384 01:04:34,960 --> 01:04:37,420 So another angle on the same question. 1385 01:04:37,420 --> 01:04:39,430 Generally speaking here at Harvard, we recommend 1386 01:04:39,430 --> 01:04:43,180 that students have taken CS50 and one other course, presumably 1387 01:04:43,180 --> 01:04:46,780 a software class or an algorithms and data structures class. 1388 01:04:46,780 --> 01:04:49,832 That generally tends to be the expectation of a lot of tech companies, 1389 01:04:49,832 --> 01:04:51,790 that you've not just taken one class but you've 1390 01:04:51,790 --> 01:04:54,850 taken a second that tends to round out your knowledge, that gives you 1391 01:04:54,850 --> 01:04:58,480 more experience and practice with programming in particular, 1392 01:04:58,480 --> 01:05:00,730 and frankly so that you have a different perspective 1393 01:05:00,730 --> 01:05:04,510 and you've not learned computer science from just one person or one course. 1394 01:05:04,510 --> 01:05:07,010 You've seen different ways of solving problems. 1395 01:05:07,010 --> 01:05:11,410 So I think it's very reasonable to take something like CS50 for free online, 1396 01:05:11,410 --> 01:05:13,480 or through any of our various channels, and then 1397 01:05:13,480 --> 01:05:19,000 take some follow on class-- maybe one of MIT's, maybe Brian's web class or AI 1398 01:05:19,000 --> 01:05:22,360 class, or a class at Princeton on algorithms, 1399 01:05:22,360 --> 01:05:24,520 or any number of free courses too. 1400 01:05:24,520 --> 01:05:29,290 And then I think pursuing a tech internship, or paid or unpaid position, 1401 01:05:29,290 --> 01:05:30,340 is quite reasonable. 1402 01:05:30,340 --> 01:05:32,550 So thank you both for that question. 1403 01:05:32,550 --> 01:05:35,890 And allow me to squeeze into the chat window one final URL. 1404 01:05:35,890 --> 01:05:38,770 Invariably again we can't field all of today's questions today, 1405 01:05:38,770 --> 01:05:42,280 but if you'd like to reach out to Brian, and me, and CS50's whole team, 1406 01:05:42,280 --> 01:05:44,710 by any of our online communities I've just 1407 01:05:44,710 --> 01:05:47,860 pasted the URL that gives you a list of all of those various tools where 1408 01:05:47,860 --> 01:05:48,970 we hang out. 1409 01:05:48,970 --> 01:05:52,540 And we will absolutely follow up via email if you fill out the Google form 1410 01:05:52,540 --> 01:05:55,660 from a few minutes ago to let you know when the first such office 1411 01:05:55,660 --> 01:05:57,300 hours will be. 1412 01:05:57,300 --> 01:06:01,120 So thank you so much to Ian, and Ramon, and Arturo on CS50's team for having 1413 01:06:01,120 --> 01:06:02,740 helped us with the stream today. 1414 01:06:02,740 --> 01:06:05,290 We'll post a recording online later on if you'd 1415 01:06:05,290 --> 01:06:07,508 like to take a look or share with any friends. 1416 01:06:07,508 --> 01:06:09,550 And we'll let you know soon when the next one is. 1417 01:06:09,550 --> 01:06:14,050 And all our best truly, especially right now in the world with so many people 1418 01:06:14,050 --> 01:06:16,450 holed up at home and hopefully quite healthy. 1419 01:06:16,450 --> 01:06:20,130 All our best to you and your families and friends. 1420 01:06:20,130 --> 01:06:24,000