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.
