EBoard 07: Loving lists
This class will be recorded! Its use is limited to members of the
class. Please do not share with others.
Approximate overview
- Administrative stuff [~10 min]
- Q&A [~10 min]
- Lab [~60 min]
Administrative stuff
Notes and News
- Evening tutoring will be available 3-5 p.m. Sundays and 8-10 p.m.
Sundays through Thursdays in the tutoring channel on the CS team.
- Individual tutors are also available, but we prefer that you
try the evening tutors first.
- I rewrite the labs before class each day, usually finishing about
ten minutes before class time.
- I’d prefer that you not look at the labs until class time.
- If you do, make sure to do a force-reload on the lab code.
(Command-Shift-R on the Mac).
- Let me know if you want to be added to the csstudents mailing list.
You’ll get lots of fun email. Information about events. Information
about internships/jobs. The occasional bit of extra info. Notes from
the SEPC. Stuff like that.
- Upon reflection, I will not set up regional pairing during class.
However, if you’d like a partner for after class, let me know by
10:15 am (name, time zone, where you are in the lab) and I’ll do
my best to assign random partners by 11:00 am.
- Makeup quizzes will generally be available at 7:30 am before the
next-next class. Please finish them before that class.
- The makeup quiz for yesterday’s class will be Monday.
- I’ve posted comments on the top-hat quiz to the Q&A channel.
- I’m hoping to make a list of all the procedures you’ve learned
by Monday.
Upcoming activities
Attend (or watch recording) and send a one-paragraph reflection.
- Noon, TODAY, Strengthening Community in Extraordinary times (+1 token)
- Noon, Monday, CS Table Some Interesting Discussions
- 5pm, Monday, 9 November 2020, Education Picnic (+1 token)
Upcoming work
- Reading writeup for today
(due 8:00 a.m. this morning; a few minutes ago!)
- Mini-project 1 redo
(due next Wednesday at 10:30 p.m. CST)
- Mini-project 2
(due next Wednesday at 10:30 p.m. CST)
- Writeup for today’s lab on lists
(due Monday 8:00 a.m. on Gradescope; ideally before the end of class today)
- Reading for Monday
(no reading responses!)
- No quiz today!
- Monday’s quiz: Lists
- Yes, it will involve code.
- Probably something from the lab.
Q&A
Do you realize that you can’t hear us?
I knew that I was losing my hearing, but not that badly.
When will we get feedback from mini-project 1?
When the graders finish grading.
Over the weekend, I hope.
Can you tell us about the tick mark.
The tick mark means “verbatim”.
‘a means “Treat a verbatim, not as a variable” (as a symbol)
‘(a b c) means “Treat (a b c) verbatim (as a list) not as a
an expression evaluate.
‘123 means “Treat 123 verbatim (as a number)” [‘123 is the same
as 123]
’#\a means “Treat #\a verbatim (as a character)” [’#\a is the
same as #\a]
What do you call the # symbol?
“Pound”, “Mesh”, or “Hash” are the most common names.
“Octothorpe” is a great name that some people use.
Pound is not a sharp.
Why “Octothorpe”?
Coined by Bell Labs during the creation of the touch-tone phone.
Perhaps “eight plots of land around a central area”
Named after Jim Thorp
#octothorpe
Why is (index-of 3 (list 1 2)) –> -1?
The designers of Racket chose to use -1 to signal “Not there.”
Option 1: Crash and Burn.
Option 2: Return #f as a signal to the caller.
Option 3: Return a value out of the valid range as a signal
to the caller.
Options 2 and 3 let the program continue.
The -1 says “You’re not there”.
When (if) you get to CSC 207, you’ll learn a fourth option.
It appears that the csc151 package redefines index-of badly.
We’ll try to fix it.
It appears that Sam (or whoever wrote that part of the 151 library)
thinks differently than the Racket designers. Bleh.
Lab
- Please set up your groups in the “Lab Sessions” channel.
- Please name your groups as designated below.
- Sam (well, Sam using a computer program he wrote) assigns groups.
- First person in the group goes to the Lab Sessions channel, clicks
the camera (or something equivalent) and then “Meet Now”.
Please get the channel right. We won’t see you in other channels.
- Add a subject. “Group #: Names”, such as “Group 1: SamR & JohnG”
Please get the group name right. It makes it much easier for us.
- Click “Meet Now”.
- Invite the other members of the group.
- Other members of the group join.
- Discuss/work/whatever.
Debrief
Perhaps we’ll have time today.