CSC151.01 2015S, Class 01: An Introduction to Algorithms
========================================================

_Overview_

* Preliminaries.
    * Admin.
    * Upcoming Work.
    * Extra Credit.
    * Attendance.
    * Questions.
* Introduction: What is CS?
* Exercise: An everyday algorithm.
* Debriefing on exercise (continues tomorrow).

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

### Admin

* Welcome to CSC 151!  I'm Sam.  Your mentors are Erin and Albert.
* Grab a standard playing card.
* Grab a blank card and a pen, write your name on the card, illustrate
  the card if so inclined, and hand both card and pen to a mentor when 
  you are done.

### Upcoming Work

* [Assignment 1](../assignments/assignment.01.html) due tomorrow night.
* Readings for Wednesday:
  [Grinnell's Linux Environment](../readings/linux-reading.html) and
  [Parts of Algorithms](../readings/algorithms-reading.html)

### Extra Credit Opportunities

#### Academic 

* Today, 6:00 p.m., Herrick, Ta-Nehisi Coates, "The Case for Reparations"
* Friday, 12:10 p.m., JRC 224A (Day PDR), CS Table, "Computer Programming
  as an Art" (copies outside my office)

#### Peer Support (Morning Section)

* Swimming, Friday, January 30, 6:30 p.m., Osgood Natatorium
* Swimming, Saturday, January 31, noon, Osgood Natatorium
* Eat lunch today.

### Attendance

* I would like to know
    * What name to use for you in less formal situations.  This will usually
      be your given name or a nick name.
    * What name to use if I am addressing you by family name or last name.
    * Your preferred gender pronoun.
    * Optionally, any upcoming events in which you are participating that
      you would like classmates to attend.
* When I call a name that resembles your name, please answer using something
  like the following models.  (It's okay if you don't have any upcoming
  events.)
    * Hi.  My name is Casey Smith.  I prefer that you call me "Case" or
      "Mr. Smith".  My preferred gender pronouns are he, him, and his.
      I'm singing in a Con Brio concert this weekend, and I hope to see many 
      of you there, even if you are not opposed to toy trains.
    * Hi.  My name is Casey Smith.  I prefer that you call me "Casey" or
      "Ms. Smith".  My preferred gender pronouns are she and her.  I'm
      swimming against cornfolk from the neighboring state on Friday,
      January 30, and we always like to have folks cheer us on.
    * Hi.  My name is Case Smith.  I prefer tha y ou call me "Cay" or
      "Mx. Smith".  My preferred gender pronouns are zi and zir.  I'm
      giving a math talk on non-Euclidean combinatorics next Tuesday.
      I look forward to expanding your mind.

### Questions

Introduction: What is CS?
-------------------------

* Turn to the person next to you, introduce yourself, and discuss what
  you think Computer Science is for the next two minutes.
* Some student answers
    * Computer Science is about computer languages that let us create
      programs that help us in everyday life.
    * Creating functions to have the computer do stuff.
    * A study of solving problems using computational processes.
      (E.g., getting through a maze in the fewest amount of steps.)
    * Learning about how computers work and making them do things.
* But what is a computer?
* And what is science?
    *  A way of studying the world that we learned in high school, following
      the scientific method.  Observe, develop a hypothesis, design an 
      experiment to check that hypothesis, conduct the experiment, 
      analyze the data, determine increased or decreased likelihood of
      correctness
* Computer science is the study of algorithms and data structures
    * Algorithms: Sequences of instructions to accomplish a task
    * Data structures: Mechanisms for orgazing information (typically
      in support of algorithms)

Exercise: An everyday algorithm
-------------------------------

* Find the other three people with the same playing card value
* How could you have made this process more efficient
* Write instructions that will allow me to make an almond butter and
  jam sandwich
* Assume:
    * I know english and the names of objects
    * I am relatively clueless. 
    * If you give me an ambigious instruction, I am likely to interpret 
      it in a different way than you intended.
    * If you provide insufficient information, I may fill in the
      additional information in a different way than you expect.

Debriefing on exercise
----------------------

What are three things you learned from the AB&J algorithm?

* When things go wrong, it can be funny.
* When things go wrong, people can get hurt.
* You need to know a lot about the problem domain so that you can
  develop clear steps.
* If you make one mistake, everything afterwards is almost pointless.
    * Conclusion: Develop algorithms incrementally.
* You need to be really clear and specific about what you are saying.
* Working in a group helps you do better.
* Start on paper.
