CECS 524 Advanced Topics in Programming Languages Syllabus Fall 2006 Dr. Art Gittleman ECS 534 (310)985-1530 artg@csulb.edu Office Hours: M 5-6 pm, 7-8 pm, W 7-8 pm Code: 10354 lecture MW 8-9:15 pm ECS 308 Grading: Midterm exam Mon. Oct. 23, 100 points Final exam Mon. Dec. 18, 7:15-9:15 100 points Ruby Library group presentation and wiki 100 points Ruby open source group presentation and wiki 100 points Text: See the course site at www.cecs.csulb.edu/~artg/524/ Course materials may be found online. We will use a course wiki to submit reports on Ruby libraries and on Ruby open source projects. Topics: Ruby basics (quickly), blocks, and methods. Ruby gems. Ruby built-in classes and modules that support metaprogramming (Class, Method, Module, Object, Kernel). Metaprogramming and domain specific languages examples. Webrick. Group presentations of Ruby standard libraries chosen from dRuby, open-uri, REXML, RSS, SOAP, Test::Unit, and XMLRPC. Group presentations of Ruby open source projects chosen from ActiveRecord, Rake, XML Builder, Iowa, Nitro, Ruby/ActiveLDAP, Wee, Camping, Mongrel, and RSpec. Goals: To learn advanced programming language concepts in a context of great interest to developers. Ruby on Rails has captured much interest as a web development framework for CRUD applications. The dynamic flexibility of Ruby makes it excellent for metaprogramming (programs that create programs) and creating domain specific languages. David Patterson, recent ACM president and distinguished researcher, recommends a class in reading open source code.