Computer Science 243

Discrete mathematics and Functional Programming
Fall 2013
Thomas VanDrunen



Meeting time: MWF 2:00-3:05 pm.
Meeting place: Science 131

Office hours: MWThF 3:15-4:45 pm; Th 11:00 am--12:00 noon.
Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs243
Follow @TVD_CSCI243


Syllabus

ML programming guide

Starting with the assignment due Sept 9, please turn in all ML code by email to csci243ta@gmail.com. Non-ML homework should still be turned in on paper.


Final exam: Thursday, Dec 19, 10:30 am


Color code:
Green: Background material---read carefully before class. I will not cover this. You are responsible to know it ahead of time.
Magenta: Core material---read before class. I will briefly review and highlight the content, but not lecture on it. Most of our time in class will be spent working on problems from this material.
Cyan: Advanced material---skim before class, read after class. Usually this will be for hard material that I do not expect you to get on a first read. Familiarize yourself with it before class; I will lecture on it
Moon's dayWoden' s dayFrigga's day

Aug 26

NO CLASS

Aug 28

Set. Sets and elements. 1.(1-2)
Slides

Read 1.(3-5)
Optional: Video for section 1.4, Video for section 1.5

Aug 30

Set operations; visual verification. 1.(3-5)
Slides

Pg 12: 1.3.(11-14, 16)
Pg 16: 1.4.(1-6, 19)
Pg 20: 1.5.(8-11)
Read 1.6-9
Optional: Video for section 1.6

Sept 2

NO CLASS

Sept 4

Intro to ML; cardinality and Cartesian products. 1.(6-9)
Slides

Pg 26: 1.6.(1-5)
Pg 32: 1.8.(1, 4, 5)
Note that the ML problems should be submitted on paper with the rest of the assignment.
Skim 1.(10&11)

Sept 6

Finishing Cartesian products; making things in ML. 1.(10-11)
Code from class

Pg 36: 1.9.(3, 4, 8, 9, 10, 13, 15)
Pg 40: 1.10.(1-4)
Skim 1.(11&12)

Sept 9

Functions in ML. 1.(11-13)
Code from class

Pg 48: 1.11.(4, 6, 8, 10)
Pg 50-51: 1.12.(3, 5, 8)
Read 2.1
Skim 2.2

Sept 11

List. Introduction to lists. 2.(1 & 2)
Code from class

Pg 70: 2.1.(2-4, 7)
Pg 74: 2.2.(2, 3, 8, 9)
Skim 2.3
Read 2.4

Sept 13

More about lists; powersets. 2.(3 & 4)
Code from class

Pg 74: 2.2.(11, 13, 15)
Pg 82: 2.4.(8-12, 14 & 15)
Read carefully 2.5
Skim 2.6

Sept 16

A language processor. 2.(5 & 6)
Code from class

Pg 91: 2.B
Read carefully 3.(1&2)
Read 3.(3 & 4)

Sept 18

Proposition. Propositional forms; boolean values; logical equivalence. 3.(1-4)
Slide
Code from class

Pg 102: 3.3.(5 & 6)
Pg 105: 3.4.(2, 4, 8-12)
Read 3.(5-7)

Sept 20

Conditionals. 3.(5-7)
Slides
Code from class

Pg 108: Ex 3.5.(1 & 2)
Pg 115: Ex 3.7.(1 & 2, 7-9, 12 & 13)
Read 3.(8 & 9)

Sept 23

Arguments. 3.(8 & 9)
Slides

Pg 119: 3.8.(3 & 5)
Pg 122: 3.9.(3-7)
Read carefully 3.(10 & 11)
Skim 3.(12 & 13)

Sept 25

Predicates; quantification. 3.(10-13)
Code from class

Pg 133: 3.12.(1 & 2)
Pg 135: 3.13.(4 & 5)
Read 3.14

Sept 27

Quantification and arguments. 3.14
Slides

Pg 139: 3.14.(6-9)

Sept 31

Review

Oct 2

TEST

Oct 4

