CS 135 Discrete Structures - Spring 2012

1  General information

Instructor:
Dave Naumann with office hour: Wed 4-5pm and by appointment (pipeline ID dnaumann)
Teaching Assistant:
Yifei Bao (pipeline ID ybao); office hours M 4-5, T 2-3, R 2-3, in B 127.
Meetings:
Lectures: Mon+Wed+Fri 11–10:50 in Babbio 122
Labs: Lab A Tues 10-11:40, Lab B Tues 3-4:40, Lab C Thurs 3-4:40
Mailing list:
To contact the instructor or TA, please use their pipeline mail —not Moodle mail.
You may use the forum in Moodle if you want to communicate with the whole class.
Prerequisite:
There is no course prerequisite, but some programming experience will be helpful.
Required textbooks:
Discrete Mathematics and Its Applications, 7th edition 2012, by Kenneth Rosen, ISBN: 0073383090 (YOU MUST HAVE THE 7th EDITION!)

The Little Schemer - 4th Edition, by Daniel P. Friedman and Matthias Felleisen, ISBN 0-262-56099-2

Software:
We will use DrRacket (a programming environment for the language also known as Scheme), which is free and available for many platforms. During the first lab session you will install it.
Catalog description:
The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat’s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course.

2  CS 135 Policies

You, your instructor, and the TA are bound by the Stevens Honor Code.

Students are responsible for reading and understanding the course policies in these web pages and for announcements made in class and in the course email list.

Use of notebook computers is mandatory in labs.

During lecture, texting and many uses of notebook computers may be distracting to the user and to others. Therefore they are disallowed during lecture. This policy is, however, open to discussion and negotiation.

The course score is a weighted average of the following categories.

Letter grades are assigned on the usual basis: A = 90–100 B+ = 86–90 B = 80–86 C+ = 76–80 C = 70–76 D+ = 66–70 D = 60–66 F = 0–60
The instructor reserves the right to give a higher grade than your course score, if your performance on later assignments and exams is very strong.

Labs are “closed”: the assignment is given, completed, and graded during the lab session. Group work is at the discretion of the TA.

There are no make-ups for labs or exams. The only possible exceptions are in the case of death in the student’s immediate family or near-death experience of the student; advance notice is required.

There may be short, unannounced quizzes in class, which count in the “homework” grade category. The purpose is to motivate attendance and to help both you and your instructor gauge your progress. There won’t be make-ups, but in calculating your homework average we’ll adjust the score to have an effect like dropping your lowest score.

This is a course on discrete math, not on Scheme. We will use a study a small, subset of the language in order to (a) develop skill in pure functional programming and (b) focus on the math. There will be about 10 homework assignments, often involving small Scheme programs. Homework will be accepted up to 24 hours late, at a penalty of 40% grade reduction.

Except when groups are explicitly allowed, work must be done individually. You are encouraged to discuss the problems with your classmates but you must not share details of the solutions. If you are unsure whether you have shared too much, discuss the situation with the TA or instructor; it is your obligation to avoid even the appearance of cheating.

3  CS 135 Week by week

This will be revised and augmented during the semester.

About the assigned readings below: skim the readings before class, read thoroughly soon afterwords.

Sections refer to the Rosen textbook, 7th edition, unless marked LS which means The Little Schemer.

week of Jan 16
intro to the course and to logic

Read Rosen sects 1.1–1.3, Little Schemer chapts 1–2

Here is the first lab assignment

week of Jan 23
predicate logic

Read Rosen sects 1.4–1.6

week of Jan 30
intro to proofs; set theory

Read sects 1.7–1.8

week of Feb 6
functions

Read 2.1–2.3

week of Feb 13
sequences, induction

Read 2.4, 5.1

week of Feb 20
induction and recursion

Read 5.2

no class Mon; Tues = Mon

week of Feb 27
structural induction

Read 5.3 and 3.1

week of Mar 5
review and exam

Read: review

week of Mar 12
Spring recess
week of Mar 19
algorithms, tail recursion

Read LS chapt 5.

week of Mar 26
relations

Read 9.1–9.3

week of Apr 2
transitive closure, equivalence

Read 9.4–9.5

no class Fri

week of Apr 9
integers, division

Read 4.1–4.3

week of Apr 16
number theory

Read 4.4–4.5

week of Apr 23
cryptography; graphs

Read 4.6; Read 10.1–10.2

week of Apr 30
graphs

second midterm is Mon

last day of class is Wed

4  CS 135 Goals and assessment

To assess student progress we focus on key skills that can be demonstrated. Here is the official list of course outcomes to be achieved by the end of the semester:

Formal logic
- Unfold a definition, apply a theorem, use deductive rules, for example in proving that a given relation is a function or a function is injective.
Relations
- Define basic properties of relations such as transitivity and injectivity, in words and using logical formulas.
Scheme
- Implement recursive functions on lists, such as append or reverse. For relations represented by lists of pairs, implement operations such as transposition and intersection.
Induction
- Use induction and equational reasoning to prove equations about recursive functions, such as associativity of append.
Modular arithmetic
- Simplify expressions by using laws of modular arithmetic.
Primes
- Define basic properties such as relative primality. Implement Euclid’s algorithm in Scheme.

The list can also be found here

CS 135 Spring 2011          Revision: 1.2 , Date: 2012/01/17 03:23:12
This document was translated from LATEX by HEVEA.