CSC151.01 2014F, Class 54: Pause for System Crashes
===================================================

_Overview_

* Preliminaries.
   * Admin.
   * Upcoming Work.
   * Extra Credit.
   * Questions.
* Objects, revisited.
* Building a four-way switch.
* Lab.
* Reflection.

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

### Admin

* Please try to log in.  If you have trouble, I'm probably rearranging
  classes.  (Yes, the system was down.  We had an ad-libbed class.)
* Continue yesterday's partners!
* Two more days
   * Wednesday: Debriefing, Phase 1
   * Friday: Debriefing, Phase 2; Evaluations; Exam grades returned
* [Sample Final](../assignments/sample-final.html) distributed.  You
 can find it on the assignments page.
    * Other than time spent, there is no harm for trying the final.
* DrRacket does destroy files.
  Email yourself a copy of your exam regularly.  
* There's a Sam review session on Thursday, there will be an Ajuna session.
  There won't be an Alex session.

### Upcoming Work

* Exam 4 due TONIGHT at 10:30 p.m. in electronic form!
    * Printed version due in class tomorrow.
    * Epilogue due tomorrow night.
    * If you want your grades by Friday, get exam to me by 4:15 p.m.
      today.  (Put the printed copy under my door.)
    * If the system goes downsdfasdfadf, then you should asdfkl;js;jklasdf
      feel free to take extra time.
* No more readings!
* No more lab writeups!
* *ATTENDANCE EXPECTED!*

### Extra Credit Opportunities

#### Academic

* Inside Grinnell Thursday the 11th at noon in JRC 101: Grinnell's 
  Endowment: What Can and Can't it Do?

#### Peer Support

* Karan's radio show 11pm Thursday nights on KDIC 
* Evan's radio show 5pm Friday nights on KDIC
* Donna's radio show Sunday midnight on KDIC
* Jazz Band, Dec. 13, 8pm Gardner

### Additional Events

* Looking ahead: We do not have classes on MLK day, but we do have
  campus events.  You should consider participating in those events.

### Exam Questions

*None*

Discussion of End of Course Evaluations
---------------------------------------

* What do faculty want?  We want to know how to teach better!
* But there are other interests, too.  For example, the College wants a way
  to assess faculty. 
* So we have these interesting end-of-course evaluations.
* Yes, there is a significant conflict between "Criticize me to make me
  better" and "How you rate me affects my salary and therefore my ability
  to support my family".  Amazingly, people in the Dean's office have not
  traditionally understood why that might be a conflict.
* It's also just oh-so-wonderful that we take categorical responses
  ("strongly disagree", "disagree", "slightly disagree", "slightly agree",
  "agree", "strongly agree"), turn them into numbers (1 2 3 4 5 6) and then
  average them.
* There are also some interesting gender and race issues in how
  students rate faculty.  I don't think they are conscious.

"The Subject Matter of the Course"
----------------------------------

* But we're talking about these issues because five of the six questions
  ask you to think about "the subject matter of the course".  I think it's
  worthwhile to talk to you a bit about how you might describe such a thing.

### Scheme

Scheme is a language for expressing programs/algorithms.

* Local bindings and let
* Ways to sequence values
    * Compose, `o`
    * Nesting
    * `let*`
    * Continuations
    * `when`
    * A sequence of expressions in the body of a procedure or
      `let` statement.

### Computer Science

CS is the study of *algorithms* and *data structures*.

* The components of an algorithm
    * Variables and Parameters (two kinds of named things)
    * Subroutines (another kind of named things)
    * Repetition
    * (Input and output)
    * Conditionals
    * Sequencing
    * *one more that you should think about*
* Recursion - We can define a procedure in terms of itself.

### Software Design

When we think about software design, we think about how to write better
programs.

* Identify preconditions and postconditions.
* Check preconditions.
* Test your programs using a testing framework, like Rackunit.
* Be concise.

### General Skills

* Group work - How to interact with other people when working on projects.
* Thinking on your feet.
* Careful reading/editing.

### And Beyond

* "There's more to life than CS" (or any academic discipline)
* "Computers are Sentient and Malicious"

Objects, revisited
------------------

One minute with your partner

* Is there anything you want me to discuss before you get back to the lab?

Building a four-way switch
--------------------------

*I'll go over this.  You can pay attention or just do lab.*

Lab
---

Reflection
----------

