CS 135 Discrete Structures - Fall 2009

Instructor:
Dave Naumann with office hour: Tues 2:30-3:30 and by appointment; pipeline ID dnaumann

Teaching Assistant:
Matt Burlick, pipeline ID mburlick, hours TBA in Burchard 127

Prerequisite:
There is no course prerequisite, but some programming experience will be helpful.

Meetings:
Tues+Thurs 1-2:15 in BC 304, and lab Thurs 2:30-4:30 in BC 310.

Required textbooks:
Discrete Mathematics and Its Applications, 6th edition 2007, by Kenneth Rosen, ISBN: 0072880082

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

Software:
We will use DrScheme which is free and available for many platforms. During the first lab session you will download it.

Mailing list:
cs135

You must follow this link and sign up: I will not be using the WebCT mailing list (but WebCT will be used for homework assignment and submission). If you want to use a non-Stevens email address, please let me know as otherwise I assume such requests are spam.

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.

Outline:
This preliminary outline is likely to change and will be updated during the semester as necessary.

We'll cover roughly chapters 1-4, and 8, in the Rosen textbook. Section numbers with dots, like 1.1, refer to Rosen; readings in the Little Schemer are written like LS2 for chapt 2.

Homework is due Sunday midnight unless otherwise announced (i.e., 12am Monday).

week topic reading assignment
1 predicate logic xx-xxii, 1.1-1.4 sect 1.1(exercises 10 and 12), 1.2(10,16,18,22), 1.4(6,10,18)
2 proof, sets 1.5-1.7 (thru p90), LS chapt 1 1.5(4a,c,e; 14c), 1.6(6,10), 1.7(14) Use line-numbered proof style for these.
3 sets, functions 2.1-2.3, LS chapt 2 2.1(2a,2b,5), 2.2(12,16a), 2.3(10,16) For proofs, try to use calculational style.
4 sequences, induction 2.4, 4.1 just thru p270 2.2(22), 2.3(8,12,20,22), 2.4(2)
5 induction, recursion 4.2-4.3, LS chapt 3 4.1(4,6,18a-e), 4.2(12)
6 algorithms, complexity 3.1-3.3 3.1(4,6,8,24) in Scheme (for 24 use list of pairs)
7 catch up (no Tues class) LS chapt 4 none (but test this Thurs in lab)
8 recursive algorithms (samples in lect12.ss) 4.4, LS chapt 5 hw25oct09.pdf
9 relations 8.1-8.3, LS chapt 7 8.1(2,4,30,32), 8.3(2,6,8), lab completion
10 relations 8.4-8.5, LS chapt 8 8.4(16,18), 8.5(2,6,16,20,22,24)
11 integers, division, primes 3.4-3.5 3.4(4,8,16,20), 3.5(4abcd,10,24)

12 integer algorithms, number theory 3.6-3.7 3.6(20), 3.7(2abcd,6)
13 number theory: crypto (no Thurs class) 3.7 none
14 graphs 9.1 3.7(18)
15 system modeling review none

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.

During lecture, please refrain from using mobile phones or otherwise being impolite. Use of notebook computers is mandatory in labs, and we may often use them in lectures. But in lecture they can sometimes be disruptive or distracting. The instructor reserves the right to say notebooks (and similar devices like PDAs) must be put away.

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

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.

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.

Outcomes:
These are the official ones, which are only slightly revised from here

  1. [sets] Be familiar with sets, functions and relations (requirements, math-stat)
  2. [design] Be able to use sets, functions, and relations in the specification of problems and design of their solutions (requirements)
  3. [lists] Be familiar with lists and list operations, and their manipulation in Scheme (environments)
  4. [modular] Be familiar with properties of modular arithmetic (math-stat)
  5. [primes] Be familiar with primes, relative primality, the Euclidean gcd algorithm and the Chinese Remainder theorem (math-stat)
  6. [number names] Be able to make use of various representations of integers, including the binary and base-B systems (math-stat)
  7. [induction] Be able to use induction to design and verify recursive Scheme programs (software, problem solving)
  8. [Scheme] Be able to implement all algorithms discussed in Scheme (software)





naumann 2009-12-07