DOUG LLOYD: All right.
So let's talk about a couple of administrative details that
may come in handy for you as you're working through your CS50 problem sets
and just taking the course more generally.
This course has a lot to teach you, and so there's a lot of resources
that we have available so that you can make
the most of this learning experience.
These resources come in many different types,
and hopefully, will be available in a form that will accommodate you.
Here's a list of some of the most common resources
that students use when they're working through their CS50 materials.
On the course website, we have all lecture materials right
after they happen.
So we have videos live- streamed of lectures,
if you're not able to attend lecture a given week, videos for which
are posted very shortly thereafter.
On that site, on the lecture part of the website,
we also have sample code that David shows during lecture,
as well as the lecture slides, scribe notes,
which are taken by one of our teaching fellows,
so you don't have to take notes in the classroom,
as well as any links to any external resources that
are shared during lecture.
>> We also have a wonderful function reference, reference.cs50.net,
which is usable for those less comfortable and more comfortable alike.
If you're familiar, the function reference that we have,
the CS50 reference, is an annotated set of man pages--
man pages is the shorthand way of describing a manual page-- which
is built into Linux and gives programmers
a reference to the functions that they're using.
>> Reference 50 has a reference for all of the C standard library functions,
and standard io.h and others you'll become
familiar with as the course goes on, string.h, math.h, ctype.h, and so on.
It's a great place to go, if you're looking
to see if there's a function that exists,
that will do what you need to do, or if you're
just unsure of how to use a function.
>> We also have a great interactive study guide at study.cs50.net.
There, you'll find a variety of topics with practice exercises,
some additional section slides, and lots more.
It's a great place to check out, if you're
feeling a little uncomfortable about at a particular topic.
Chances are, there'll be some exercises there for you
to refine your skills a little bit.
>> When Quiz 0 or Quiz 1 is coming up, you can always see the past quizzes that
we've given in the course at cs50.harvard.edu/quizzes.
All the old questions and answers are there for your review.
And they're a great resource, especially as you
consider what to put on the back or front of your study sheet, the one
piece of paper that you get to bring into the exam.
>> Additionally, there's lots of resources on the CS50 problem sets,
cs50.harvard.edu/psets.
We post all the specifications there, as well as any distribution
code for the later problem sets.
Additionally, incorporated into the specifications themselves,
you'll find friendly walkthroughs from Zamila,
who will be happy to guide you through getting over the starting blocks that
might trip you up as you start working on the problem sets.
And when the products sets are over, Rob will be hosting postmortems
where he deconstruct the problem set, walks you
through some possible solutions after the fact.
Of course, you can also always find materials about sections,
like these videos here, on cs50.harvard.edu/sections.
You'll also find a schedule of sections, if you're on campus,
as well as videos and slides that are shared during the sections.
A list of office hours are available on the course website.
If you're on the Cambridge campus or on the Yale campus,
or you're really anywhere, you can find a list of our office hours, which
are usually available weeknights.
>> And for help from your peers or with your peers,
you can go to cs50.harvard.edu/discuss.
It's our asynchronous discussion forum, sort of similar in spirit to Piazza,
if you're familiar with Piazza, which you might see in other courses.
It's an asynchronous bulletin board where you can ask a question
and, after a little while, get an answer from a teaching assistant, or teaching
fellow, or even your fellow students.
We in fact, strongly encourage you to, if you know the answer to a question
that a fellow student asks, feel free to help him out a little bit.
>> Now, if you're taking the course through CS50x and not taking it on campus,
we also have the course archives available at cs50.tv.
All of the resources I just described are
available on cs50.tv, organized by year.
At the end of every fall, all the past years resources will be there.
So you can feel free to check those out to see other ways of presenting
material in CS50 years past.
>> Additionally, we have a wealth of online resources
that are not localized to Harvard or Yale.
You can go to our Slack, our asynchronous chat service,
at cs50x.slack.com.
We also have a forum on Stack Exchange and on Reddit, both of which
are listed here.
You can tag us on Twitter at @cs50, or with #cs50.
And on course, you can also find us on Facebook.
>> One other administrative bit that I want to touch on now, grading.
So as you're probably familiar, assignments in this course
are graded on four different axes.
We grade you on scope, would asks the question,
did you make an earnest effort to complete the problem set?
Did you try all the parts?
Correctness, does your code work?
Is it free of bugs?
Does it have the expected output, given a set of inputs?
Design is the third axis.
And it asks the question, how efficient is your code?
How well-written is it?
And finally, style, which gets to the question of how human
readable is your code, which is very important for your teaching fellows.
>> Now, as a general rule, I usually present
this graph for what these scores mean.
All of these axes are graded on a scale of zero to five.
And generally, you want to be in the three, four, or five range
in all of the axes.
It's OK to be in the one or two range a little bit, particularly early
on the course, but it's an area you generally don't want to stay in.
You definitely don't want to be getting zeros in any aspect of the problem set,
because that's going to lower your overall grade.
Now, we also have some tools available for you to help bring up
your score in some of these areas.
So we have check50.
Each problem set specification will include a reference
to how to use check50 for that particular problem.
And you can use check50 to help you improve your correctness score,
by finding out which test cases your program might not be passing.
>> We also have style50, which is another command line tool.
You are also taught how to use it as part of each problem set specification.
And you can use style50 to get guidance on how to improve your program style,
to make it cleaner, easier to read, and hopefully boost your style score.
Lastly, your teaching fellow will provide you
with qualitative comment-based feedback to help you improve your design score.
Design is a little tricky to grade automatically,
unlike correctness and style which can easily
be tested with a command line tool.
Rather, your design score will probably be
most improved by getting feedback from your teaching fellow
in the way of comments.
Scope, of course, we leave to you to actually try
all the parts of the problem set.
>> I'm Doug Lloyd.
This is CS50.