1 00:00:00,000 --> 00:00:05,234 2 00:00:05,234 --> 00:00:06,150 DOUG LLOYD: All right. 3 00:00:06,150 --> 00:00:08,220 So let's talk about a couple of administrative details that 4 00:00:08,220 --> 00:00:10,860 may come in handy for you as you're working through your CS50 problem sets 5 00:00:10,860 --> 00:00:13,020 and just taking the course more generally. 6 00:00:13,020 --> 00:00:16,760 This course has a lot to teach you, and so there's a lot of resources 7 00:00:16,760 --> 00:00:18,610 that we have available so that you can make 8 00:00:18,610 --> 00:00:20,680 the most of this learning experience. 9 00:00:20,680 --> 00:00:22,560 These resources come in many different types, 10 00:00:22,560 --> 00:00:26,547 and hopefully, will be available in a form that will accommodate you. 11 00:00:26,547 --> 00:00:28,630 Here's a list of some of the most common resources 12 00:00:28,630 --> 00:00:31,900 that students use when they're working through their CS50 materials. 13 00:00:31,900 --> 00:00:34,810 On the course website, we have all lecture materials right 14 00:00:34,810 --> 00:00:35,560 after they happen. 15 00:00:35,560 --> 00:00:37,680 So we have videos live- streamed of lectures, 16 00:00:37,680 --> 00:00:40,540 if you're not able to attend lecture a given week, videos for which 17 00:00:40,540 --> 00:00:42,740 are posted very shortly thereafter. 18 00:00:42,740 --> 00:00:45,250 On that site, on the lecture part of the website, 19 00:00:45,250 --> 00:00:48,120 we also have sample code that David shows during lecture, 20 00:00:48,120 --> 00:00:50,190 as well as the lecture slides, scribe notes, 21 00:00:50,190 --> 00:00:52,148 which are taken by one of our teaching fellows, 22 00:00:52,148 --> 00:00:54,190 so you don't have to take notes in the classroom, 23 00:00:54,190 --> 00:00:56,420 as well as any links to any external resources that 24 00:00:56,420 --> 00:00:58,620 are shared during lecture. 25 00:00:58,620 --> 00:01:02,230 >> We also have a wonderful function reference, reference.cs50.net, 26 00:01:02,230 --> 00:01:06,600 which is usable for those less comfortable and more comfortable alike. 27 00:01:06,600 --> 00:01:09,510 If you're familiar, the function reference that we have, 28 00:01:09,510 --> 00:01:13,090 the CS50 reference, is an annotated set of man pages-- 29 00:01:13,090 --> 00:01:17,252 man pages is the shorthand way of describing a manual page-- which 30 00:01:17,252 --> 00:01:18,960 is built into Linux and gives programmers 31 00:01:18,960 --> 00:01:21,400 a reference to the functions that they're using. 32 00:01:21,400 --> 00:01:27,430 >> Reference 50 has a reference for all of the C standard library functions, 33 00:01:27,430 --> 00:01:29,610 and standard io.h and others you'll become 34 00:01:29,610 --> 00:01:34,909 familiar with as the course goes on, string.h, math.h, ctype.h, and so on. 35 00:01:34,909 --> 00:01:36,700 It's a great place to go, if you're looking 36 00:01:36,700 --> 00:01:38,640 to see if there's a function that exists, 37 00:01:38,640 --> 00:01:40,840 that will do what you need to do, or if you're 38 00:01:40,840 --> 00:01:43,180 just unsure of how to use a function. 39 00:01:43,180 --> 00:01:47,230 >> We also have a great interactive study guide at study.cs50.net. 40 00:01:47,230 --> 00:01:50,490 There, you'll find a variety of topics with practice exercises, 41 00:01:50,490 --> 00:01:53,471 some additional section slides, and lots more. 42 00:01:53,471 --> 00:01:55,220 It's a great place to check out, if you're 43 00:01:55,220 --> 00:01:57,760 feeling a little uncomfortable about at a particular topic. 44 00:01:57,760 --> 00:01:59,968 Chances are, there'll be some exercises there for you 45 00:01:59,968 --> 00:02:02,720 to refine your skills a little bit. 46 00:02:02,720 --> 00:02:08,759 >> When Quiz 0 or Quiz 1 is coming up, you can always see the past quizzes that 47 00:02:08,759 --> 00:02:13,400 we've given in the course at cs50.harvard.edu/quizzes. 48 00:02:13,400 --> 00:02:16,100 All the old questions and answers are there for your review. 49 00:02:16,100 --> 00:02:18,330 And they're a great resource, especially as you 50 00:02:18,330 --> 00:02:23,190 consider what to put on the back or front of your study sheet, the one 51 00:02:23,190 --> 00:02:26,990 piece of paper that you get to bring into the exam. 52 00:02:26,990 --> 00:02:30,090 >> Additionally, there's lots of resources on the CS50 problem sets, 53 00:02:30,090 --> 00:02:32,610 cs50.harvard.edu/psets. 54 00:02:32,610 --> 00:02:35,660 We post all the specifications there, as well as any distribution 55 00:02:35,660 --> 00:02:38,060 code for the later problem sets. 56 00:02:38,060 --> 00:02:40,880 Additionally, incorporated into the specifications themselves, 57 00:02:40,880 --> 00:02:43,030 you'll find friendly walkthroughs from Zamila, 58 00:02:43,030 --> 00:02:47,210 who will be happy to guide you through getting over the starting blocks that 59 00:02:47,210 --> 00:02:49,920 might trip you up as you start working on the problem sets. 60 00:02:49,920 --> 00:02:53,300 And when the products sets are over, Rob will be hosting postmortems 61 00:02:53,300 --> 00:02:55,580 where he deconstruct the problem set, walks you 62 00:02:55,580 --> 00:02:59,139 through some possible solutions after the fact. 63 00:02:59,139 --> 00:03:01,680 Of course, you can also always find materials about sections, 64 00:03:01,680 --> 00:03:05,429 like these videos here, on cs50.harvard.edu/sections. 65 00:03:05,429 --> 00:03:07,970 You'll also find a schedule of sections, if you're on campus, 66 00:03:07,970 --> 00:03:10,782 as well as videos and slides that are shared during the sections. 67 00:03:10,782 --> 00:03:13,240 A list of office hours are available on the course website. 68 00:03:13,240 --> 00:03:16,990 If you're on the Cambridge campus or on the Yale campus, 69 00:03:16,990 --> 00:03:21,395 or you're really anywhere, you can find a list of our office hours, which 70 00:03:21,395 --> 00:03:23,380 are usually available weeknights. 71 00:03:23,380 --> 00:03:25,910 >> And for help from your peers or with your peers, 72 00:03:25,910 --> 00:03:29,020 you can go to cs50.harvard.edu/discuss. 73 00:03:29,020 --> 00:03:32,210 It's our asynchronous discussion forum, sort of similar in spirit to Piazza, 74 00:03:32,210 --> 00:03:35,250 if you're familiar with Piazza, which you might see in other courses. 75 00:03:35,250 --> 00:03:38,129 It's an asynchronous bulletin board where you can ask a question 76 00:03:38,129 --> 00:03:41,420 and, after a little while, get an answer from a teaching assistant, or teaching 77 00:03:41,420 --> 00:03:43,700 fellow, or even your fellow students. 78 00:03:43,700 --> 00:03:47,170 We in fact, strongly encourage you to, if you know the answer to a question 79 00:03:47,170 --> 00:03:51,900 that a fellow student asks, feel free to help him out a little bit. 80 00:03:51,900 --> 00:03:56,490 >> Now, if you're taking the course through CS50x and not taking it on campus, 81 00:03:56,490 --> 00:03:59,640 we also have the course archives available at cs50.tv. 82 00:03:59,640 --> 00:04:01,790 All of the resources I just described are 83 00:04:01,790 --> 00:04:05,600 available on cs50.tv, organized by year. 84 00:04:05,600 --> 00:04:09,792 At the end of every fall, all the past years resources will be there. 85 00:04:09,792 --> 00:04:12,750 So you can feel free to check those out to see other ways of presenting 86 00:04:12,750 --> 00:04:15,310 material in CS50 years past. 87 00:04:15,310 --> 00:04:17,690 >> Additionally, we have a wealth of online resources 88 00:04:17,690 --> 00:04:20,310 that are not localized to Harvard or Yale. 89 00:04:20,310 --> 00:04:23,140 You can go to our Slack, our asynchronous chat service, 90 00:04:23,140 --> 00:04:25,346 at cs50x.slack.com. 91 00:04:25,346 --> 00:04:29,660 We also have a forum on Stack Exchange and on Reddit, both of which 92 00:04:29,660 --> 00:04:30,970 are listed here. 93 00:04:30,970 --> 00:04:34,500 You can tag us on Twitter at @cs50, or with #cs50. 94 00:04:34,500 --> 00:04:36,920 And on course, you can also find us on Facebook. 95 00:04:36,920 --> 00:04:40,850 >> One other administrative bit that I want to touch on now, grading. 96 00:04:40,850 --> 00:04:43,780 So as you're probably familiar, assignments in this course 97 00:04:43,780 --> 00:04:46,480 are graded on four different axes. 98 00:04:46,480 --> 00:04:48,580 We grade you on scope, would asks the question, 99 00:04:48,580 --> 00:04:51,038 did you make an earnest effort to complete the problem set? 100 00:04:51,038 --> 00:04:52,156 Did you try all the parts? 101 00:04:52,156 --> 00:04:53,530 Correctness, does your code work? 102 00:04:53,530 --> 00:04:54,350 Is it free of bugs? 103 00:04:54,350 --> 00:04:57,780 Does it have the expected output, given a set of inputs? 104 00:04:57,780 --> 00:04:58,902 Design is the third axis. 105 00:04:58,902 --> 00:05:01,110 And it asks the question, how efficient is your code? 106 00:05:01,110 --> 00:05:02,460 How well-written is it? 107 00:05:02,460 --> 00:05:05,230 And finally, style, which gets to the question of how human 108 00:05:05,230 --> 00:05:08,900 readable is your code, which is very important for your teaching fellows. 109 00:05:08,900 --> 00:05:11,210 >> Now, as a general rule, I usually present 110 00:05:11,210 --> 00:05:14,822 this graph for what these scores mean. 111 00:05:14,822 --> 00:05:18,710 All of these axes are graded on a scale of zero to five. 112 00:05:18,710 --> 00:05:22,360 And generally, you want to be in the three, four, or five range 113 00:05:22,360 --> 00:05:23,554 in all of the axes. 114 00:05:23,554 --> 00:05:26,470 It's OK to be in the one or two range a little bit, particularly early 115 00:05:26,470 --> 00:05:29,120 on the course, but it's an area you generally don't want to stay in. 116 00:05:29,120 --> 00:05:31,620 You definitely don't want to be getting zeros in any aspect of the problem set, 117 00:05:31,620 --> 00:05:33,661 because that's going to lower your overall grade. 118 00:05:33,661 --> 00:05:37,124 Now, we also have some tools available for you to help bring up 119 00:05:37,124 --> 00:05:38,540 your score in some of these areas. 120 00:05:38,540 --> 00:05:39,940 So we have check50. 121 00:05:39,940 --> 00:05:42,780 Each problem set specification will include a reference 122 00:05:42,780 --> 00:05:45,149 to how to use check50 for that particular problem. 123 00:05:45,149 --> 00:05:47,940 And you can use check50 to help you improve your correctness score, 124 00:05:47,940 --> 00:05:51,960 by finding out which test cases your program might not be passing. 125 00:05:51,960 --> 00:05:55,900 >> We also have style50, which is another command line tool. 126 00:05:55,900 --> 00:05:59,950 You are also taught how to use it as part of each problem set specification. 127 00:05:59,950 --> 00:06:04,580 And you can use style50 to get guidance on how to improve your program style, 128 00:06:04,580 --> 00:06:09,126 to make it cleaner, easier to read, and hopefully boost your style score. 129 00:06:09,126 --> 00:06:11,000 Lastly, your teaching fellow will provide you 130 00:06:11,000 --> 00:06:15,140 with qualitative comment-based feedback to help you improve your design score. 131 00:06:15,140 --> 00:06:18,190 Design is a little tricky to grade automatically, 132 00:06:18,190 --> 00:06:20,200 unlike correctness and style which can easily 133 00:06:20,200 --> 00:06:22,731 be tested with a command line tool. 134 00:06:22,731 --> 00:06:24,480 Rather, your design score will probably be 135 00:06:24,480 --> 00:06:27,240 most improved by getting feedback from your teaching fellow 136 00:06:27,240 --> 00:06:29,120 in the way of comments. 137 00:06:29,120 --> 00:06:31,640 Scope, of course, we leave to you to actually try 138 00:06:31,640 --> 00:06:34,190 all the parts of the problem set. 139 00:06:34,190 --> 00:06:35,320 >> I'm Doug Lloyd. 140 00:06:35,320 --> 00:06:37,550 This is CS50. 141 00:06:37,550 --> 00:06:42,308