Getting a dozen 20-year olds to work together for fun and

advertisement
Team of undergraduates
E-Mission
+
= ???
Background and motivation
2050
2035
2020
Baseline
0
50
 Open source travel diary collection (M)
 Extension to survey data collection (P)
 Aggregate modelling and analysis (A)
If you have a project in one of these
areas, come talk to me!
Happy to deploy (with adequate
support) and generate results.
Motivation, overview and structure
 Scale and complexity of problems is large. Lots of work
is interdisciplinary, which makes it hard because you
have to deal with non core CS aspects (I say so!)
 Need for long-term and sustained system building to
tackle large-scale social problems (David Patterson
says so!)
 Many CS students have programming experience when
entering. How to engage them, provide challenging
work and deepen skills? (David Corman says so!)
 Researcher





Help with routine tasks
Skills that researcher does not have (e.g. UI design)
Interdisciplinary skills (e.g. behavioral econ)
Larger pool of people to avoid design bias
Throwing away final projects year after year seems
wasteful
 Students
 Build something real and end-to-end that is used after
class is done
 Learn to identify and split up real-world problems
 If publishable, improve grad school admission chances
 15 students max. 12 finally enrolled
 CS majors, but outside minors related to behavior,
transportation or sustainability a plus
 Made an exception for a business major, didn’t work so
well
 Grades in lower division courses
 Made an exception for a B student really interested in
sustainable transportation, worked pretty well
 First half, skill building. In 2-3 person teams, fix a bug
related to the skill of the week.





Phone based sensing and interaction
Service architecture and backend
People
Data integration
Exploratory Data Analytics
 Second half, form small project teams and work on three
related projects that contribute to e-mission (their choice)
 Tour models
 User models and recommendations
 UI display and gamification
Evaluation and lessons learned
 Experience of planning for class was great




Forced lit review
Forced articulation of ideas to group of non-experts
Forced cleaning up code to allow others to run it
Forced improved documentation
 Students implemented a recommendation system that
worked end to end
 Divided up work into teams
 User model, tour model, alternatives, UI
 Everything “worked” together at the end (with a little
help)
 Class evaluation was positive (6.6/7 overall)
Clustering trips to generate tour models (needs to work for both short and long)
 Ideas are good, but quality is low (demo/prototype)
 Recommendations are not necessarily meaningful
 Evaluation? We don’t need no stinkin’ evaluation
 Why?
 Shared global state and read after write dependencies
 State now distributed across project groups
 Student B depends on Student A’s code, but Student A has a
midterm this week
 Student B depends on Student A’s code, but Student A writes
crappy, ill-tested code. Now Student B has to play janitor.
 Undergraduate students cannot be expected to write
serious infrastructure
 “Testing takes too much time” in spite of many efforts
 Hacky code to “get things to work”
 Prepare to do a ton of “glue” work to get the pieces to
work together
 Integrate early and often to force them to do more
 Don’t make students build complex systems with lots
of dependencies
 Much easier to work on small, bite-size pieces that can
be scheduled around other commitments
 Build the infrastructure and evaluation system first
 One example that can be copied
 Dashboard/autograder/evaluation system
 Contests!
 Focus around multiple alternatives to the example
 Run contests for greater motivation
 Require deployment for evaluation
 Similar to kaggle, but with ongoing data collection
 Errors = bad results = bad score
Will try this out in Spring or Fall 2016 and
report back…
I’d love to hear from you if you have tried something like this.
Download