EBoard 02: Learning the ‘lab equipment’ (i.e., playing with Racket)

This class will be recorded! Its use is limited to members of the class. Please do not share with others.

Approximate overview

  • Administrative stuff
  • Q&A
  • Reflection
  • Lab
  • Debrief (if time)

Administrative stuff

Notes and News

  • Good morning! I hope you had a good first day of Term 2.
  • Accessibility question: Message me if you need an Otter.ai transcript of the class.
  • I’ll do my best to remind you about upcoming work at the start of each class. (Althought not at this instant.)
  • The daily notes are now being posted to the Web. (I call those the “class eboard”.) Click on the title of a class to see those notes.
    Hit refresh to see the updates. (Fingers crossed that this works.) Look, I made a change.
  • Happy Halloween | All Saints/Souls Day | Fallback Weekend | Beggar’s Day | Whatever you might celebrate.
  • Don’t forget to stop your clock for one hour at 1 a.m. on Sunday morning (if you live in a place that was observing the savings of daylight time).
    • If you don’t live in such a place, note that class will start one hour later starting on Monday.
  • I keep forgetting to say this, but We do not expect any prior knowledge for this course.
    • We used to start the course by teaching you how to use a Web browser.
    • Some of our best graduates had no prior knowledge.
  • I think I’ve set up good software for calling on you randomly. We shall see how well it works.
  • I’ve started to update the FAQ.
  • 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. (I’ll try to remember to add all of you to the CS team.)
  • I’m not sure what to do about the election and the post-election world. I will still hold classes, if I am mentally/emotionally able, but I will be generous in making adjustments if you ask.

Upcoming activities

I think you should take advantage of the many activities on campus. If we were here, I’d be encouraging you to attend not only academic events, but also your peers’ events, such as sporting activities and artistic events. Feel free to share events you know of. I’ll also post many to our “announcements” channel.

  • Noon, today: Grinnell Prize Lecture. (+1 token)
  • Noon, Monday: Community building in classes. (+1 token)
  • 11:30 a.m. (?) next Thursday: Convocation! (+1 token)
    • You’ll get my lecture about Convocation next Wednesday.

Upcoming work

I’ll try to include this list of upcoming work each day.

  • Reading writeup for today (due a few minutes ago on Gradescope.)
    • Yup, I know there was confusion. Work on getting it done soon.
  • Lab writeup for today (due Monday 8 a.m. on Gradescope; ideally before the end of class)
  • Readings for Monday (responses to questions due Monday 8 a.m. on Gradescope)
  • Mini-project 1 (due Wednesday at 10:30 p.m. CST)

Attendance

  • Our wonderful mentors will take attendance by looking at the the list of people here.
  • Anyone who wasn’t here on Thursday should introduce themselves.
    • “Hi, my name is ."
    • “I prefer that you call me <how you’d like to be addressed>.”
    • OPTIONAL: “My pronouns are ."
    • “If you must address me by last name, you should call me <surname>." </surname>
    • “A highlight of online learning was ."
    • “This semester, I’m looking forward to ."
  • Anyone who was here on Thursday and isn’t here today should let me know. (And let me know if you are planning to drop the course.)

Q&A

While we’ll cover most of the questions about Racket in the lab, I’m happy to take some broad questions at the start of each class.

Would the reading problems need to be completed online or can they be handwritten?

I prefer that they be completed online. If there are reasons you’d prefer to complete them by hand, let me know and I’ll figure something out. (But I really do prefer that code be submitted online so that we can test it out.)

Where should we submit reading problems?

You will submit all reading problems on Gradescope. If you have trouble with that, let me know.

What are the differences between Racket, DrRacket, and Scheme?

Scheme is a programming language designed about three decades ago for instruction. It has evolved over time.

About five years ago, the Scheme community had some differences of opinion about how it should evolve. One of the major groups in the community split off and renamed their variant “Racket”. Most of the basics of Racket are similar to those of Scheme (syntax, operations). The libraries (e.g., for making images) and some other details differ.

DrRacket is an “integrated development environment”; a program that lets you write Racket programs.

I didn’t understand the incredibly complex grading process.

I blame PM. I’ll talk about it more when we get closer to the first learning assessment.

If you had to choose a color to no longer exist, what would it be?

I’m red-green color-blind, so I suppose I could choose “green”. Of couse, without chlorophyll, the world might be a very different place.

Will you be my academic advisor when I declare a CS major?

I don’t think students should plan to declare a CS major until they’ve taken the first class or two. We also have a complex process by which we distribute advisees. Details forthcoming.

Do we really have reading probblems every day?

Yes, most days. They are marked in the reading with double daggers.

Is it okay if I do too many questions?

Yes. You should be answering all of the questions. You just only need submit answers to the dagger questions. (Let’s be nice to our graders.)

Reflection

What are the basic tools in an algorithm designer’s toolkit? (There are approximately six.)

  • Sequencing The order in which you do things.
  • Subroutines An algorithm that is used inside of another algoriritm, often for simplifying or clarifying what is happening.
  • Conditionals Something that happens only if something holds. E.g., we can only here WA if the mic button is pressed appropriately.
  • Variables (and parameters) Name things (values and stuff)
  • Repetition Recursion is one form. Doing something over and over again.
  • *Built-in stuff Numbers and operations on them. All sorts of things, not only numbers but strings and stuff.

Let’s come up with examples from PB&J. We’ll use the lab technique to get you in pairs to chat.

Detour: Improving the instructions.

  1. Sam (computer) assigns pairs/triplets.

  2. First person in the pair goes to the lab channel, clicks the camera and then “Meet Now”

  3. Add a subject. “Team # (Names)”

  4. Click “Meet Now”.

  5. Invite the other members of the team.

  6. Other members of the Team join.

  7. Discuss/work/whatever.

Back from detour.

  • Sequencing Put strawberry jam before PB. Getting the bread out of the bag before spreading the PB.
  • Subroutines Spreading. We need to both PB and jam. Opening a bag.
  • Conditionals If bread slice is large, cut it in half. If jar has a screw top, then [long series of steps for opening screw-top jars]
  • Variables “The bread”, “Fruit spread”, “The nut butter”. “The jar” “Dominant hand”
  • Repetition Spreading (multiple motions). Opening.
  • Built-in knowledge/actions Nouns: “Hand”, Activities: “Touch”

Detour: Clarification of repetition vs. subroutine

  • Repetion: Do the same set of instructions again and again
  • Subroutines: How to do a particular action that you might apply in multiple situations.

Lab

See instructions.

You’ll work together and individually. When working individualy, feel free to ask each other questions. And feel free to post questions in your chats.

The mentors and I will wander through the meetings to check in with you. We’ll also watch the chats and drop in when we see questions show up.

Submit the lab on Gradescope when you are done.

Debrief

Will we have time? We’ll see!