CSC322.01 2016S, Class 01: An Introduction to the Course
========================================================

Please grab an index card and the academic honesty policy.  (If you grabbed
the academic honesty policy when you were in 321, you need not grab it now.)

_Overview_

* Preliminaries.
    * Admin.
    * Upcoming Work.
    * Extra Credit.
    * Questions.
* Course Preview.
    * Quick Course Overview.
    * The Projects.
    * Introductions.
* Strengths Finder
* Team Activities
    * Team building.
    * R&ecaute;ume&eacute; reviews.
* Course Preview Continues
    * More Syllabus Stuff.
    * Wrapup.

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

### Admin

* Welcome back to campus.
* New department academic honesty policy available at
  <http://www.cs.grinnell.edu/academic-honesty-policy>.

### Upcoming Work

* Discuss your project with your team.
* Prepare questions for your community partners.

### Good Things to Do

#### Academic

* CS Table *Tuesdays*!  Upcoming topic: Facebook's Walled Indian Internet
* CS Extras *Thursdays*!  Today's topic: Summer research.  Next week's topic:
  \LaTeX.

####  Peer

* Women's BBall vs. Ripon Saturday at 3pm.

### Questions

Quick Course Overview
---------------------

* Building a medium/large project; continuous
* With a real client (but not mission critical)
* Mentored by an alumnus/a

The Projects
------------

*Current, past, and simulated students will come and talk about their
projects.*

* What is the project?
* Who is the client?
* In what stage is the project?  (Just beginning, nearing completion,
  somewhere in between.)
* Why should someone want to work on this project?
* _Questions from the class._

Board Bank

* Greater Powesheik Community Foundation works with multiple nonprofits that
  have governing boards.  They need members for the boards.
* Current mechanism doesn't let people know about all the opportunities
  available and doesn't let boards know about possible members.  Plus
  it's on paper.
* So we're building the matchmaker for people and boards.
* Client is GPCF; Nicole Brua-Behrens is an awesome person to work with.
* Should be ready to roll out this semester.
* It's meaningful and important.
* You get to read beautiful legacy code and see the project being rolled
  out.
* Current foci for the semester: Better filtering of search results;
  Make it look professional; Squash those buggies (and there are a lot)
* No continuing members.  But we have four former contributors available
  for advice.

