Skip to main content

CSC 151 2019S, Class 38: Project presentations

Overview

  • Preliminaries
    • Notes and news
    • Upcoming work
    • Extra credit
    • Questions
  • Lightning presentations

Preliminaries

News / Etc.

  • Apologies: I forgot the birthday cake. We’ll sing happy birthday anyway.
  • While we do not have labs or readings for this week, you are expected to show up to class all week.
  • Some of you did not send me stuff for your presentation. We may need to spend some time on setup.

Upcoming work

  • No more readings.
  • No more lab writeups.
  • No more quizzes.
  • No more flashcards.
  • Exam 3 due Tomorrow

Extra Credit

I would certainly appreciate suggestions of other extra credit activities (preferably via email).

Extra credit (Academic/Artistic)

  • Gridshock documentary, 7pm, Wednesday, Strand
  • CS Table Tomorrow, noon, Middle PDR, Esoteric Algorithms

Extra credit (Peer)

  • Choreography performances: Wednesday, 4:30 p.m. Flanagan Theatre
  • Voice Recital, 7:30 pm, May 10, in Sebring Lewis

Extra credit (Wellness)

Extra credit (Wellness, Regular)

  • Today 30 Minutes of Mindfulness at SHAW every Monday 4:15-4:45
  • Any organized exercise.
  • 60 minutes of some solitary self-care activities that are unrelated to academics or work. Your email reflection must explain how the activity contributed to your wellness.
  • 60 minutes of some shared self-care activity with friends. Your email reflection must explain how the activity contributed to your wellness.

Extra credit (Misc)

Other good things

  • Digital Music Making class presentation, Wednesday 7:30 pm. Sebring-Lewis

Questions

Can you talk a bit more about problem 6?

Consider the following procedures

    (define square-all
      (lambda (lst)
        (if (null? lst)
            null
            (cons (sqr (car lst)) (square-all (cdr lst))))))

    (define double-all
      (lambda (lst)
        (if (null? lst)
            null
            (cons (* 2 (car lst)) (double-all (cdr lst))))))

We see a common form

    (define something-all
      (lambda (lst something)
        (if (null? lst)
            null
            (cons (something (car lst)) (something-all (cdr lst) something)))))

We can redefine in terms of the common form

    (define double-all
      (lambda (lst)
        (something-all lst (section * <> 2))))

Let’s look at three other procedures

    (define sum
      (lambda (lst)
        (if (null? lst)
            0
            (+ (car lst) (sum (cdr lst))))))

    (define select-odd
      (lambda (lst)
        (if (null? list)
            null
            (if (odd? (car lst))
                (cons (car lst)
                      (select-odd (cdr lst)))
                (select-odd (cdr lst))))))

Identify the common part

    (define recursive-fun
      (lambda (lst base-value combine)
        (if (null? lst)
            base-value
            (combine (car lst) (recursive-fun (cdr lst) base-value combine)))))

Redefine

    (define sum
      (lambda (lst)
        (recursive-fun lst 0 +)))

    (define select-odd
      (lambda (lst)
        (recursive-fun lst null
                       (lambda (val lst2)
                          (if (odd? val)
                              (cons val lst2)
                              lst2)))))

Lightning presentations