EBoard 17: Software development (Section 1)

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

Approximate optimistic overview

  • Administrative stuff
  • MP5
  • Q&A
  • Two difficult conversations
  • Testing Lab

Administrative stuff

Introductory notes

  • Happy March!
  • Happy Week Seven!
  • Ramadan Mubarak.
  • I realize many of you are feeling (and being) attacked by our governments, including both federal and state. Please remember that there are still many people who care deeply about you (including me).
  • Sorry that I was gone for so long. The conference was a success. But I’m exhuasted.
  • To make matters worse, my email is acting up.
  • But I brought you Octocat stickers!

Less positive things

  • Mid-semester reports are due today. Some of you will be hearing from Academic Advising. You may also see Academic Alerts.
  • I’m also turning in Academic Alerts for those of you who did not turn in MP4.
  • My substitutes were surprised to see that so many of you didn’t feel compelled to be here on time.

Upcoming activities

Scholarly

  • Tuesday, 4 March 2025, 7:00–9:00 p.m., Harris Concert Hall. Ray Young Bear: From Red Earth Drive: Creating Meskwaki Poetry and Songs through Animism and a Series of Otherworldly Events
  • Thursday, 6 March 2025, 11:00 a.m.–Noon, JRC 101. Scholars’ Convocation: Lisa Mueller: Most Protests Fail. It Doesn’t Have to Be That Way

Artistic

Multicultural

  • Friday, 28 March 2025, 4:00–5:00 p.m., HSSC N1170 (Global Living Room). Middle of Everywhere: ???

Peer

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

Wellness

  • Tuesday, 5 March 2025, 12:15–12:50 p.m., GCMoA. Yoga in the Museum.
  • Tuesday, 5 March 2025, 4:30–6:30 p.m., BRAC P103 (Multipurpose Dance Studio). Wellness Yoga.
  • Tuesday, 5 March 2025, 5:00–6:00 p.m., HSSC S1003 (Atrium). Therapy Dogs.
  • Tuesday, 5 March 2025, 7:15–8:15 p.m., HSSC S1003 (Atrium). Therapy Dogs.
  • Friday, 28 March 2025, 6:00 p.m.–8:00 p.m., Aux Gym. Badminton Club (Smash that bird!)
  • Friday, 28 March 2025, 9:00 p.m., Noyce Elbow. Nerf at Noyce.
  • Saturday, 29 March 2025, 4:00 p.m.–6:00 p.m., Aux Gym. Badminton Club (Smash that bird!)

Misc

  • Tuesday, 4 March 2025, 7:00–8:00 p.m., Science 3820. Mentor Session
  • Sunday, 9 March 2025, 7:30–8:30 p.m., Science 3819. NO Mentor Session
  • Sunday, 23 March 2025, 7:30–8:30 p.m., Science 3819. Mentor Session (I think)

Other good things

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

Upcoming work

  • Tuesday, 4 March 2025
  • Wednesday, 5 March 2025
    • Quiz: Lists (and the big three)
    • Makeup quiz: Tracing
    • Makeup quiz: Conditionals
    • Makeup quiz: Cut and compose
    • Remember that you can bring a sheet of notes for each quiz.
    • Remember that you can start as early as 8:00 a.m. (section 1) or stay until noon (section 2) or 4:30 p.m. (section 3)

MP5

  • Goal: Make abstract art by combining variants of images (simple shapes).
  • Primary objective: Practice with lists (and nested lists) and the procedures that manipulate lists, particularly map and apply or reduce.
  • Basic idea: We can think of many basic shapes as having threee primary attributes: width, height, and color.
    • We can transform those attributes to make variants.
    • We can ignore the shape type and think of them as parameters to another function.
  • Part one: Make lists of variants of the key attributes.
  • Part two: Turn lists of objects into lists of other objects.
  • Part three: Combine those lists of objects.
  • Part four: Freestyle.
;;; (shape-params shape) -> list?
;;;   shape : basic-image?
;;; Create a list of the width, height, and color of the image.
(define shape-params
  (lambda (img)
    (list (image-width img) (image-height img) (image-color img))))

;;; (something img) -> solid-isosceles-triangle?
;;;   img : image?
;;; Create a solid isosceles triangle of the same width, height, and
;;; color as `img`.
(define something 
  (o (cut (apply solid-isosceles-triangle <>)) 
     shape-params))

Questions

Administrative

Scheme

Readings

MP5

Can you make a procedure with any number of parameter?

Yes, I can. But you can’t. If you want “any number of parameters”, just take a list as a parameter. Then the list can have as many things as you want. (If you really want to do it, just don’t put parens around the parameter.)

Can you do an example?

Sure. Suppose we want to turn a bunch of things into isosceles triangles and we don’t know how many.

(define to-isosceles-triangles
  (lambda (list-of-shapes)
    (map something list-of-shapes)))

(define to-isosceles-triangles-two
  (lambda shapes
    (map something shapes)))

Other

Difficult issues

I realize that many other issues will interfere with your ability to discuss these issues deeply. Nonetheless, I’d like to consider them a bit, particularly since our second SoLA is immediately after spring break.

Issue 1: Take-home exams

You already have the background for this one.

Quick closed-eye survey: What kind of exams would you prefer?

  • In-class, no computer (like quizzes). [1]
  • In-class, with computer. [5]
  • Take-home (like SoLA 1). [12]

TPS: How should I address issues of inappropriate collaboration and potential ChatGPT/Generative AI use?

  • Make sure to limit options to the code we use and report people who use other code.
  • Accept that there are coincidences.
  • Unfortunately, College policies do not allow “chat with students about it”.
  • Unfortunately, College policies do not allow “I think you used ChatGPT, you get a zero”
  • In both cases, I need to report to CAS.
  • Students need to understand that it’s important to behave appropriately.
  • Maybe “Explain the code you wrote.”
  • Maybe “Support your answers with relevant citations.”
  • Reduce incentive to cheat.

Issue 2: Struggling students

Background: A higher percentage of students are struggling in CSC-151 than I’ve ever seen. And, believe it or not, I’ve cut back on the work in the MPs. But there are also students who are doing fine, including students who haven’t programmed before. What should I do?

  • The ability to redo means that some of us are de-prioritizing the first submission (we’re planning on redos).
  • Use spring break (as not a break).
  • Finding the relevant readings is hard. (Think about a “guidance” page.)
  • Thursday deadline for submissions is hard. (Move to Sunday?) (But lots of work is due on Sundays.) (Every time is hard.) Move late deadline to Sunday. A little overlap is okay.

Lab

There is no starter code for today’s lab.