Syllabus for Computer Science 202a, Mathematical Tools for Computer Science. Instructor: James Aspnes.

# 1. Meeting times

Lectures are Mondays, Wednesdays, and Fridays from 10:30am to 11:20pm in AKW 400.

# 2. On-line course information

On-line information about the course, including copies of all handouts, can be found using the URL http://pine.cs.yale.edu/pinewiki/CS202. This will also be the main location for announcements about the course, lecture schedules, and so forth. Please check it frequently.

# 3. Textbook

Norman L. Biggs, *Discrete Mathematics*, second edition. Oxford University Press, 2002. ISBN 0 19 850717 8. QA76.9 M35 B54 2002.

# 4. Course requirements

Ten weekly homework assignments (approximately 50 percent of the grade), a midterm (15 percent), and a final (35 percent).

# 5. Use of outside help

Students are free to discuss homework problems and course material with each other, and to consult with the instructor or a TA. Solutions handed in, however, should be the student's own work. If a student benefits substantially from hints or solutions received from fellow students or from outside sources, then the student should hand in their solution but acknowledge the outside sources, and we will apportion credit accordingly. Using outside resources in solving a problem is acceptable but plagiarism is not.

# 6. Clarifications for homework assignments

From time to time, ambiguities and errors may creep into homework assignments. Questions about the interpretation of homework assignments should be sent to the instructor at `<aspnes@cs.yale.edu>`. Clarifications will appear in the on-line version of the assignment.

# 7. Late assignments

**Late assignments will not be accepted without a Dean's Excuse.**

# 8. Topics

The course will cover the minimal topics in mathematics that you will need to survive the ComputerScience major. We assume that coming in to the course you will already have a thorough grounding in high school algebra and at least a vague recollection of calculus. By the end of the course, you should:

- Understand definitions and proofs, including quantifiers and induction.
- Understand basic set theory and set-theoretic notation.
- Be comfortable with manipulating commonly-used functions like exponentials and logarithms.
- Know how to count (not as easy as you think).
- Understand asymptotic notation.
- Know how to solve recurrences.
- Understand basic probability.

You will also be expected to pick up a passing familiarity with standard mathematical concepts that show up in computer science, including graphs, algebraic structures (e.g., groups, rings, and fields), linear algebra and matrices, and basic number theory.

Because CS202 is only a one-semester course, coverage of most topics will necessarily be rather sketchy. If you expect to do further work in the theoretical end of computer science or in math-intensive fields like graphics, vision, neural networks, robotics, or scientific computation, you should plan to take further courses in mathematics (a serious linear algebra course is particularly recommended). One of the goals of CS202 is to provide you with the mathematical maturity you will need to profit from such courses.

For a more detailed list of possible topics, see WhatYouShouldKnowAboutMath.