Syllabus
CSSE 290 – Introduction to Web Programming
Spring 2012–2013 (a.k.a. 201330)

Prerequisites and Course Content

Prerequisites

The formal prerequisite (or corequisite) is: CSSE 220 – Object-Oriented Software Development or CSSE 221 – Fundamentals of Software Development Honors. I will not assume that students have prior knowledge of any of the course  topics/tools, although you should be very  comfortable with programming in general. If you have learned more than one programming language, that should make it easier for you to learn multiple languages in this course.

The main things you should bring into this course include:

Course Description

This course will introduce principles of and some tools for  web programming.

Topics will include (as many as time allows)

That list probably contains too many topics to cover in one term. I will try to find a "sweet spot" between too much breadth and too much depth.  This course will not make you an expert in any of the tools that we discuss, but should give you a sufficient background in each so that you can later pick up the rest on your own.  Class sessions and homework will include many hands-on activities.  I expect to have a small team project at the end of the course.

Course meetings, Contact info, Outside Help

Class Meeting Times and Places

Instructor

Claude Anderson – Professor of Computer Science and Software Engineering

Email: anderson <at> rose-hulman <dot> edu
Office phone: x8331
Office address: Moench F-210
Home page: http://www.rose-hulman.edu/~anderson
Office hours: MTR 2:00-4:00 PM, WF 12:40-3:00 PM, except when other meetings get scheduled for me.  I am usually in my office most other daytime hours when I don't have class or meetings. I try to keep my calendar up-to-date, so you can see times when I will definitely not be available: http://www.google.com/calendar/embed?src=anderson%40rose-hulman.edu&ctz=America/New_York The "Week" view is probably the best one to use.

Course Assistants

Section 1 in-class
Joe LeeJoe Lee
leed1 <at> rose-hulman <dot> edu
Kai Luo Kai Luo
luok <at> rose-hulman <dot> edu
Section 2 in-class
Eric Vernon Eric Vernon
vernone <at> rose-hulman <dot> edu
Francis Meng Francis Meng
mengx <at> rose-hulman <dot> edu

Piazza

This term I want to experiment with Piazza as a platform for questions and answers. I hope you will participate by both asking and answering questions. If you were not already a Piazza member, you should have received an invitation to join.

Other Sources of Help

Besides the instructors and assistants, other students in the course can often be a great source of help. And they will also learn more if they explain things to you. Many students at Rose-Hulman have done significant web development. If one of them is your friend, why not ask her/him for help every now and then? But don't let someone else do your work for you.

Don’t try to be the Lone Ranger in this course, especially if you do not find the course easy. If you find that you have worked on something for 30 minutes without making any progress, it’s probably time to seek help! Software development is a team sport. The best programmers know that a fresh set of eyes can often spot a problem right away.

Book

Required text

WebStepBook Cover Art

Web Programming Step by Step, by Marty Stepp, Jessica Miller, and Victoria Kirst. Available from the Rose-Hulman bookstore and from lulu.com. The authors often refer to the book as "WebStepBook", and so will I (and I'll abbreviate it WSB).

Textbook's web page: http://www.webstepbook.com Especially useful are the Errata and Supplements pages.

If you find errors in the textbook or in any course documents, I will give you some bonus points. Details of how to report them will be provided soon.

Course Materials Online

Homework and In-class Exercises

Due to limitations of budget and available workers, I do not have any graders this term. With 45 students in the class, I need to limit the number of graded homework assignments. I will give you many hands-on exercises (some of them created by Dr. David Fisher from the Rose ME department), but only a small number (I estimate that it will be between 5 and 8) of them will be graded.

It is important that you keep up with the course material as we go along. You should do the reading and the ungraded exercises; these should make the graded exercises easier.

Late Assignment Policy

Unless I offer a grace period for a particular assignment, all graded assignments must be turned in before the due time if you want credit for them. I'd prefer to allow each student late days, but it is not practical when I am preparing materials for a new course over material that is new to me and I have no graders! I intend to always allow at least a week between giving an assignment and its due date. If you start early, you should have little trouble finishing on time.

Quizzes

I plan to have five in-class quizzes, on Thursdays of even-numbered weeks. There are two possible types of questions:

  1. Open book but not open computer (except perhaps for the use of ANGEL to take the quiz)
  2. Questions that ask you to write code to produce a particular result. You will be allowed to use internet resources, but of course not other students.

Grading

Because I have not taught this material before, I do not have a good feel for how long it will take to cover certain topics. Thus I am not sure whether there will be a team project at the end of the course. So I present two possible grading scenarios. I should be able to announce which one will apply by about week 7.

No Project version

Weight Criteria
10% Attendance
10% Participation in-class, online, and with your in-class partner
10% Code Academy progress
35% Graded Homework problems
35% Quizzes

With Project version

Weight Criteria
8% Attendance
8% Participation in-class, online, and with your in-class partner
8% Code Academy progress
28% Graded Homework problems
28% Quizzes
20% Project

If your quiz average is significantly below your homework average, I reserve the right to lower your grade, since the quizzes are my main way to measure what you can do on your own.

The in-class time in this course constitutes an important learning experience. You should be there. Two or more unexcused absences (or several times arriving late) will affect your Participation grade. More than three unexcused absences may result in failure of the course.

Communication

I usually check email several times per day, and do our best to respond quickly. It is a good way to get answers to simple questions. I also expect you to check your email daily (not necessarily on weekends, although even that is not a bad idea). When I send mail to you, I will use your Rose-Hulman address. If you do not currently read mail that is sent to that address, please have it forwarded to wherever you do read mail.

When you send course-related email directly to me, please include 290 in your Subject: line (and include a real subject as well), so that I can quickly pick it out from among the dozens of daily email messages that I receive. Then I can respond to you more quickly. If an answer to your question is likely to help others in the class as well, or if you think other students may be able to answer it, consider posting it on Piazza instead of sending email.

Bad: When is HW 1 due?
Bad: CSSE 290
Good: CSSE 290: When is HW 1 due?

I welcome your suggestions for the course. Please tell me about things in the course that help you to learn, and things that I might do to improve the course for you. If there is something that you'd like to tell us, but don't feel comfortable with me knowing who it comes from, you can use the Anonymous Suggestion Box survey that I will provide on ANGEL.

Academic Integrity

Recall the Institute policy on academic misconduct:

“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”

Quizzes and homework will be done on an individual basis except where explicitly noted. The simple rule of thumb for individual homework is:

Never give or use someone else’s code.

Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.

We encourage you to discuss the problems and general approaches to solving them with other students, and to get help with debugging. However, when it comes to writing code, it should be your own work (or the work of your group if it is a group assignment). If you are having trouble understanding how some library code works or pinning down a run-time or logic error in your program, by all means talk to someone about it. Get help with debugging when you need it.

If you use someone else’s ideas in your solution, you must:

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly. Nor should you.

For graded assignments, you should not look at another student’s code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.  

Plagiarism or cheating will result in a negative score (i.e., less than zero) for the assignment or exam. Egregious cases will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem and your opportunity to learn. So don’t cheat!