---
title: Eboard 26  Vectors
number: 26
section: eboards
held: 2018-04-04
link: true
---
CSC 151.01, Class 26:  Vectors
==============================

_Overview_

* Preliminaries
    * Notes and news
    * Upcoming work
    * Extra credit
    * Questions
* About the exam
* Lab
* Debrief

Preliminaries
-------------

### News / Etc.

* New partners!
* Review sessions Thursday at 7pm and 9pm.
* Lab writeup from Monday: Note that you should have one pair-o-boxes
  per call to cons.
    * Please check in with Monday's partner if you got things marked
      off.

### Upcoming work

* [Exam 3](../exams/exam03) distributed.
    * Prologue due Friday via email
    * Exam due Tuesday via email
    * Epilogue due Wednesday via email
    * Cover sheet due in class
* [Lab writeup for class 26](../writeups/writeup26): Exercise 4
  Due before class Friday.
* Reading for Friday 
    * [Binary trees](../readings/binary-trees)
* [Flash Cards](../flashcards/flashcards09) due today at 5pm.
* Quiz Friday: Local recursive bindings with letrec and named let;
  randomness; pairs and pair structures.
    * Likely one named let question and one "draw this structure" question.
    
### Extra credit (Academic/Artistic)

* Cello concert tonight.
* Danforth lecture on Thursday at 11 am in JRC 101.  Robert G. Bergman.
  "Irreproducibility in the Scientific Literature or: How Often do Scientists Tell the Truth, the Whole Truth and Nothing but the Truth?"
* Roxane Gay talk Friday noon in Harris Cinema.
* Tabla concert Friday night
* Visit the two exhibits at the Faulconer Gallery.  (Are there still two
  exhibits in the Faulconer gallery?)

### Extra credit (Peer)

* Men's Tennis, April 14, 21, and 22.
* Drag

### Extra credit (Recurring peer)

* Listen to KDIC Wednesdays at 6pm - Witty banter with other 
  personalities and/or co-host.  Also Indian, Arabic, and Farsi music.  
  (Up to two units of extra credit.)
* Peer editing with SS.  Talk to SS about the details.  Make your
  English Lit more literate.

### Extra credit (Misc)

* Donate on Scarlet and Give Back day tomorrow.
    * Grinnell is a wonderful place; please consider donating.
    * If your funds are too limited to allow a donation, I've
      provided an alternative.
* Host one or more prospective students.  
* Discussion on the diversity and inclusion plan tonight at 6pm (I think)

### Other good things

* Grinnell Singers in Concert on Sunday at 2pm in Sebring Lewis.
* Passover Seder on Friday, send email to Rabbi Rob to sign up.

### Questions

What are the "errors" and "times" things on the grading sheet.

* Everyone gets one point for each error someone finds in the main
  body of the exam (up to five points), starting 5pm today.
* I ask you to record your times.  If you do so, you get 2 points.

What happens if we choose the "wrong" kind of recursion.

* I'll generally be sympathetic, unless you do something irritatingly
  inefficient, like calling `length` again and again and again.

Should we document our named let helpers?

* Yes.  A line or so is fine.
* "Find an approximation of the square root of n, given that the
  root is between lower and upper."

Can we stop doing flash cards after today

* I suppose.  I will grade you on the number of flash cards you turn
  in divided by 9, with a cap of "100 percent".

About the exam
--------------

Recursion in CSC 151.  Wicked neat!

Lab
---

_Can we really use `/home/rebelsky/Desktop/pg1260.txt` as our source for
words?_

> Sure.  It's _Jane Eyre_, book 1260 of Project Gutenberg.

_What's the writeup?_

> Exercise 4, `vector-sum`.

Debrief
-------

_How are vectors implemented so that they provide such fast access?_

* That's a good question.
* Vectors, like pairs, group references, rather than values.
* Every reference is the same size.
* So, to find element `i` of a vector, we look at the position 
  `vector-start + i*reference-size`

_Could you explain "gc time"?_

* That's also a good question.
* We often build lists (or parts of lists) and then stop referencing
  them.
* If we keep doing that, we'll exhaust all possible memory (whiteboard)
  locations.
* At that point, we'll need to use the unneeded memory for other
  purposes.
* "Garbage collection" is DrRacket's attempt to find the created but
  unneeded parts of memory and make them available.

**For start of next class ...**

_I hear that there are two approaches you saw to `vector-sum`.  What were they?_

* Stay tuned!

_Why am I getting weird errors when I try to use the result of `vector-set!`?_

* Because `vector-set!` returns nothing.  You're probably trying to use 
  the result in some future computation.
* You'll see a slightly different pattern of recursion for procedures
  in which you modify vectors.
    * Call `vector-set!` to modify
    * *and* Recurse
* We now have multiple consequents after a guard.  We should therefore
  use `when` or `cond`, depending on the situation.
