CS 103 — Mathematical Foundations of Computing — Spring 2014

[general info]  [lecture notes] [homeworks] [exams]

what's new
Welcome to CS103! This course is about mathematical techniques that are useful in computer science, to analyze algorithms and prove impossibility results. The course has four parts: (1) introduction to the kind of discrete mathematics that is useful in computer science, including sets, graphs and proofs by induction; (2) finite automata, which model simple linear-time algorithms and capture the power of regular expressions — we will be able to understand the power and limitation of this class of algorithms inside out; (3) turing machines and undecidability, in which we study the power of arbitrary algorithms that are allowed arbitrarily large running times — we will show that there are several important problems that are unsolvable even under such conditions; (4) complexity theory and NP-completeness, which is concerned with the study of what we can do with efficient algorithms.

general information

Instructor: Luca Trevisan, Gates 474, Tel. 650 723-8879, email trevisan at stanford dot edu


Classes are MWF, 12:50-2:05, 420-040

Discussion sections are Tuesdays, 5:30-6:30pm in Thornton110

Office hours:

You can ask questions using piazza

You can reach the whole CS103 staff at cs103-spr1314-staff@lists.stanford.edu


Grading: the homeworks are worth 60% of the grade, the final 25% and the midterm 15%


classes and lecture notes

so far:

the plan:

discussion sections


Homeworks are out on Friday and are due the following Friday.
  1. Homework 1 is due 04/18 (solutions)
  2. Homework 2 is due 04/25 (solutions)
  3. Homework 3 is due 05/02 (solutions)
  4. Homework 4 is due 05/09 (solutions)
  5. Homework 5 is due 05/16 (solutions)
  6. Homework 6 is due 05/23 (solutions)
  7. Homework 7 is due 05/30 (solutions)


The midterm will be in class, on April 30. The syllabus for the midterm is up to, and including, the 04/23 lecture, but it does not include logic. The midterm is closed-book and closed-notes, but you can use one sheet of notes (double-sided is ok)

The final will be on June 6, 8:30-11:30am, in 420-40. The syllabus for the final is up to the 5/28 lecture. The final exam is closed-book and closed-notes, but you can use two sheets of notes (each can be double-sided)

Practice problems for the final and solutions