Bootstrapping an Undergraduate Programming Corps in Ruby on Rails PowerPoint PPT Presentation

presentation player overlay
1 / 12
About This Presentation
Transcript and Presenter's Notes

Title: Bootstrapping an Undergraduate Programming Corps in Ruby on Rails


1
Bootstrapping an Undergraduate Programming Corps
in Ruby on Rails
Course
  • Armando Fox, Will Sobel, Michael Armbrust, David
    Patterson,and 27 brave undergraduates

2
RAD Lab Vision
Web 2.0 apps
3
Why this course?
  • Train students
  • RoR, agile development, AJAX/user interfaces,
    deployment management, ...
  • Attract end users to RAD Lab platform
  • Student-conceived apps generate traffic
  • We provide hosting service
  • Exercise RAD Lab infrastructure
  • Deploy apps using Declarative Datacenter
  • Stress test with workload generator
  • Predict performance with AWE, predict power with
    DRAPE
  • Debug performance problems using trace

4
Why RoR?
  • We believe RoR will have lasting impact
  • Tastefully chosen features in language
    framework combine best ideas from programming
    language literature
  • Bootstrap RoR expertise within EECS
  • Exceptionally rapid prototyping of Web 2.0 apps
  • Incremental development
  • Sophisticated UI support
  • Rapid bootstrapping doesnt require learning bad
    habits

5
Target Model Enrollment
  • Guided individual study, 1 unit, P/NP
  • Pent-up demand 74 came to first meeting, 27
    enrolled, limit 30
  • Prereq B in CS intro. prog. structures (61A)
  • Near term Self-sustaining, extracurricular
    programming club
  • pioneered by CS lecturer Dan Garcia
  • Students retake for credit multiple times
  • Veterans help bootstrap apprentices
  • Long term Package into self-paced course

6
Weekly lectures labs
  • 2-hr Lectures introduce Rails/Ruby topics
  • Largely Will Sobel, some Armando, 1 guest
  • Rapid bootstrapping vs. understanding theory
  • Rails easy/useful even if dont understand it
  • Concepts supplemented by lab exercises
  • Hack sessions supervised lab sessions
  • Primarily for project work
  • Students mostly develop on own laptops
  • Deploy to production ISP (RAD Lab cluster)

7
Real World Practices
  • Development vs. deployment environments tools
  • Real version control (Subversion)
  • Automated deployment tools
  • Regression testing techniques
  • Database schema migration
  • Use cases CRC cards (Class/ Responsibility/Colla
    borator poor mans UML) specify use cases and
    inter-component collaboration
  • Checkpoints (releases) forced feature trimming

8
Selected Projects...
  • WeJoinIn (real users!) staff your volunteer
    events
  • Calentopia organize your academic life
  • 5um (next generation forum used as bug board by
    developers) organize stay on top of all the
    forums you read
  • Lookbook share your fashion photos
  • JamNet GarageBand goes online
  • Telebears 2.0 better course searching
    registration
  • MusicTree share your playlists
  • Thing on Rails a collaborative work portal
  • Mmmusic a community around music tracks

9
Lessons/Surprises
  • Gaps in tool sophistication
  • Before Unixmake, rcs, gdb, emacs, ssh Today
    Win32IDE
  • Limited conceptual understanding of
    edit/compile/run/test/ checkin cycle
  • Made already-complex deployment configuration
    even worse
  • Gaps in programming knowledge despite CS61A
  • Review Higher-order functions, OOP, list-level
    parallelism (map/reduce), message passing, other
    programming concepts
  • Gave tutorial on topics introduced later or not
    at all
  • UI development, M/V/C, relational store,
    client/server arch.
  • testing (regression/functional/integration),
    branched development
  • Opportunity combine sound pedagogy with real
    world skills gratification of crafting a
    useful artifact early in your CS career.

10
Future Plans
  • Restructure syllabus for Fall 07,Sp 08 offering
  • Mirror homeworks in CS61A to reinforce concepts
    show how used in practice (h.o. functions, etc.)
  • Controversial dont introduce relational
    storage?
  • Hire 2-4 students to work as RAD Lab interns
  • Senior students help novices, staff lab, etc
    next fall
  • Telebears2, Calentopia to be continued Fall07
  • Other RoR apps/work to be done?

11
Summer short course?
  • Probably August probably Will Armando, poss.
    w/help from students
  • Proposed format
  • Morning narrated, hands-on, fast intro to
    RoRWalk thru prefab app(s), add some
    featuresTour of base libraries, plug-ins, etc.
  • Afternoon app improvAudience suggests app to
    build on-demand
  • Tonight? Rails, the Movie
  • part I, 15 min. part II, 5 min.

12
Conclusion Well-received First Offering
  • Thanks to all who helped out
  • Michael Armbrust for being unpaid TA
  • Peter Bodik for help with project checkpoints
  • Jon Kuroda, Mike Howard for setting up RAD Lab
    ISP hosting for projects
  • Jimmy Kittyachavit for guest lectures
  • CS 98/198 students for being guinea pigs
  • Recommendation spend an hour learning how to
    think RoR
Write a Comment
User Comments (0)
About PowerShow.com