CSC280/480, Spring 2018: Computer Models and Limitations
Instructor:
Prof. Lane A. Hemaspaandra.
Grad TA:
Andrew ReadMcFarland.
Workshop (though called Recitations in CDCS) Leaders:
Shir Maimon
and
Brandon Willet.
UG TAs (they also are the Tutorial Leaders):
Jackson Abascal,
Michaela Houk,
Joel Kottas,
Andrew Peck, and
Colin Pronovost.
Tutorial Times:
Here.
The Course Catalog Description:
This course studies
fundamental computer models and their computational
limitations. Finitestate machines and pumping lemmas, the
contextfree languages, Turing machines, decidable and
Turingrecognizable languages, undecidability.
Textbook:
Introduction to the Theory of Computation, Michael Sipser,
third edition, 2013.
Be careful
not to accidentally get the first or second edition.
Note that we will be using
the (standard, USAversion)
third edition, not the "international" (third) edition;
in the international edition apparently
some problem numbering differs, so if you use the international
third edition (which you might get if you
buy a used one, so be careful), you
may
do the wrong problems
(and so may end up with 20percent grades on some of the
tutorials as you will not have attempted the
right problems).
(And no, I don't work for the publisher;
all my books are published by Springer.)
The ISBN of the US edition (the international edition
has slightly different ISBNs) is listed by the publisher as:
ISBN10: 113318779X and ISBN13: 9781133187790.
On the other hand,
the right book is also on reserve in the library,
though you will be using
it very, very often (you may find it
comforting to sleep with it under your pillow!).
Prerequisites (very important): CSC173 and MTH 150.
Course Information Document/Syllabus:
course information document/syllabus (most current version, V. 2.2.2, last
revised 2018/3/18/932pm).
Slides:
Here (version
of 2018/1/14/532pm)
are the slides up to and including Chapter 5.
Reading Assignments, starting with the date/time the reading is DUE:
 Due 2018/1/22/1201am:
Read the Course Information Document/Syllabus.

Due 2018/1/24/1201am:
Read SIP (i.e., our Sipser textbook)
from page xi through the middle of page xiii (that is,
read, in the 3rd edition, within the "Preface to the First Edition,"
the sections called "To the Student" and "To the Educator"),
and read SIP Chapter 0,
and read SIP Chapter 1.1.

