Your SlideShare is downloading. ×
0
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
RubyOnRails.berkeley.edu
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RubyOnRails.berkeley.edu

267

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
267
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UC Berkeley 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 => allows innovation below rich interface – High level programmer productivity => fast gratification without sacrificing pedagogy • Software eng. courses lag industry practice – Shrinkwrap => DADO; current courses focus on D, largely exclude ADO – Write it yourself => integrate large building blocks & extend existing open-source packages – Write once & ship => 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 Best practices for RoR development, deployment, scaling Courses & extracurricularsCourses & extracurriculars Instructional computing infrastructure Instructional computing infrastructure • Investigation of RoR performance and scalability (with Sun) • 1-day short course • Undergraduate project course • Meetups • Future SW Engineering course •Real-world deployment environment for students
  • 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@lists.eecs.berkeley.edu
  • 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 => closures – “enumerable” objects of varying types => iterators – convention over configuration => 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/R oR

×