#
#
It’s a Monday morning in late July and the von der Surwitz siblings meet in a reserved study room at the main university library to go over what their Introduction to Computer Science teacher, Professor Chandra, had said at Novalis Tech Open House.
From Professor Chandra’s course website they had already purchased online the two main texts for the course, The Haskell Road to Logic, Maths and Programming by Kees Doets and Jan van Eijck, and Thinking as Computation from Hector Levesque, and during the open house had sat around a table with the professor and discussed what the course would entail.
The professor encouraged them to dive into to the logic and sets prereqs — or to just dive into the books — at least The Haskell Road…, as she probably wouldn’t be going over much of the beginning material on either subject in class.
Ursula von der Surwitz has plugged in her laptop to the big monitor and is scrolling through some of her personal notes.
𝔘𝔯𝔰𝔲𝔩𝔞: So like
Professor Chandra said yesterday, we need to see things in terms of
logic and set theory from here on out.
[murmurs of agreement] \
𝔘𝔴𝔢: And like she said,
with set theory we can properly define relations and function. All of
which sounds rather ominous. Like everything we thought we knew was
about to go away.\
[more agreement murmurs] \
𝔘𝔯𝔰𝔲𝔩𝔞: [paging through
Haskell Road… ] She told us not to worry about the first chapter,
but to just start on the second. Did anyone look at the first chapter?
\
[all nod affirmative] \
𝔘𝔯𝔰𝔲𝔩𝔞: [continuing]
Wasn’t too bad. But I needed some of the Learn You a Haskell… to
get me through. \
[murmurs of agreement] \
𝔘𝔱𝔢: I think it’s cool
how the whole prime number test, the greatest common divisor all
blended together. He really packed a lot into that first chapter. \
𝔘𝔴𝔢: Do you remember
that prime factorization way of figuring out unlike-denominator math?
\
[affirmative murmurs]
𝔘𝔱𝔢: And then the
teacher just put two fractions with huge unlike denominators into
this command line — what was he using? \
𝔘𝔴𝔢: It started with an
R[fn:1]? \
𝔘𝔱𝔢: [continuing]
Right, so he added these monster unlike denominator fractions — and
it just spit out the answer in a split second in rational form! \
𝔘𝔯𝔰𝔲𝔩𝔞: Then he worked
through an algorithm as to how it could have been done. \
𝔘𝔴𝔢: Using prime
factorization. Yeah, impressive.
𝔘𝔱𝔢: So what do you all think of the
𝔘𝔯𝔰𝔲𝔩𝔞: [continuing] So here’s
[fn:1] That would be the programming language Racket where you can
simply put in, e.g.,
> (+ 1/3234 1/9437200)
\
and get back \
4720217/15259952400
\
Haskell can do this as well, which we’ll investigate.