Due 2018/1/26/1159pm: Read SIP Chapter 1.2. (I mention in passing
that many of the assignedafteraWednesdayclassand also many
assignedafteraMondayclassreadings may be helpful on exercise
sets... often on the set that is due the Monday or Tuesday right
after the
week in which the readings are posted to our web site.

Due 2018/2/2/1159PM: Read SIP Chapter 1.4. This reading covers for
example what we went over in class (the part that came after
finishing the Problems handout) on 1/31.

Due 2018/2/6/1159PM (note: suggested time to START this
reading is right after the 2/5 class's lecture, since this material,
which is SIP's treatment of what Read will lecture about on 2/5, is
important on
two of the problems on the 2/7 sheet of inclass problems):
Read SIP Chapter 1.3.
 Due: [the two parts each specify their due date/time]. Note: The
information/topics/material/techniques/directions/flavor/etc. of
Part 1 of this reading is in scope as to questions related to that
appearing on Midterm I as to Chapter 2; in contrast, the material in
Part 2 of this reading will not be asked about on Midterm I.
PART 1 (due 2018/2/20/1159PM):
Read SIP from the start of Chapter 2 through
the end of Section 2.3, except not the proofidea
and proof of Theorem 2.34
and also, if you wish, you can
skip until Part 2's later due date the readings
mentioned in Part 2.
PART 2 (due 2018/23/1159PM):
The subsection of 2.1 titled Ambiguity; from
right AFTER the statement of Theorem 2.9 through
the end of Section 2.1;
the subsection of 2.2 titled Equivalence with ContextFree Grammars;
the proof on our slides of the pumping lemma for CFLs (that is, I
suggest you do not read the book's different proof but that you do
read the proof sketched on our slides).

Due 2018/3/6/1159PM (and assigned on 2018/3/1/916PM):
Read
SIP from the start of Chapter 3 through the end of Section 3.1.

Due 2018/3/18/1150PM: Read SIP, Section 3.2.
Also (and the Terminology
subpart of this basically, except for a brief comment, wasn't
at all covered in class, but is interesting and may help you with
later SIP readings and in putting things in context as to
the notion of an algorithm)
read SIP Section 3.3.
Exercise Sets, starting with the set number and then
at which tutorial session you will
hand in parts A and B of the given set (all exercise and
problem numbers are from SIP unless otherwise stated):
 Exercise Set 1, 1/221/23 (which means that "parts A and B" must as usual be handed in
at the start of *your* assigned 1/22 and 1/23 tutorial; except Set 1 is a
very special case at there ARE no parts A and B to Set 1 as there are no
questions on Set 1, and so your grade will be 100 if you are there on time
(see the syllabus for how that is defined) and 0 if you are not; if you
don't have an assigned tutorial and thus don't show up you'll still get a
0, so do be at the 1/17 class to get assigned to a tutorial):
This meeting
will be to meet your tutorial leader; and to chat with that leader about
your background (you MUST have already passed CSC 173 and MTH 150 or the
MTH170sequence150substitutemodule); and to with luck get from your
tutorial leader advice on how to do well in this course; and perhaps to
chat with the leader about what the course is about.
 Exercise Set 2, 1/291/30 (which means
that "parts A and B" must as usual be
handed in at the start of *your* assigned 1/29 and 1/30 tutorial; the numbering of this on your handins
for the SIP ones is pretty clear, as per the syllabus, but as I on the parts A and B added, as I sometimes will,
and extra problem, probably the best thing to do is hand in the problems in the right order, and for the added problem,
just start you answer with "Problem: similarly to ....", that is, write the problem there on your handin so it is clear what you are solving):
Part A: Exercises 1.4a; 1.5c; 1.6ab; 1.7ce;
similarly to example 1.38, give a formal description as a 5tuple of the NFA in Example 1.68a.
Part B: Exercises 1.4e, 1.5d, 1.6cd, 1.7b;
similarly to example 1.38, give a formal description as a 5tuple of the NFA in Exercise 1.16a.
Part C: [Reminder: Part C problems are often hard, or may use tools
that you have not seen, so don't be upset if you can't solve some of
them.]
This is actually an atypical Part C. This week's Part C (and
it has a wildly hard bit of what one might
unofficially consider a "Part D" at its end!) is a mix of easy
and hard problems; you can find it as the 1/29+1/31 problem
document below in
the Other Important Links section. They are a Part C so you do not have to turn them
in. HOWEVER, each group should before the start of the 1/29 class
(do their best to) solve and put
onto paper (computertypesetting is fine on this, or you can
do it by hand) in a size and format such that you can
when called on can put that piece of paper
under the room's document camera (as you saw on
Day 1, it basically projects from paper to the screens, and
that makes for instant changeovers between groups) and project it (so
perhaps use landscape mode and quite large fonts... judge for
yourself what will be best readable, or experiment
in the room... my guess is that for example 12pt would be
way too small when projected)
its solutions to the two problems assigned to it from
the document below that contains the exercises for the week of
2018/1/29.
So at your 1/24 and 1/25 WSs, you'll need to arrange for
all of you, or far more likely some subteam of your group, to be on
point on solving each of the two assigned to your group
and bringing in those solutions to the 1/29 class.
(And
Wednesday 1/31, bring in again those solutions, if any, that we did not
have time to go over
on
Monday). So perhaps
1/3 of your group might do the first of your two problems,
and 2/3 of
your group might do the second of your two problems (less easy
problems). One problem has TWO groups on point, and they (or subteams
from them) certainly may work on the problem together (but not
electronically, of course; just in person as per the course rules);
should create just one joint solution, please, on paper, that you will
show via the document cam as you present it.
So 1/29 and 1/31 will be spent having representatives of
the groups present their groups' solutions, via the document camera
in the room.
By the way, in the
unlikely even that
at your 1/241/25 WS you have time left over after doing Part A well,
then it is legal for your WS as a group to tackle your two problems as a group.
Also, of course each of you may look at or as a challenge work on the
problems assigned to OTHER groupsalthough the group each is assigned to
will be the one to put it up on the document
camera and project it and present it.
 Exercise Set 3, 2/52/6 (which means
that "parts A and B" must as usual be
handed in at the start of *your* assigned 2/5 or 2/6 tutorial;
you'll as be working in groups on Part A in your 1/31 or 2/1 WSs)
This exercise set is
available here
(updated version of 1/31/1051am), as
a pdf.
(Note added 1/31: Also, do be aware that each group has
a problemin one hard case shared by twoto come up with
an answer with before, and to present via projecting
your answer via the doc cam at, the 2/7 class.
You can find your problem in the 2/7 problems sheet that
is under Other Important Links below.)
 Exercise Set 4, 2/122/13 (which means
that "parts A and B" must as usual be
handed in at the start of *your* assigned 2/12 or 2/13 tutorial;
you'll as be working in groups on Part A in your 2/7 or 2/8 WSs)
Part A:
Exercises 1.19a, 1.21a, 1.28a, and 1.29ac (don't do
them by looking at the answers in SIP), and Problem 1.71b.
Part B:
Exercises 1.19b, 1.21b, and 1.28b; and this:
Prove that (the spaces I've put are not part of the language but
are just to make it easier to read for you; oh... and I'm
using pseudolatexish notation) {0^m 1^n 0^{m+n}  m \geq 1
and n \geq 1} is not regular (note: 00010000 for example is in that set, but
none of 010, 11000000, 0110 or (keep the \geq 1's in mind!)
the empty string are in that set.)
Part C: No part C, but if you'd like something challenging,
try to do the final problem on the 2/7 Problems sheet **without looking
at the hint I gave for that on that sheet**.
 Exercise Set 5, 2/192/20 (which means
that "parts A and B" must as usual be
handed in at the start of *your* assigned 2/19 or 2/20 tutorial;
you'll as be working in groups on Part A in your 2/14 or 2/15 WSs)
Those tutorials and WSs will mostly be a time for you to
with your tutorial/WS leader take stock, and work on anything you
are having problems on. So I've made this set somewhat light
(well, except for the final Part A problem), especially
regarding the Part B.
Part A:
Problems 1.41, 1.46ab, and 1.53, and, from Exercise Set 3, the
one problem in its Part C.
Part B:
Problems 1.42 (note the star on the Sigmathat is
why this is not the same question as 1.41), 1.46c, and 1.49ab.
Part C: None, but if you want a challenge and you are interested in
the comment I made in class on 1/31 that there exist nonregular sets
that have the pumping property (the "pumping" behavior spoken of in
the pumping lemma), I suggest you to create such a set (let us say
over a threeletter alphabet). After you do that, you might then want
to look at Problem 1.54 of SIP, which presents such a language.
 Exercise Set 6, 2/262/27 (which means
that "parts A and B" must as usual be
handed in at the start of *your* assigned 2/26 or 2/27 tutorial;
you'll be working in groups on Part A in your 2/21 or 2/22 WSs)
If you have time left at your WS after doing the Part A, I suggest
you
work on your group's problem(s)
from the Problem Sheet for the 2/26 class, and if you still have time,
work on the other problems from that sheet, or
work extra examples
on anything that you are having troubles on (e.g., the pumping lemmas,
or fractions of languages, or etc.).
Part A:
Problem 2.4ad;
give a CFG for {0^i1^j0^k1^n  each of i, j, k, and n belong
to {1,2,3,...} and i+j = k+n} (note: this is similar to
but not identical to problem 4 from the 2/26
problem sheet);
Problem 2.30b.
Part B:
Problems 2.4e and 2.9 (just the giving the grammar part, not the ambiguity questions);
give a CFG for {0^i1^j0^k1^n  each of i, j, k, and n belong
to {1,2,3,...} and 2(i+j) = k+n};
Problem 2.30a.
Part C: None (but I do suggest
you work on Problem 1 from the for2/26 problems sheet).
 [NOTE: There will NOT be an
exercise set due 3/53/6, as Midterm I is 3/5, in Lower Strong.]
 Exercise Set 7, 3/193/20 (which means
that "Parts A and B"though this week part A is emptymust
as usual be
handed in at the start of *your* assigned 3/19 or 3/20 tutorial;
you'll NOT have a Part A as there will be no workshops
on 3/73/8 due to it being Midterm I week; note
that you'll thus have to do Part C, which is
groupbased, in pairs of WS groups, WITHOUT having
a WS at which to do it, so you'll want to arrange
for your groups to meet)
Part A: none as there is no WS associated with this exercise set.
Part B: Problem 3.1b, 3.2a, 3.5, 3.6.
Part C: Here are three problems, one a starred problem from SIP
and two others hard problems from the slides. Each of the
problems is assigned to TWO WS groups; please work jointly
to ensure that your pair of groups has a joint answer written
up and ready to project on the doc cam AT THE
3/21 CLASS SESSION, which will be devoted to
seeing the three solutions as presented by the groups.
I encourage each of you, and your WSmates, to work on not just
your problem but the other problems too; these are fun, fun
problems that each take an insightin some cases, a
rather thrilling, not so obvious one.
Problem C.1 (to be done by the two late Thursday WSs
as a joint team): SIP 3.19.
Problem C.2 (to be done by the late Wednesday WS
and the early Thursday WS as a joint team): The
problem called "A Fun, Hard Challenge" on
the Chapter 3, Part 2 slides, ideally also including
solving the "Superchallenge" on that same slide.
Problem C.3 (to be done by the two early Wednesday WSs
as a joint team): The
problem called "Another (Your Lucky Day!) Fun, Hard Challenge" on
the Chapter 3, Part 2 slides, ideally including both
finding a relatively clear and nondisturbing solution for the first
part (the "no three") case, and then finding a different
but also relatively clear (though slightly though
subtly disturbing;
side comment: do you see what is disturbing about it?)
solution for the second part (the "no two" case). (No, don't
ask for a definition of "disturbing," but we'll cover what
is under the hood here in class that day, if there is
time, after your present
your solutions, unless your solutions already covered it.
Other
Important
Links/Info/Resources:

Problems for the 1/29 and 1/31
Classes; see the Part C of Exercise Set 2 above for more info on
what to DO regading these!.

Problems for the 2/7 Class.

Problems for the 2/14 Class.
And
here
are
the
doc cam solution sheets that Read projected while going over those on
2/14, except with two added ones to sketch the proofs of the 3c
and 3d, which he didn't have a chance to go over in class on 2/14).

Problems for the 2/26 Class.
 Information on the Scope of Midterm I (and
info on location, notes, etc.): The scope of Midterm I as
to Chapter 2 is somewhat implicitly given in the entry in the list
of Readings above, regarding the Chapter 2 readings. The scope of
Midterm I (and also some more general advice of
good things to review while studying for the midterm),
as to the areas/topics the slides call Chapters 1, 0, and 1, is given
the BB Announcement that in BB is dated "Friday, February 9, 2018
4:12:02 PM EST" and is titled "[CORRECTED] LOWER STRONG... some
important things related to the midterms and also attendance" EXCEPT
let me add to the exclusion list (that from that posting
already contains the "all but 1000" problem) the "Extra Problem"
from Exercise Set 3. Also, to remember that both our midterms
are NOT in our classroom, but are in Lower Strong Auditorium.
So Midterm I is March 5 at 325PM in Lower Strong.
Also, be aware that though the Syllabus lets you bring into
the midterm a **HANDWRITTEN** and PREPARED BY YOURSELF
one 8.5x11 2sided sheet (or two 8.5x11 1sided such sheets) of cram notes,
if we catch you using a nonhandwritten such sheet, that will be
submitted as a case to the Academic Honesty Board (and the sheet will be
confiscated); your sheet MUST be handwritten and prepared by yourself.

Your seat
assignments for Midterm I and for Midterm II, both of which will
be in Lower Strong Auditorium at 325PM440PM (respectively on
Monday 3/5 and Wednesday 4/18).

Midterm I solution sketches are
here.

Academic Honesty.

The Center for Excellence
in Teaching and Learning (CETL) provides a wide range of services including Disability Support/Resources.

The DBLP Computer Science Bibliography.

RSI Information.
Some of My Favorite Bits of Science Wisdom:

After solving a challenging problem, I solve it again from scratch,
retracing only the *insight* of the earlier solution. I repeat this
until the solution is as clear and direct as I can hope for. Then I
look for a general rule for attacking similar problems, that *would*
have led me to approach the given problem in the most efficient way
the first time.  Robert Floyd

In computer science, elegance is not a dispensable luxury, but a
matter of life and death.  Edsger Dijkstra

Imagination is more important than knowledge.  Albert Einstein

They are ill discoverers that think there is no land, when they can see
nothing but sea.  Francis Bacon
Other Odds and Ends (Mostly Quotations):

I don't believe it. Prove it, and I still won't believe it.
Life, the Universe and Everything

It was mentioned on CNN that the new prime number discovered
recently is four times bigger then the previous record.

Sooner or later society will realize that certain kinds of hard work
are in fact admirable even though they are more fun than just about
anything else.  Donald E. Knuth

Getting tenure doesn't really change anything.
However, not getting tenure changes everything.

My late friend Stan Ulam used to remark that his life was sharply
divided into two halves. In the first half, he was always the
youngest person in the group; in the second half, he was always the
oldest. There was no transitional period.
 GianCarlo Rota, "Indiscrete Thoughts"

Fools ignore complexity. Pragmatists suffer it. Some
can avoid it. Geniuses remove it.
 Alan Perlis, Epigrams in Programming

More Quotes from Dijkstra:
* None of the programs in this monograph, needless to say, has been tested on a machine. (From "A Discipline of Programming.")
* Computer science is not about computers, any more than astronomy is about telescopes.
* The question of whether computers can think is just like the question of whether submarines can swim.

"Supposing a tree fell down, Pooh, and we were underneath it?" [said Piglet.]
"Supposing it didn't," said Pooh after careful thought.
Page Maintained by: Lane A. Hemaspaandra