A new section of each course starts monthly. If enrolling in a series of two or
more courses, please be sure to space the start date for each course at least two
months apart.
All courses run for six weeks, with a two-week grace period at the end. Two lessons
are released each week for the six-week duration of the course. You do not have
to be present when lessons are released. You will have access to all lessons until
the course ends. However, the interactive discussion area that accompanies each
lesson will automatically close two weeks after the lesson is released. As such,
we strongly recommend that you complete each lesson within two weeks of its release.
The final exam will be released on the same day as the last lesson. Once the final
exam has been released, you will have two weeks to complete all of your course work,
including the final exam.
Week One
Wednesday - Lesson 01
The Ruby programming language uses simple, easy-to-remember syntax, along with a host of special functions that perform many time-consuming programming jobs for you. These features make it an excellent choice for creating dynamic Web pages. We'll start the course by examining what Ruby is all about, including Ruby on Rails, which allows you to incorporate Ruby code directly in your HTML code. Throughout the course, we'll use Ruby on Rails to develop a full-blown blogging application called the Restaurant Review. Then you'll be able to take what you learned and use it to develop other dynamic applications. Today, you'll take the first step in creating your own dynamic Web site by installing a Ruby on Rails server on your computer.
Friday - Lesson 02
In this lesson, we'll look at the basics of the Ruby programming language. You'll learn how to store and manipulate data in Ruby programs and how to use some of the built-in functions Ruby provides. Data is crucial to any programming application, and understanding how Ruby processes data will make it much easier to complete our course project.
Week Two
Wednesday - Lesson 03
Today we'll look at three features that are crucial to the operation of just about every Ruby program you'll ever create. First, we'll look at structured commands, which allow you to alter the flow of a program based on values within the data, such as a variable. Following that, we'll discuss using loops in Ruby. Loops are a common way to process multiple data items with a minimum amount of code. Finally, we'll see how Ruby can use arrays to hold values of similar data and explore how to extract those values from the arrays.
Friday - Lesson 04
One of the main features of the Ruby programming language is that it's object-oriented. We'll start this lesson by looking at the general principles behind object-oriented programming (OOP) and how it differs from the regular programming you may be familiar with. Then we'll see how Ruby implements OOP features and start playing with some object-oriented code. We'll finish by digging a little deeper into Ruby coding as we explore how you can customize pre-built objects.
Week Three
Wednesday - Lesson 05
Today you'll find out about the Ruby on Rails concept of scaffolding. The scaffolding process automatically produces generic code for most of the common features contained in Web applications. You'll generate the scaffolding code for your Restaurant Review project and examine its features.
Friday - Lesson 06
In this lesson, you'll learn exactly how to modify the scaffolding code to customize your Web pages. We'll start by looking at the database model code. We'll add some features that make the code more meaningful for our application, and we'll see how we can easily modify the database tables in the project. Finally, we'll start actually rearranging code in the scaffolding files by altering how the Web pages for the Restaurant Review display data.
Week Four
Wednesday - Lesson 07
It's important to liven up your Web site using common HTML features, as well as Cascading Style Sheets (CSS). Today we'll walk through the steps necessary to modify the main application Web page layout, and you'll see how to incorporate an external CSS style sheet file to add color to the Restaurant Review project.
Friday - Lesson 08
In this lesson, we'll discuss how to add new features to the generic ones that Ruby on Rails generated. You'll see how to add new data tables to the project, as well as the Web pages necessary to interact with them. We'll also look at how to create the Ruby code necessary to incorporate the new data on every page in the application by just creating a single file!
Week Five
Wednesday - Lesson 09
Thanks to the popularity of Google and Yahoo!, Web surfers expect every good Web site to provide data searching features. Our Restaurant Review blog will be no different. Today we'll examine common searching algorithms and see how they affect the performance of the application. You'll find out how to use some SQL tricks along with Ruby coding to incorporate searching in your Web site.
Friday - Lesson 10
Just saying the word security can send Web application administrators into a frenzy. Any dynamic site that allows visitors to post data needs to include some level of security. In this lesson, we'll look at what we can do to protect our Restaurant Review application from vandals and comment spammers. You'll learn how to use Ruby on Rails to control who can post reviews by creating a login system and tracking visitors.
Week Six
Wednesday - Lesson 11
Testing your application is a crucial part of the development process. You want to make sure that everything works as it's supposed to before turning it loose on the Internet. Fortunately, Ruby on Rails provides excellent features for automatically testing applications. In this lesson, we'll look at those features and how to use and customize them. You'll see how to use testing to narrow down where a problem occurs so that it's easy to find it and fix it.
Friday - Lesson 12
Today we'll take a closer look at how Rails handles our data with the default SQLite database. You'll see how you can view and manipulate data outside of the Rails application. And we'll also discuss how Rails provides a production environment geared for performance—instead of the development environment we've been using.