EBoard 31: Higher-order programming (Section 1)

Warning! You are being recorded and transcribed, provided the technology is working correctly.

Approximate optimistic overview

  • Administrative stuff
  • Reading
  • Q&A
  • Lab

Administrative stuff

Introductory notes

  • Apologies
  • Please make more use of the evening tutors!

Upcoming activities

Scholarly

  • Tuesday, 22 April 2025, noon–1pm, White PDR. CS Table: ???

Artistic

  • Saturday, 19 April 2025, Noon–4:00 p.m., Central Campus. SpringFest
  • Saturday, 19 April 2025, 7:30–9:30 p.m., Harris Concert Hall. Titular Head
  • Monday, 21 April 2025, 4:00–5:00 p.m., GCMoA. Poetry Reading by Lívia Stein Freitas

Multicultural

  • Friday, 18 April 2025, 4:00–5:00 p.m., HSSC N1170 (Global Living Room). Middle of Everywhere: Northern & Southern China on a Plate (Breakfast)
  • Friday, 18 April 2025, 6:00 p.m.–Midnight, Harris Gym. SOL Quinceañera
    • Tickets are required for the food.
  • Saturday, 19 April 2025, 1:00–4:00 p.m., HSSC A1231 (Multi-purpose Kernel). Japanese Spring Festival
  • Saturday, 26 April 2025, 1:00–8:30 p.m., Cleveland Beach. Holi

Peer

Musical, theatric, sporting, and academic events involving this section’s students are welcome.

  • Read articles by your fellow CSC-151 students and comment on them online.

Wellness

  • Friday, 18 April 2025, 6:00–8:00 p.m., Aux Gym. Badminton Club (Smash that bird!)
  • Friday, 18 April 2025, 6:30–8:00 p.m. Dance Studio. Brazilian Jiu-Jitsu
  • Friday, 18 April 2025, 9:00 p.m., Noyce Elbow. Nerf at Noyce.
  • Saturday, 19 April 2025, 4:00–6:00 p.m., Aux Gym. Badminton Club (Smash that bird!)
  • Monday, 21 April 2025, 6:30–8:00 p.m. Dance Studio. Brazilian Jiu-Jitsu
  • Tuesday, 22 April 2025, 12:00–12:45 p.m., Dance Studio. HIIT Training.
  • Tuesday, 22 April 2025, 12:15–12:50 p.m., GCMoA. Yoga in the Museum.
  • Tuesday, 22 April 2025, 4:30–6:30 p.m., BRAC P103 (Multipurpose Dance Studio). Wellness Yoga.
  • Wednesday, 16 April 2025, 6:30–8:00 p.m., Dance Studio. Brazilian Jiu-Jitsu
  • Thursday, 17 April 2025, 12:00–12:45 p.m., Dance Studio. HIIT Training.
  • Thursday, 17 April 2025. 4:30–6:30 p.m., Off Campus. Forest Bathing.
    • Sign ups are required.
  • Tuesday, 29 April 2025, 5:00–6:00 p.m., HSSC Atrium. Therapy Dogs.
  • Tuesday, 29 April 2025, 7:15–8:15 p.m., HSSC Atrium. Therapy Dogs.

Misc

  • Sunday, 20 April 2025, 7:30–8:30 p.m., Science 3819. Mentor Session: SoLA 3
  • Tuesday, 22 April 2025, 7:00–8:00 p.m., Science 3820. Mentor Session: Quizzes
  • Wednesday, 23 April 2025, Noon–1:00 p.m., HSSC A2231 (Auditorium) Community Forum
    • “Weekly discussion on legal protections and recourse on issues that higher education and Grinnell College face.”
    • Also online.
    • This week: ???

Other good things

These do not earn tokens, but are worth your consideration.

  • Saturday, 19 April 2025, 9:00 a.m.–Noon, Tennis Courts. Men’s Tennis vs. Ripon
  • Saturday, 19 April 2025, 3:00–6:00 p.m., Tennis Courts. Men’s Tennis vs. Lawrence

Upcoming work

  • Friday, 18 April 2025
  • Sunday, 20 April 2025
  • Monday, 21 April 2025
    • SoLA 3 distributed
      • Topics from phase one: Decomposition, Primitive types, Collaboration, Lambda-free anonymous procedures (aka cut and compose).
      • Topics from phase two: Conditionals, Documentation, Testing, Lists (and “the big three”), Program Style, Ethical Considerations
      • Topics from phrase three you’ve done quizzes on: List recursion, local bindings.
      • New topics from phase three: Numeric recursion, vectors, randomness.
  • Wednesday, 23 April 2025
    • Quiz: Data abstraction / structs
    • Makeup quiz: Dictionaries
    • Makeup quiz: Diagramming structures (paper only)
    • Makeup quiz: Tracing (paper only)
    • Don’t forget that you can bring a page of hand-written notes for each quiz.
  • Thursday, 24 April 2025
    • SoLA 3 due
      • Topics from phase one: Decomposition, Primitive types, Collaboration, Lambda-free anonymous procedures (aka cut and compose).
      • Topics from phase two: Conditionals, Documentation, Testing, Lists (and “the big three”), Program Style, Ethical Considerations.
      • Topics from phrase three you’ve done quizzes on: List recursion, local bindings.
      • New topics from phase three: Numeric recursion, Vectors, Randomness
  • Sunday, 27 April 2025
    • Submit first redo for MP7 on Gradescope
  • Friday, 16 May 2025
    • Submit final redo for MP1 on Gradescope
    • Submit final redo for MP2 on Gradescope
    • Submit final redo for MP3 on Gradescope
    • Submit final redo for MP4 on Gradescope
    • Submit final redo for MP5 on Gradescope

Friday PSA

  • You are wonderful people.
  • Others care about you.
  • Please take care of yourselves.
  • “It’s Friday, I’m in love.”
    • Consent is essential, but not sufficient.

Readings

TPS

What are the big ideas? (There are at least two.)

  • We can write things like filter, map, and reduce.
    • We write them recursively.
  • We can write procedures that take other procedures as parameters.
  • We can write procedures that build and return new procedures. (Examples include right-section, make-multiplier, …)

Side notes?

  • PM prefers foldr and foldl to reduce.
  • PM writes cool popup code things.

How would you write filter?

(define filter
  (lambda (pred? lst)
    (if (null? lst)
        lst ; or null, it's all the same
        (if (pred? (car lst))
            (cons (car lst) (filter pred? (cdr lst)))
            (filter pred? (cdr lst))))))

Questions

What does andmap do?

(andmap pred? lst): Apply pred? to each element of the list and then and all the results. (Except, it does it one by one, so as soon as we get false, it stops.

Could we talk about make-multiplier?

We can write procedures that build and return new procedures.

(define make-multiplier
  (lambda (n)
    (cut (* <> n))))
(define make-multiplier
  (lambda (n)
    ; Return a procedure, procedures have the form (lambda (params) body)
    (lambda (x)
      (* n x))))

Questions

Administrative

Will dictionaries be on SoLA 3?

No.

Readings

Can we go over the self check?

Sure.

Lab