Book Chapters |
Instructor Luke Hunsberger Lectures Mon/Wed @ 1:30 - 2:45 p.m., OLB 205 Labs Thu @ 1:30 - 2:45 p.m., OLB 105
The primary textbook for the course is: Sets, Logic and Maths
for Computing by David Makinson (c) 2008, published by
Springer-Verlag. It appears that this book
is still available
ONLINE (for free) through Vassar's Springer Link
feature.
We will use the Scheme programming language and the DrScheme
software, available
at drscheme.org. (Pay no
attention to the pop-up window concerning DrRacket.)
The lab sessions will initially be devoted to getting familiar
with the DrScheme programming environment. (It is very similar to
DrRacket.) Some lab sessions may also include lectures.
Periodically (about once every two weeks), a lab session will
include a brief paper-and-pencil, closed-book quiz. All quizzes will be
announced in advance (i.e., no "pop" quizzes).
There will be regular assignments, usually about one every two
weeks. Most of the problems on these assignments will require you
to write, test and run programs written in Scheme; however, some
of the problems, particularly in the first part of the semester,
will require you to write proofs using techniques discussed in
class. You are strongly encouraged to use PENCIL when writing
proofs! (It's a lot easier to erase than ink.) It is not
necessary to use a word processor for proofs; paper-and-pencil is
fine. Assignments involving computer programs will be submitted
both electronically and in paper form. Whether involving
handwritten proofs or typed-up programs, all assignments must be
clearly composed and laid out neatly on the page. Your programs
must include concise comments that make it clear what you are
doing; and your proofs must be legible. In general, at least
one blank line should separate consecutive problems/programs.
All assignments must be done individually. No
collaboration of any kind is allowed. Any cases of inappropriate
collaboration (cheating) have to be reported to the department
chair, and will be dealt with promptly. Any sharing of code---even
if it's just pointing out something on the screen that you've
written---will be considered cheating.
There will be one in-class exam during the semester, shortly
before Spring break. There will also be a final exam. All exams will
be paper-and-pencil affairs, with open-book/open-notes, but no
electronic devices (e.g., no calculators or computers), except
that we may provide you with access to an online browser that is
restricted to the cs145 website.
The elements of the course (exams, quizzes, labs and assignments) will be
weighted as follows when determining your overall grade:
Academic accommodations are available for students with
disabilities who are registered with the Office of Disability and
Support Services. Please schedule an appointment with the
instructor early in the semester to discuss any accommodations for
this course which have been approved by the Director of Disability
and Support Services as indicated in your accommodation letter.
Overview
This course introduces a variety of fundamental concepts, tools,
algorithms and techniques that are used throughout the field of
Computer Science. Topics include: sets, relations, functions, proof
techniques, induction, structural induction, recursion, structural
recursion, proving program correctness, probability and logic.
The course will emphasize the exploration of these
topics through computer exercises; however, it will also focus on
developing proof techniques in handwritten exercises.
Nuts and Bolts
In case the above link doesn't work for you, here are:
instructions
for accessing the book online!
We will be following the chapters in this book quite closely;
however, there will be occasional supplements distributed in
class. The material in the text will be complemented by
regular programming assignments.
Labs and Quizzes 20% Assignments 45% Exams 35% (midterm: 15%, final: 20%) Calendar
Week
Monday
Wednesday
Thursday
0
Jan. 18
Introduction.
Scheme
summary.
Read sections 1.1-1.4 in
the textbook!
Notes from class;
Proof from class.
Jan. 19
Lab 1 SOLUTIONS!!:
Scheme summary.
1
Jan. 23
Continued with Chapter 1.
Read 1.5,1.7 in the textbook.
Jan. 25
A really
explicit proof; and beginning to implement sets as lists in
Scheme.
Code from
class. (Open this file in DrScheme and click the RUN button!
Make sure the asmt-helper.txt file is visible, though.)
Jan. 26
Lab 2 SOLUTIONS!!: Implementing
functions concerning sets.
2 Jan. 30
Starting Chapter 2: Relations!
Read: 2.1, 2.2.2, 2.3.1, 2.4.
Code from class,
Interactions,
Some notes,
Proof from class.
Feb. 1
More fun with Relations.
Proof from class.
Feb. 2
Lab 3 SOLUTIONS!!.
3 Feb. 6
More fun with Lab 3; Reflexive, Symmetric and Transitive Relations!
Feb. 8
Equivalence Relations and Partitions
Read: 2.5; 3.1-3.3
Proof that
an equivalence relation determines a partition.
Feb. 9
Lab 4 SOLUTIONS!!
4 Feb. 13
More fun with equivalence relations and partitions!
Feb. 15
A last word about equiv. relns. and
partitions; but then starting with Functions in Chapter 3 (Sections
3.1-3.3).
Proof
from class
Feb. 16
Lab 5 SOLUTIONS!!
5
Feb. 20
Induction and Numerical Recursion
NumRec handout
Feb. 22
Feb. 23
Lab 6 SOLUTIONS!!
6
Feb. 27
MIDTERM EXAM over everything before
Induction!
Feb. 29
Midterm solutions
Problems 1-3 Solutions,
Problem 4 SolutionMar. 1
Lab 7 SOLUTIONS!!
SPRING
BREAK!
7
Mar. 19
Proofs by Induction
Proofs from class.
Mar. 21
More proofs by induction.
Proofs from class.
Read Section 4 through page 99.
List-based Recursion handout.
Practice induction
problems;
Answers to practice
induction problems.
Mar. 22
Lab 8 SOLUTIONS!!
8
Mar. 26
Finishing up induction; starting on Chapter 5 (Counting)
Proof from class;
Notes from class.
Optional Handout on Less-Than.
Mar. 28
Permutations and Combinations; Dice, Poker and Bridge.
Code from class
Mar. 29
Lab 9 SOLUTIONS!!
9
Apr. 2
More "counting" examples.
Code from class;
Proofs from class.
Apr. 4
Probability: Sample space, probability distribution function,
events, equiprobable outcomes, disjoint events, random variables,
expected value of a random variable.
Code from class
Start reading Chapter 6.
Apr. 5
Lab 10 SOLUTIONS!!.
10
Apr. 9
Expected value of a random variable, conditional probabilities,
independent events
Notes from class,
Code from class.
Apr. 11
Finishing up probability.
Code from class,
Helper file.
Apr. 12
Lab 11 SOLUTIONS!!.
11
Apr. 16
Propositional Logic
Code from class.
Start reading Chapter 8. (NOTE: We will not cover Chapter 7.)
Apr. 18
More Propositional Logic
Code from class.
Apr. 19
Lab 12 SOLUTIONS!!.
12
Apr. 23
Entailment and Inference in Propositional Logic; the Resolution Rule.
Apr. 25
Inference in Propositional Logic
Notes,
UNICORN.
Apr. 26
Lab 13 SOLUTIONS!!
13
Apr. 30
Prolog code.
FOR OFFICE USE ONLY
FOR OFFICE USE ONLY