Announcements

That's All, Folks!

December 15, 2018

We've just finished grading the final exam. We've posted
solutions and statistics here on the website, and will be
emailing out exam scores shortly. The actual final exams are available for pickup in the a filing cabinet in the first floor
1B Wing of the Gates building that's marked "CS103 Final Exams" and should be available somewhere in the Gates building
through the start of Winter quarter. (SCPD students - the exams have been sent to the SCPD office, and you should get
a scan soon.)

It's been a pleasure teaching CS103 this quarter. Feel free to stay in touch with us throughout your further adventures,
and enjoy the break!

Final Exam Logistics

December 7, 2018

The final exam is coming up this Monday, December 10th, from 3:30PM - 6:30PM. Locations are divvied up by
last (family) name:

A - L: Go to Nvidia Auditorium.

M - Z: Go to Cubberley Auditorium.

The exam is closed-book, closed-computer, and limited-note. You can bring a single,
double-sided sheet of 8.5" × 11" notes with you to the exam. The exam is cumulative - all topics from the
problem sets and lectures are fair game. If you'd like to get a sense of what the exam might look like, check
out some of the practice final exams we've posted below.

Good luck!

Problem Set 9 Released

November 30, 2018

Problem Set Nine, the final problem set of the
quarter, goes out today. It's due next Friday at 2:30PM, and since that's the last day of
class, this is a hard deadline. In this capstone problem set, you'll explore the true limits
of computing power by looking at problems that are truly beyond our capacity to solve. It's
been a long journey getting here, but wow! Look at the view from the top. We started off
this class with the idea that some problems are too hard to be solved by computers, and at this
point you're finally working with them!

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Problem Set 8 Released

November 16, 2018

Problem Set Eight goes out today. It's due the Friday after break at 2:30.
In the course of working through it, you'll get some experience designing context-free grammars, playing around
with connections between different classes of languages, building Turing machines, and setting a firm foundation
for exploring the limits of computing.

Some of the problems on this problem set will require you to use our online CFG editor and
TM editor tools.

A few of the problems here reference material that would have been covered in today's lecture. Since that lecture
has been canceled, we've clearly marked what these problems are on the problem set. We're planning to cover the material
needed to solve those problems on the Monday when we get back from the break. If you'd like to get started earlier,
we've posted the set of lecture slides we were going to use today under the "Lectures" section. You are not required
to read over these slides to complete this problem set - again, we'll cover everything we need on Monday after the
break.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Second Midterm Logistics

November 11, 2018

Our second midterm exam is tomorrow, Monday November 12th, from 7PM - 10PM. Locations are divvied up by last (family)
name as follows, which matches the same assignments as the first exam:

A - L: Go to Bishop Auditorium.

M - Z: Go to Cubberley Auditorium.

The exam is closed-book, closed-computer, and limited-note. You can bring a single,
double-sided sheet of 8.5" × 11" notes with you to the exam. The exam covers the topics from Lectures 06 - 13
(binary relations up though and including induction), and focuses on the topics from PS3 - PS5.

Good luck!

Problem Set 7 Released

November 9, 2018

Problem Set Seven goes out today. It's due next Friday at 2:30.
This problem is all about regular expressions, properties of the regular languages, and the limits of the
regular languages. This will be your first time formally proving that certain problems can't be solved with
a certain type of computer!

Some of the problems on this problem set are designed to be completed online using our handy
Regular Expression Editor. There is no coding component to this assignment.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Problem Set Six goes out today. It's due next Friday at 2:30.
This problem is all about finite automata, regular languages, and their properties. We hope that you have
fun with this one as you start exploring mathematical models of computers!

Some of the problems on this problem set are designed to be completed online using our handy
DFA/NFA Editor. There is no coding component to this assignment.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Problem Set 5 Released

October 26, 2018

Problem Set Five goes out today. It's due next Friday at 2:30.
This problem set explores induction in all its many forms and serves as a capstone to the first half of CS103.
Once you've finished it, take a minute to look back over what you just did. Did you imagine you'd be here
a little over a month after we started with set theory?

This assignment has a programming component. You can download
the starter files either using the previous link or in the
"Assignments" section below.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Midterm Logistics

October 19, 2018

