---
title: Eboard 03  Getting started with Racket
number: 3
section: eboards
held: 2019-01-28
link: true
---
CSC 151 2019S, Class 03:  Getting started with Racket
=====================================================

_Overview_

* Preliminaries
    * Notes and news
    * Upcoming work
    * Extra credit
    * Questions
* Lab
* Debrief (if time)

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

### News / Etc.

* Happy Monday!  I hope you had a wonderful weekend.
* When you arrive
    * Grab a card with the name of a computer.
    * Determine where the computer is.
    * Put the card in the jar.
    * Sit by the computer.
    * When there are two people at the same computer, introduce yourselves.
* Please turn in your academic honesty policy if you have not done so
  already.
* In case it wasn't clear from the syllabus and such, I will randomly
  call on students in class.  I do this for multiple reasons.  
    * _It avoids bias_ (conscious and unconscious). Since I'm using cards, 
      I am unlikely to ask more questions of people from certain groups.  
    * _It builds skills_.  For better or for worse, many people expect you
      to express your ideas, even when you have not formulated them
      completely.  Practice in a low-stakes environment should help.
    * _It can remind you that you are not alone in confusion or
      misunderstanding_.  While I may sometimes force you to guess, you
      can feel free to answer "I'm not sure" when I call on you.
    * _It sometimes incentivizes you to ask questions_.  If you know
      that I might ask you questions, you may be more inclined to ask
      me questions.
    * And more.
* If being called on in class causes severe anxiety, let me know and
  we'll figure out a way to adjust to support you.
* We will be doing image-making operations in lab today and Wednesday.
  If you have visual or other impairments that might affect your
  ability to complete labs that involve image making, let me know and
  I'll work on alternate problems for you.
* The department maintains a mailing list which we use to distribute
  information about things that may be of interest to people who like
  CS: Talks, summer internships, etc.  If you would like to be added,
  please send me a message.
* You will have a substitute teacher on Wednesday.  I'll be off learning
  about Fairness, Accountability, and Transparency in Artificial Intelligence.
  (If all goes well, I'll bring back a cool assignment for later in 
  the semester.)
* If you feel unsafe coming to class on Wednesday, send me an email message
  and I will treat it as an excused absence.  You are, however, responsible
  for making up the work on your own.
* When you send me questions about assignments, please title them
  things like "QUESTION on Assignment 2".  It makes it much easiere
  for me to identify them as questions.
* I've updated the due time for lab writeups; writeups are due at the
  start of class.
* Our mentors will have weekly mentor sessions, most likely on Thursday
  evenings.  You can attend mentor sessions for either this section or
  the other (or both).
    * Mentors: Have you decided on times?
* We also have helpful people in these labs in the evening (Sun-Thu).

### Upcoming work

* Readings (available online), due before class Wednesday.
    * [Simple images in Racket](../readings/images)
    * [Writing your own procedures](../readings/procedures)
    * [Other ways to write procedures](../readings/procedures-hop)
    * [Documenting your procedures](../readings/documentation)
* [Assignment 2](../assignments/assignment02) due Tuesday night.
    * Your partner is whoever was at the computer with you on Friday.
* Quiz Friday!
    * A bit of XML
    * Scheme basics (write something small, read something small, show steps)
    * Includes procedures
    * Might include "Sketch the image described by this code"
* Lab writeup due before class on Wednesday.
  Email your `shapes.rkt` file to csc151-01-grader@grinnell.edu with
  a subject of "CSC 151.01 Lab Writeup for Class 3 (Your Names)", 
  substituting your names.

### Extra Credit

* Congratulations!  You're class seems to be more on top of extra-credit
  activities than any I've had in some years.  (Of course, I wish at least
  one of you had gone to the art opening.)

#### Extra credit (Academic/Artistic)

* Herman Melville Meets Agatha Christie, Tuesday, 4:15p, Burling 1st
  Floor Lounge.

#### Extra credit (Peer)

#### Extra credit (Wellness)

* Kindness through gratitude, Monday and Tuesday 11-1, outside DHall.

#### Extra credit (Misc)

### Other good things

### Questions

Do we have to create an HTML document that looks like the S&B page?

> Nope.  Your goal is to come up with XML tags and attributes that you 
  would use to describe the page.  Content and organization, not the
  output, is your primary goal.  For example,

        <newspaper title="The Scarlet and Black" date="...">
          <page number="1">
            ...
            <advertisement border="frilly" company="Spalding">
            </advertisement>
          </page>
        </newspaper>

> But there are lots of different possibilities of how to arrange
  things.  Do you use attributes or tags?  Do you focus on columns
  or articles?  Etc.

Can we attach the XML files to our email message for assignment 2?

> Yes.

We did not come close to finishing lab in class on Friday.  What are
the expectations for labs we don't finish?

> We try to design labs that you can finish in class.  We won't always
  succeed.  We will generally encourage you to finish the lab on your own.
  However, Friday's lab did not require that you do everything.  You
  are expected to do the daily lab writeup (when assigned).

I downloaded DrRacket on my Mac and the shapes are not working.

>  Make sure that you have the racket language (you'll see `#racket`
  at the top of the definitions pane.

> You need to write `(require 2htdp/image)` at the top of your
  definitions pane and click "Run".

Can some of the text in the document be in attributes?

> Certainly.

Should we be doing CSS stuff on assignment?

> Probably not.  But it is good to mark paragraphs in an extended
  article.

Can this be automated?

> Not yet.  Some parts, perhaps.

Flash cards this week?

> Nope.  Not until next week.

What's the purpose of `regexp-match*`?

> It looks for pieces of a text (string) that match a particulary pattern.
  `#px"/[a-z]*s[a-z]*/"` is "strings that contain an s"  We'll talk
  more about them next week.

Lab
---

The procedure `max` finds the largest value in a group of values.

Debrief
-------

Writeup:

* Email your `shapes.rkt` file to csc151-01-grader@grinnell.edu with
  a subject of "CSC 151.01 Lab for Class 3 (Your Names)", substituting
  your names.

Using laptops

* Please do not have DrRacket open on your laptop.
* You may, however, use your laptop (or tablet, or cell phone) for reference.
* You will find it useful to open the lab on the same computer as you
  are using DrRacket, since that allows you to copy and paste.
