CSC151.02 2016S, Class 02: An Introduction to Linux
===================================================

_Overview_

* Preliminaries.
    * Admin.
    * Upcoming Work.
    * Extra Credit.
    * Questions.
* Lessons from day one.
* Common parts of an algorithm.
* Getting started with Linux.

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

### Admin

* One handout!
    * Lab manual for today.
    * Today is the last day that I distribute readings and labs in hardcopy.
      After today, I will assume that you can find them online.
* Office hours: MTWF 10-11, Tu 1-2.  Sign up at
  <http://rebelsky.youcanbook.me>.
* Weekly review sessions:
    * Wednesday at 8pm in the CS Commons (Zachary)
    * Thursday at 10am in this room (Sam)
    * Thursday at 8pm in the CS Commons (Kumar)
* Mr. Stone will be distributing passwords for our machines some time during
  class today.
* Support resources for CS students
    * Class mentors
    * Evening tutors (Sunday-Thursday, 7-10 pm; Sunday 3-5 pm)
    * Individual tutors

### Upcoming Work:

* [Assignment 1](../assignments/assignment.01.html) due TONIGHT at 10:30 p.m.
* Readings for class 3: 
    * [The DrRacket Program Development Environment](../readings/drracket-reading.html)
    * [Beginning Scheme](../readings/beginning-scheme-reading.html)
    * [How Scheme Evaluates Expressions (Take 1)](../readings/scheme-eval-1.html)

### Extra Credit

#### Academic

* Scholars' Convocation, Thursday, 11 am, JRC 101: Surveillance Techniques
  of the Romanian Secret Police.

#### Peer

* Socrates Cafe [tbd]
* Pun Club, 4pm, Younker Lounge
* Track and Field at Cornell this Saturday.
* Swimming at Macalester this Saturday.

#### Future

* Track and Field Grinnell Invite February 6.
* Swimming February 6 vs. UN and IAState.

### Questions

_Can I ask someone about the index cards / flash cards at the back of
 the room?_

> Yes.

_Will you be ordering more?_

> Yes.

Plan for the Day
----------------

* Administrivia [5 min]
* Small group: Making groups [5 min]
* Small group: What did you learn yesterday? [5 min]
    * Yes, we all got "be precise!"  What else?
    * Introduce yourselves!
    * Five or so learning outcomes from yesterday.
* Large group: Share answers [5 min]
    * I will call on folks randomly
* Small group: What did you learn about algorithms? [5 min]
    * Think about what I might ask.
    * Come up with questions for me.
* Large group: Overview of algorithms [5 min]
* Lab [20 min]
    * Leave when you are done.

Lessons from day one
--------------------

* Computer science is the study of algorithms and data structures
* A sequence of instructions to perform a certain task
* Watching an algorithm helps us avoid mistakes (or at least correct them)
* If we are not careful, an algorithm can run forever
    * Unscrew a lid on a pop-top jar
    * Place something open-side up when there is no open side
* When things go wrong, it's funny.
* Don't be too specific.

Come up with five more interesting lessons and be prepared to share with 
the class.

* Bad instructions are potentially dangerous.  "Pick up the knife."
  "Remove the file."
* "Your CS prof is a jerk."  (joyous, energetic, rebelsky, knowitall)
* Limiting options makes things easier to describe.
* Sequencing is important.
* Establish knowledge in advance. / Know the data you are working with.
* It's okay to say: "Hey, Rebelsky, ask someone else."
* If you give ambiguous instructions, they will likely be interpreted in
  the wrong way.  (E.g., be clear which item you are referring to.)

Lab: Getting started with Linux
-------------------------------

