Grading

Attendance and Participation: 35%


Assignments and presentations: 40%


Final Project: 25%

Course syllabus

1. November 7th: Introduction/HTML

The Web uses a client/server communications model. A client, such as a web browser, interacts with a server, typically requesting information from the server. This information is most frequently rendered in HTML (Hypertext Markup Language.) HTML is a set of instructions to a browser about what information to include in a web page (text, but also images, sound, and other media) and how to render that information.

In this class, you will learn the basics of HTML tags, create and modify a basic HTML page with forms, and learn how to upload that page to your account on a web server.

Readings: Programs vs. markup or why HTML authoring is not programming (http://www.cs.tut.fi/~jkorpela/prog.html), W3Schools Tutorial (http://www.w3schools.com/html/), HTML Dog Tutorials - Beginner  (http://htmldog.com/guides/htmlbeginner/).

Assignment: First, make sure you have all the necessary software installed. You can review the software needed at http://liesjehodgson.com/commlabweb/Softwareneededbeforeclass.pdf. Next, check the assignment due this week in the assignments section on the class website.

2. November 14th: HTML Forms and CSS

In the second week, we will dive into CSS to add styling to your pages. CSS stands for Cascading Style Sheets and is a language used for setting the layout of a page on the client side.

We'll go through a quick introduction to JavaScript to learn how to make pages more dynamic. You will learn how to access objects in HTML, manipulate them, and change their styling dynamically. 

Readings: HTML Dog Tutorials - Intermediate (http://htmldog.com/guides/htmlintermediate/). HTML Dog CSS Tutorials - Beginner, Intermediate and Advanced (http://htmldog.com/guides/). Go through the Interactive Javascript tutorial at Code Academy (http://codeacademy.com/).

Assignment: Check the assignment due this week in the assignments section on the class website.

3. November 21st: Sinatra Introduction and Routes

Sinatra is a simple web server which makes it easy to connect a specific URL directly to relevant code and returns its output in response. You will learn two of the most basic HTTP request methods: GET and POST, as well as how to use a parameter in the request. The class will introduce basic route patterns and a method of organizing a Sinatra app.

Readings: Sinatra The Book - Read Introduction and Getting to know Sinatra (http://sinatra-book.gittr.com/), I did it my way - Project 1 (http://ididitmyway.heroku.com/past/2010/1/10/project_1_reverse/).

Assignment: Check the assignment due this week in the assignments section on the class website.

4. November 28th: Sinatra and DataMapper

Following the Sinatra introduction of server-side scripting, we will examine working with data, specifically with DataMapper, which allows Sinatra to access stored data. You will learn how to take data from the db and write it to the browser or vice-versa. In addition, we will go through a few ways of sorting and filtering results.

Readings: Sinatra The Book - Read Models (http://sinatra-book.gittr.com/), 

I did it my way - Superdo (http://ididitmyway.heroku.com/past/2010/3/30/superdo_a_sinatra_and_datamapper_to_do_list/).

Assignment: Check the assignment due this week in the assignments section on the class website.

5. December 5th: Advanced Sinatra & Workshop

This includes doing more advanced routes, conditional routes as well as working with more complicated data structures. We'll also have a workshop session at the end of the class to cover questions that come up as you prepare for your final projects.

Readings: Go through the interactive JavaScript tutorial at Code Academy (http://www.codecademy.com/)

Assignment: Check the assignment due this week in the assignments section on the class website.

6. Friday December 9th: Advanced Sinatra & Workshop

Even more advanced routes and data, along with another workshop session to prepare for next week's final project presentations.

Assignment: Work on your final project.

7. Wednesday December 14th: Show Sites

During the class, students have built a form that takes user data, stores it, manipulates it, and returns the results. You can demonstrate these capabilities by building any basic tool that uses these interactions.