Proof. Introduction to proofs; subset proofs. 4.(1 & 2)
Proof we didn't get to in class

Pg 158: 4.2.(2-7)
Read 4.(3 & 4)

Oct 7

Set equality proofs; set emptiness proofs. 4.(3 & 4)

Pg 160: 4.3.(3, 14, 15, 18).
Pg 161: 4.4.(5, 6)
Read 4.(5-8)

Oct 9

Conditional proofs. 4.(5-8)

Pg 162: 4.5.(1, 4, 5)
Pg 164: 4.6.(2, 5)
Pg 165 : 4.7.(1, 6)
Review 2.4, especially Ex 2. 4.15
Skim 4.9

Oct 11

Powersets. 4.9
Slides

Pg 174: 4.9.(1, 3, 4, 6)
Skim 4.(10 & 11)

Oct 14

From theorems to algorithms. 4.(10 & 11)
Code from class

Pg 177: 4.10.(3, 4, 6)
Read carefully 5.1
Read 5.(2 & 3)

Oct 16

Relation. Introduction. 5.(1-3)
Slides
Code from class

Pg 205: 5.3.(5, 6, 8, 10-14)
Read 5.4

Oct 18

Properties of relations. 5.4

Pg 208: 5.4.(3-5, 22, 24, 25, 26). Due Oct 25
Read 5.5

Oct 21

NO CLASS

Oct 23

Work more on properties of relations

Oct 25

Equivalence relations 5.5

Pg 212: 5.5.(5, 7, 9, 10)
Read 5.(6 & 7)

Oct 28

Transitive closure. 5.(6 & 7)
Code from class

Pg 217: 5.6.(1,3)
Pg 222:5.7.(3, 4, 5)

Oct 30

Review

Nov 1

TEST

Nov 4

Self Reference. Recursive types. 6.(1-3)
Slides
Code from class
Code for the assignment

Pg 260: 6.2.(6-8, 14-17)
Read 6.4

Nov 6

Structural induction. 6.4

Pg 268: 6.4.(3, 4, 6, 7)
Skim 6.(5 & 6)

Nov 8

Mathematical induction. 6.(5 & 6)

Pg 273: 6.5.2&4
Pg 278: 6.6. (2 & 3)
Read 6.9 carefully
Skim 6.10

Nov 11

Loop invariants. 6.(9 & 10)

Pg 306: 6.10.(2-5). Due 11/15

Nov 13

More on loop invariants. 6.(10-11)
Code from class

Read 7 intro and 7.1 carefully
Read 7.2
Skim 7.3

Nov 15

Function. Introduction. 7.(1-3)
Code from class
Code for the assignment

Pg 331:7.2.(2 & 3)
Pg 335: 7.3.(3, 4, 8)
Read 7.4
Skim 7.5

Nov 18

Images and inverse images. 7.(4 & 5)

Pg 342: 7.4.(2, 5, 8, 9, 10)
Read 7.(6-8)

Nov 20

Function properties; inverse functions; composition. 7.(5-8)

Pg 346: 7.6.(2, 3, 6)
Pg 351: 7.8.(1, 5, 6)
Skim 7.9

Nov 22

Cardinality. 7.9
Slides

Pg 359: 7.9.(1 & 2)

Nov 25

No-credit quiz. Countability. 7.15
Slides

Nov 27

NO CLASS

Nov 29

NO CLASS

Dec 2

Review

Dec 4

TEST

Dec 6

Map, foldl, and foldr; modeling functions. 7.(5, 14)
Code from class and for the assignment

Pg 344: 7.5.(2, 3, 4, 5, 7) Due 12/11
Pg 381: 7.B (of section 7.14) Due 12/11
Read 5.(8 & 9)

Dec 9

Partial order relations, posets, and topological sorts. 5.(8 & 9)
Slides

Pg 226: 5.8.(1-5)
Pg 231 5.9.(1 & 8)
Skim 6.12

Dec 11

Huffman encoding. 6.12
Slides
Code from class and for the assignment

Pg 325: 6.(A-D)

Dec 13

Review