This course is an introduction to software develpment, focusing on web applications, for students with at least three semesters of programming experience including object-oriented design.
I have four primary learning goals for you in this course:
We will undertake these goals in parallel. However, the first half of the semester will focus on learning XP and learning new technologies, while the second half of the semester will focus on the project, along with developing additional skills and knowledge of interest to the class.
All of our textbooks are available through the Grinnell College Bookstore and online booksellers. (If you haven't figured this out already, note that technical books are often significantly cheaper online.)
In choosing textbooks, I aimed to select books intended for
professionals rather than only for students. If you ever feel a book is
assuming something you don't know, ask about it!
Michael Hartl, Ruby on Rails 3 Tutorial: Learn Rails by Example, Addison-Wesley, 2011. ISBN 978-0-321-74312-1.
As you may have guessed from the plethora of technology books
out there, even professionals learn new technologies from books. This
is an up-to-date and highly-rated guide to Ruby on Rails. (In fact, a
who is a professional Web developer recommended it to one of you.)
Beyond its focus on a realistic application, I like that this book
integrates test-driven development (TDD), revision control, and
frequent releases--all important parts of XP methodology--from the very
beginning. Because Rails is an evolving technology, I'll be learning
the latest version along with you.
James Shore & Shane Warden, The Art of Agile Development, O'Reilly, 2008. ISBN 978-0-596-52767-9.
The Art of Agile Development is intended for professional software development teams who are adopting an agile methdoology, specifically Extreme Programming (XP). We will need to adapt some aspects of XP to our academic setting. I like that this book goes in depth in describing XP practices, so that after reading about them you can really do them. I also have experience with XP and other agile methodologies and can serve as a mentor.
Judith S. Bowman, Sandra L. Emerson, & Marcy Darnovsky, The Practical SQL Handbook: Using Structured Query Language, 3/e, Addison-Wesley, 1996. ISBN 0201447878.
SQL has been standardized for a long time (relative to other
technologies) and is slow to change, I've selected an older and
therefore cheaper textbook. (Used copies cost just a few dollars. UPDATE: I also have copies from SamR that you may borrow.)
Besides the price, I like that this book is focused on what
professionals need to know (see a theme here?) rather than database
theory. Ideally, every computer science graduate should know at least
the basics of database design and SQL.
Part of being a professional is mastering your tools. However, the Ruby on Rails 3 Tutorial teaches just enough Ruby to get started with Rails. And unless the class elects to study Ruby in our "Tech Topics" towards the end of the semester, we won't be studying Ruby in class; instead, you'll be learning Ruby on your own.
Another part of being a professional is choosing your own resources
to learn from. There are several highly rated introductions to Ruby,
all similar in price. Therefore, rather than recommending a particular
book, I'm letting you choose what you prefer. You can browse the books
at the College Bookstore; I'll also lend my copies to the MathLAN
Each book has a distinct approach and personality. Therefore, in listing the books below, I'll let each book speak for itself:
The main text of this book has four separate parts, each with its own personality, and each addressing different aspects of the Ruby programming language. In Part 1, Facets of Ruby, you'll find a Ruby tutorial. ... One of the great things about Ruby is how well it integrates with its environment. Part II, Ruby in its Setting, investigates this. ... Part III, Ruby Crystallized, contains more advanced material. Here you'll find all the gory details about the language... The Ruby Language Reference is Part IV. It's big. We document more than 950 methods in more than 48 built-in classes and modules... On top of that, we now document the library modules that are included in the standard Ruby distribution (98 of them).
This book is an updated and expanded version of Ruby in a Nutshell (O'Reilly) by Yukihiro Matsumoto [creator of Ruby] , who is better known as Matz. It is loosely modeled after the classic The C Programming Language (Prentice Hall) by Brian Kernighan and Dennis Ritchie, and aims to document the Ruby language comprehensively but without the formality of a language specification. It is written for experienced programmers who are new to ruby, and for current Ruby programmers who want to take their understanding and mastery of the language to the next level.
The Well-Grounded Rubyist is optimized for a reader who's done some programming and perhaps even some Ruby and wants to learn more about the Ruby language--not only the specific techniques (although the book includes plenty of those) but also the design principles that make Ruby what it is. ... The Well-Grounded Rubyist is a serious, extensive look at the Ruby language. But it isn't a complete language reference. There are core classes I say little or nothing about, and I discuss only a modest number of standard library packages.
You probably won't learn Ruby from this book. there is relatively little in the way of introductory or Tutorial information. ... Having said that, programmers are a tenacious bunch, and I grant that it might be possible to learn Ruby from this book. Chapter 1, "Ruby in Review", does contain a brief introduction and some tutorial information. ... This book is largely intended to answer questions of the form "How do I ...?" As such, you can expect to do a lot of skipping around.
You may also want to look for screencasts or other online resources
on the Ruby language. If you find something really good, please share
it with the class.
Janet Davis (firstname.lastname@example.org)Created August 25, 2012