RubyOnRails'berkeley'edu - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

RubyOnRails'berkeley'edu

Description:

Yumify: http://www.yumify.com/ Hesperian: http://hesperian.rorclass.org ... Bet on RoR (with RAD Lab extensions, improvements, ...) as DC integration language ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 12
Provided by: arman3
Category:

less

Transcript and Presenter's Notes

Title: RubyOnRails'berkeley'edu


1
RubyOnRails.berkeley.edu
  • Armando Fox, Will Sobel, Alex Bain, Arthur
    Klepchukov, Dave Patterson

2
Why?
  • RoR great candidate for authoring future Web
    applications
  • High level of abstraction gt allows innovation
    below rich interface
  • High level programmer productivity gt fast
    gratification without sacrificing pedagogy
  • Software eng. courses lag industry practice
  • Shrinkwrap gt DADO current courses focus on D,
    largely exclude ADO
  • Write it yourself gt integrate large building
    blocks extend existing open-source packages
  • Write once ship gt continuously
    refine/fix/deploy
  • Keep up with the latest trends like Facebook API
    and OpenSocial

3
Developing RoR Expertise at Berkeley
Best practices for RoR development, deployment,
scaling
  • Investigation of RoR performance and scalability
    (with Sun)

Courses extracurriculars
Instructional computing infrastructure
  • Real-world deployment environment for students
  • 1-day short course
  • Undergraduate project course
  • Meetups
  • Future SW Engineering course

4
Short Course Meetups
  • 1-day intensive intro to RoR concepts
  • well attended by faculty, industrial sponsors
  • Meetups (East Bay Ruby Meetup) now hosted in
    Soda Hall (thru Summer 08)
  • http//ruby.meetup.com/81/
  • Mailing list ror-announce_at_lists.eecs.berkeley.ed
    u

5
CS98/198 Web 2.0 Development in RoR
  • Aimed at early undergrads (soph/jr)
  • prereqs programming structures in Scheme, basic
    OOP skills (at level of Java or equivalent)
  • Goal positive gratification for putting skills
    to use early in your CS career developing
    something you want
  • Learn marketable skills and develop good
    programming habits
  • Objective small-group (2-4) to develop a web
    application of your own design and choosing
  • Weeks 1-2 finger exercises in Ruby/Rails, intro.
    to Web technologies, intro. to relational
    databases
  • Week 3 Present project ideas, form groups
  • Week 4 Do user stories, CRC cards to floorplan
    development milestones
  • Week 5-11 intermediate checkpoints, final demo

6
Teaching Web 2.0 Development Cycle
  • Goal Industry-realistic intro to Web 2.0
    development
  • Agile user stories, velocity, CRC cards,
  • Management testing/test-first,SCM using
    Subversion
  • Interactive CSS/XHTML separation, JavaScript,
    AJAX
  • Deployment Capistrano, Apache, Mongrel, MySQL

7
Teaching Ruby
  • Heavily functionally-flavored
  • minimalist, consistent syntax semantics for OOP
    (inherited from Smalltalk)
  • Provides useful, concrete context for
    reinforcing key ideas from introductory CS
    programming course
  • render chunk of Web page gt closures
  • enumerable objects of varying types gt
    iterators
  • convention over configuration gt reflection,
    higher order functions/metaprogramming
  • i.e., opportunity to reinforce important but
    subtle CS concepts show them in action

8
S07, F07, S08 iterations
  • 2 projects with external customers
  • Yumify http//www.yumify.com/
  • Hesperian http//hesperian.rorclass.org/
  • hire strongest alumni to help run course help
    with other RAD Lab RoR projects
  • connected to Web 2.0 Entrepreneurship course
    (Center for Enterpreneurship and Technology, UCB
    College of Eng.)
  • If register for both, get 1 unit credit towards
    Management of Engineering Innovation
    Certificate
  • Driving improvements in Instructional Computing
    environment

9
Instructional Computing Enhancements
  • Joint work with Shel Waggener (UCB CIO), Bill
    Allison et al., Instructional Svcs. Tech.
  • Goal emulate real-life development/deployment
    environments for Web apps
  • Campus-wide TextMate editor license
  • Campus-wide Subversion repository via CalNet
    authentication
  • Shared Hosting and MySQL instance for Web apps
  • Future EC2-like, virtual-machine-based student
    deployment environment

10
Future Software Engineering Using RoR/Python?
  • Goal software engineering pedagogy in context of
    network service development
  • Medium-to-large project/team management, agile
    development
  • Deployment, measurement, scaling/optimizing
  • Discussion with Paul Hilfinger
  • Summer 08 planning
  • Fall 08 CS 194 with CS upper division credit
  • Spring 09 CS 169?

11
Conclusion/Discussion
  • Bet on RoR (with RAD Lab extensions,
    improvements, ...) as DC integration language
  • Create courses, extracurricular activities,
    community/expertise around RoR
  • Early success students can choose own projects,
    get working prototype in 8 weeks, exposure to
    industrial practices/tools
  • radlab.cs.berkeley.edu/wiki/RoR
Write a Comment
User Comments (0)
About PowerShow.com