The start-of-class algorithm
Approximate overview
Warning! You are being recorded (and transcribed) (provided the technology is working correctly).
Guidelines
Scholarly
Artistic/Cultural
Multicultural
Peer
Musical, theatric, sporting, academic, and similar events involving this section’s students are welcome.
Wellness
Misc
These do not earn tokens, but are worth your consideration.
For the handwritten notes allowed on each Learning Assessment, can we make a one-page reference sheet with whatever information we find helpful, similar to a cheat sheet?
That’s the goal.
Where are the readings?
Linked on the schedule.
Ooh? Can you come back to me later?
Sure. You should always feel free to say “I don’t have an answer right now” and to ask questions at other times.
Why does Sam type eboards?
So that there is a record in case you forget.
To support those who aren’t here.
Why not?
Does Sam always write eboards?
Yes.
Which Linux distribution does the CS department use?
Debian. I don’t know why.
What are the names of these workstations?
Dead computer scientists.
Will Sam invest in an AI startup?
Maybe. We can chat.
What was the first thing Sam did when he graduated?
Hugged my mom.
Taught at Dartmouth.
Why does Sam teach?
It’s fun! I get to see students learn. I find designing classes intellectually stimulating.
“I get to make a difference in the lives of awesome young people.”
How could you have been faster about getting together in the card groups?
How many types of values (e.g. numbers, strings, lists) are there in Scheme? And what are they?
There are a lot. And programmers can design new ones. For example, while “standard” Scheme does not include images or sounds, we’ve designed and implemented those types.
Do numbers type in Scheme only include integers, or integers and reals, or just any number in existence?
It depends on the variant of Scheme. Racket separates integers and real numbers, as well as exact (arbitrary precision) and inexact (approximated, like in most languages) languages. Racket also supports complex numbers. Scamper treats everything as a real number, but can tell when the real is an integer (at least it usually can).
Can you go over the questions from the Scheme reading?
We’re going to have you go over the questions with your partner, try them on the computer, and then you can ask us questions.
Can you further explain what does this mean: “As we noted, the string-split operation returned a list, an ordered collection of values. Note that, like expressions, lists are surrounded by parentheses. Scheme distinguishes lists, which should not be evaluated, from expressions, which should be evaluated, by putting the word list at the start of the parenthesized expression.
Parentheses can mean two different things in Scheme: Usually, they mean “Please apply this function to these inputs”. However, in the case of lists, they also mean “These are the elements of the list.” Does that clarify it?
(+ 2 3)vs.(list 1 2 3).
Is a list of strings one parameter or several parameters?
One list is just one thing.
How do I write an arithmetic calculation in Scheme involving a negative number?
Precede the number with a dash (negative sign), as in
(* -2 3).
What is the main difference between using the Definitions pane and the Interactions (REPL) pane in Scamper, and when should we use each one?
I tend to use the definitions pane for things I plan to keep and the interactions pane for quick experiments. YMMV.
I have a question about “string-split”. Could the second argument be a number instead of a string, with the number indicating how many characters to include before splitting the string? For example, could a number specify that the string should be split every 5 characters?
Nope. I don’t recall whether we have a different procedure that does that. If not, we can write one. (Well, I can write one. You’ll know how to write such a procedure by the middle of the semester.)
Please elaborate on subroutines. I didn’t really understand from the readings.
A subroutine (also “procedure” or “function”) takes a set of code and puts it together into something we can refer to by name. For example,
string-lengthis a subroutine that computes the length of a string. (In this case, we don’t know what the underlying instructions are. Starting Wednesday, you’ll know how to write your own.)
How useful is it to distinguish procedure/function/parameter/argument especially if going further in CSC?
It’s useful to distinguish procedure/function from parameter/argument. The first pair are sets of instructions to accomplish a task. The second pair are the inputs to those instructions. Most computer scientists are remarkably casual about the difference between a function and a procedure, as well as between a parameter and an argument, and tend to use the terms interchangeably.
Do you have a favorite project?
Yes.
Can I suggest homework assignments?
Maybe. Not today.