CSC151.01 2014F, Class 04: Computing with Symbols and Numbers
=============================================================

_Overview_

* Preliminaries.
    * Admin.
    * Attendance.
    * Upcoming Work.
    * Extra Credit.
* Values and types.
    * Questions.
* Lab.
* Debrief.
* Meet with HW Partners.

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

### Admin

* Continue to work with the person you worked with yesterday (at the same
  computer).
* Thursday at 10 am, I will hold a review session.  It's an opportunity
  for you to ask anything you'd like about the class.   You can also come
  in and work on labs or homework and have me around for questions.
* There's a review session tonight at 8pm in CS Commons (3817)
* There's a review session tomorrow night at 7:30 pm. (somewhere)
* The review sessions will be a good place to learn more about, say,
  the `modulo` operation (which is likely to be on the quiz).
* You have assigned partners for HW 2.  I'll give you five minutes at the
  end of class to get together and set up a time/place to meet.

### Attendance

* I'll take attendance again today since it's a way for me to learn names.
    * Listen to the names so that you can identify your homework partner.

### Upcoming Work

* Lab writeup for today (due Friday): Execise 2, parts d, e, and f.  
  See link on schedule or list of labs for link to submit it.
* HW 2 assigned.  Due next Tuesday.
    * Homework partners assigned.  I'll give you five minutes at the end
      of class to find your partners.
* Quiz Friday!
* Reading for Friday: 
    * [Drawings as Values](../readings/drawings-reading.html)

### Extra Credit Opportunities

* Note: Please send a short (one paragraph) reflection on any extra credit
  activity you attend.  And reflect, don't summarize.

#### Academic

* Awesome show at the Faculoner gallery.
* CS Extras Thursday at 4:30 p.m. in Science 3821.  Adam Arsenault on
  his internship at the Free Software Foundation.  (The folks who are
  responsible for the GNU project.)
* CS Table Friday: The Mythical Man-Month, Chapter 2.

#### Peer Support

* Football Games (???)
* Women's Volleyball home matches (???)
* Men's Tennis home matches  (???)
* Women's Tennis home matches (???)
* Anna Christie, Oct. 9-12 (SB plays Marthy)

Values and types
----------------

* In order to write an algorithm, you need to know what the computer
  (or other follower of instructions) can do
* Different kinds of values suggest different basic operations
* Both computer scientists and programming languages classify values
  ("type")
    * Numbers - add, subtract, multiply
    * Strings - concatenate, (speak aloud), get a letter or word, ...
* We will regularly look at various types and consider the core operations
  we can use with that type
* Today: Focus on two basic types (and variants)
    * Numbers (whole, decimal numbers, complex numbers, fractions/rationals)
    * Symbols - create and compare
* We also care about representation

Question
--------

Why is 2.0 an integer?

* Algortihm: How do you know if a number is an integer?  "No fractional
  component"  5.  2.3

Relationship between `mod` and `remainder`

* Same for positive numbers
* For negative numbers, there are different ways to interpret remainder
* Consider -11/4.  Is that -3, with a remainder of 1, or is that -2
  with a remainder of -3?  
* `mod` gives the first interpretation; `remainder` gives the second.
     * `mod` policy
Do inexact numbers always have a decimal point?

* A decimal point signals to Scheme (or Scheme signals) that it's
  inexact.

Lab
---

Debrief
-------