Our first midterm exam is this upcoming Monday from 7PM - 10PM. Locations are divvied up by last (family)
name as follows:

A - L: Go to Bishop Auditorium.

M - Z: Go to Cubberley Auditorium.

The exam is closed-book, closed-computer, and limited-note. You can bring a single,
double-sided sheet of 8.5" × 11" notes with you to the exam. The exam covers the topics from Lectures 00 - 05 (set
theory up through and including first-order logic), and focuses on the topics from PS0 - PS2.

We've posted a set of extra practice problems along with
four practice midterm exams. Feel free to use those as study resources and to contact us with any questions you might have!

Problem Set Four goes out today. This one doesn't have a checkpoint - all
the problems are due on Friday of next week at 2:30PM. This problem set continues
our exploration of discrete structures and ventures from the finite (through graphs) to the infinite (through
functions and cardinality).

We strongly recommend reading over our Guide to Cantor's Theorem before
starting this problem set, since it contains a number of important definitions you'll need along the way.

This assignment has a programming component. You can download
the starter files either using the previous link or in the
"Assignments" section below.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Problem Set 3 Released

October 12, 2018

Problem Set Three goes out today. It consists of two parts - a checkpoint
assignment due on Monday at 2:30PM, and some remaining problems due next Friday at 2:30PM. This problem set explores
discrete structures (binary relations and functions), what they look like, how they act, and how to prove things
about them. A few of the problems from this problem set reference concepts that we will be covering this upcoming Monday.
They're clearly marked as such.

This assignment has a programming component. You can download
the starter files either using the previous link or in the
"Assignments" section below.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Problem Set 2 Released

October 5, 2018

Problem Set Two goes out today. It consists of two parts - a checkpoint
assignment due on Monday at 2:30PM, and some remaining problems due next Friday at 2:30PM. In it, you'll dive into
propositional and first-order logic and get some more practice with your proofwriting.

Before you start this problem set, you may want to play around with our Truth
Table Tool, which you might want to use on some of the earlier problems. Additionally, you should read over our
Guide to Negations and
Guide to Logic Translations, which go into some depth about skills you'll need on the problem set.

We've also released a logic translation checklist. This
handout details five specific points to watch out for when translating statements from English into first-order logic.
Please read over this checklist and apply it to all the translations you write before you submit them - we'll be doing
the same when we're grading things!

This assignment has a programming component. You can download
the starter files either using the previous link or in the
"Assignments" section below.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Problem Set 1 Released

September 28, 2018

Problem Set One goes out today. It consists of two parts - a checkpoint
assignment due on Monday at 2:30PM, and some remaining problems due next Friday at 2:30PM. This problem set explores
set theory and mathematical proof techniques, and we hope that you have a lot of fun with it!

We've also released a number of handouts alongside this problem set. The handout on
mathematical vocabulary talks about the precise
meanings of certain mathematical terms. Our Guide to Indirect
Proofs talks about writing proofs by contradiction and contrapositive.

We've also released a handout with ten techniques to get
unstuck if you find yourself unsure how to proceed. Please look over this handout - there's a lot of good problem-
solving techniques in there!

Finally, we've released our proofwriting checklist. This handout
details five specific points to watch out for when writing proofs. Please read over this checklist and apply it to all
the proofs you write before you submit them - we'll be doing the same when we're grading things!

This assignment has a small programming component. You can download
the starter files either using the previous link or in the
"Assignments" section below.

You're encouraged to work on this assignment in pairs. It's a great way to bounce ideas off of someone and
get extra pairs of eyes on your work.

Good luck!

Two Quick Links on Infinity

September 26, 2018

For those of you who are interested in learning more about the nature of infinity
and just how weird it is, I recommend checking out
this video about the Hilbert Hotel,
which is closely related to our proofs about integers and naturals. For a totally different,
but absolutely beautiful, perspective on Cantor's theorem, check out
this article by William Kuszmaul, a recent Stanford grad who's now working at MIT on his PhD!

Welcome to CS103!

September 21, 2018

Welcome to CS103, an introduction to discrete mathematics, computability
theory, and complexity theory! We have an great quarter ahead of us filled
with interesting and exciting results in the power and limits of
computation, and I hope that you're able to join us.