Grant Application Management Project (GAMP; it doesn't have charts)

* Building a Web application for GPCF to manage grant applications.
* Currently handled manually (email, Google docs, ad hoc solutions).
* The Web is a better solution; lets us manage applications more easily.
* Partner: Greater Powesheik Community Foundation; work with Nicole, who
  is really nice.
* Current state: Near completion.  Functional aspects are there.  It even
  looks better.  But there's room for growth, particularly for administrative
  stuff.  Usability studies may also be necessary.
    * Likely to be adapted to other purposes this semester.
* Similar reasons to work on this (yay legacy code), plus the chance to 
  adapt code to a new purpose.
* It supports important things, such as educational opportunities and food
  banks.
* The commercial version that GPCF won't buy is $40K.
* No continuing members.  But we have former contributors available for
  advice.

Community Resource Portal

* A new project from last semester.
* There is a huge PDF of community resources (housing, job search, expectant
  mothers).  Goal of making the information available more easily, particularly
  if your primary internet access is through a mobile phone.
* Web site exists and scales for different device sizes.
* It's such an awesome project that AOAs choose to work on it in their
  spare time.
* Hope to put the resource in the hands of MICA soon so that it can be
  much more of a live document.
* Clever links to outside resources, such as Google docs.
* Close to MVP (Minimum Viable Product)
* Needs to move to Heroku and to the client.
* Needs to have better search, such as closeness search.
* Wants a calendar feature too.
* Agh!  Creeping featurism.
* Every county has something like Mid-Iowa Community Action, so there's
  a good chance that this could be used statewide.
* Partner: Mid-Iowa Community Action.  
* You don't have to worry about the design!  But you do have to crush
  bugs and add features.  Still a new project.  And likely to have a
  huge impact.  Also open ended; can grow indefinitely.
* WBC will be continuing on the project, and AOA is our mentor.

Text Message Notification System

* Partner(s): MICA and Project Head Start (pre-K)
* Need: An efficient way to notify parents of students of important
  issues (e.g., school closings) both as a group and individually.
* Text message notification system; assign students to classrooms, etc.
* Important privacy issues: Teachers should not see classrooms other than
  their own; Admins can only see certain classrooms.
* Close to MVP (minimum viable product).  Needs some real testing and 
  bug fixing this semester.  Partners want to try it soon.  
* New features: Partners also want scheduled notification and email
  notification.
* Why? Interesting to work with external things, like email and text 
  messages.  Security is a big challenge.  Awesome group members.
* Two continuing members.
* Sending messages with a Gem.

Introductions
-------------

*We will be working together for the semester.  We should know a little
bit about each other.*

* What do you like to be called
* Preferred Gender Pronoun
* Where are you from?
* When you have spare time, how do you like to spend that spare time?
* What will you bring to the class?

Bring

* TD: UX/Front end
* NS: UX/Front end
* MH: UX/Front end
* EE: UX/Front end; knows Active Records
* RHB: Back end; Strategic
* SS: Likes to design things; Willing to work on anything; Proactive
* EM: Learns well
* WBC: Interpersonal skills
* LG: Depth of experience
* RG: Planning and Learning ; Willingness to do the grunt work
* KC: UX/Front end
* CMV: Organizational skills
* AOA: Lots of experience working on Web applications in multiple contexts.
* AS: Interpersonal skills
* DC: Organizational and interpersonal skills
* DW: Knows multiple programming languages; collaborates well; likes Data Science
* DM: Interpersonal workhorse
* DK: Math and an Analytical Mindset
* AD: Leadership; willing to Speak out; Web site design
* RJ: Detail orientation, good for tracking down and squashing bugs.  Likes coding.
* AM: Hodgepode of technologies.  Knows systems/servcie integration.
* AS: Has been through this before.  Has learned from failure.
* B?: Strategizing and interpersonal.

Projects, Revisited
-------------------

*Once you have finished hearing about the projects, spend five minutes
thinking about the projects and provide me with a ranked list.*

* Board Bank (DC, MH, NS, AS, SS)
* Grant Application Management Program (BL, AS, EM, DK, RJ)
* Resource Portal (RG, DM, AD, TD, DW, BC)
* Text Notification System for Head Start (AM, CMV, KC, LG, EE, RHJB)


Strengths Finder
----------------

* Fortunately, somone else runs this section of today's class.

More Important Issues
---------------------

*You may think this course is about building software, but ...*

* Working with people who aren't computer scientists
* Working in a team
* Testing, testing, testing

More Syllabus Stuff
-------------------

* Expected workload.
    * 3 hours per week in class.
    * 3 hours per week outside of class.
    * Time for coding, reflect, meet with community partners.
* Grading
    * Rubrics for presentations (weekly).
    * Final portfolio.
* Schedule (and its structure).
    * This week: Setup
    * Next week: First meeting with community partners
    * Following week: Alumni mentors (minus one).  Plan to be in class
      from noon until 5:30 p.m.
    * Two week sprints
        * Week one: Define tasks formally (using RSpec or Cucumber)
        * Week two (and parts of week one): Accomplish tasks, Demos in class
    * Wrapup and presentations
    * Turn in portfolio during finals week.

Team Building
-------------

* Introduce yourself quickly to your team members.
* Read each other's R&ecaute;ume&eacute;'s.  Discuss what they tell
  you about the other members of your team.

R&ecaute;ume&eacute; reviews 
----------------------------

Reread the r&ecaute;ume&eacute;s of the folks in your group, keeping
the following questions in mind.

* What story does the r&ecaute;ume&eacute; tell?  (If you had to summarize
  the person in two sentences based on this r&ecaute;ume&eacute;, what
  would you say?)
* What is something in this r&ecaute;ume&eacute; that you might adapt for
  your own r&ecaute;ume&eacute;?
* What makes this r&ecaute;ume&eacute; stand out from the others you read?
* What are two things you would improve in this r&ecaute;ume&eacute;?

I will wander through groups.  I will also provide my own critiques in
next week's class.

Wrapup
------

* Whatever is left

