CSC 173 is a core course for CS BS majors, and should be taken as
needed for either curiosity or to fulfill prerequisites for other CS
In terms of the "classical" trivium,
173 is grammar and logic , with
a whiff of rhetoric.
- Grammar means learning the notation and rules of a formal system,
either abstract, like
lambda calculus, or more concrete, like a programming language.
- Logic means effectively using the formal system, typically to
or working programs.
- Rhetoric means using the formal system in conjunction with other
things you know to draw broader scientific conclusions, make
critical arguments, syntheses, and in general new "intellectual
product". In 173 we have the open-ended parts of programming exercises.
- Ideally (for me),
computer science is part of a
liberal education , in the sense
that it should allow a free person (as opposed to a slave)
to get the most out of life
( WSJ Article).
- Central Skill to Cultivate: Learning how to learn (not "get
taught"). Success: no need for professors.
Study some influential formal systems.
- Investigate some of their
applications in CS.
- Formal Languages and Automata Theory.
- Applications of FLAT: scanners and parsers. The C Language.
- Propositional and Predicate Logic.
- Applications of Logic: Prolog and Circuit Design.
- Lambda Calculus
- Applications of the Lambda Calculus: Scheme
- Applications of matrices: Matlab, Robotics, Graphics.
- Make you invulnerable, independent, confident, competent, hence fearless
Your CSUG Account
Getting CSUG Computer Account:
- If you have a CS Majors account, you're done.
- Everyone else, including declared CS majors, add your name to
the group sponsorship form going around the room.
- If you're a declared major, say so and give login ID.
- Non-majors or undeclared: Renew or initiate account with your
UR mail ID.
- The form is ONLY A PERMISSION to get an account. For the
account, filter (in person) into Marty Guenther's office (CSB 735).
You'll need your ID and you'll need to type in a password, so come
- Questions or New Account? See Marty Guenther CSC 735.
- SSH to urcs is the default access method.
- There are perils in getting all four languages on your laptop.
OK to try, but beware different dialects: If our TAs can run your
code, better chance they'll believe it or be able to help debug it.
Matlab needs a license (student version available, should be OK).
Class and TA Services
Ask Questions! (in class, of classmates, of TAs). Questions somehow
with success. (May be a symptom of success, but might help it along
See the home page for our roster of stalwart TAs, all of whom are
experienced, enthusiastic, approachable...
Why These Formalisms?
They have had the most practical influence on CS problem-solving
and programming techniques.
Far Rockaway (like Feynman), U. Chicago (Like CB).
Three gods A, B, and C are called, in some order, True,
False, and Random. True always speaks truly. False always
speaks falsely, but whether Random speaks truly or falsely is
a completely random matter.
Your task is to determine the identities of A, B, and C by asking
three yes-no questions: each question may be put to exactly one god
(which one is up to you, and later questions can depend on earlier answers).
The gods understand English, but will answer all your questions in
own language, in which the words for "yes" and "no" are "da" and "ja"
in some order. You do not know which word means which.
Why These Languages?
Programming Language Paradigmicity
Daniel P. Friedman 1987
- Elegance, simplicity: e.g. arithmetic.
- Capitalize on a few fundamental concepts (Go, not chess).
- Low paradigmicity: boring, shallow, obvious.
- Hi paradigmicity: deep, subtle, requires creative thought and
- CB's rank: Pure Lisp, Prolog, Scheme, C, Matlab.
Weekly coding homeworks?
Watch for Doodle poll to gather information about WS,
answer by Midnight TONITE (Thursday), announcements