The formal prerequisite is: CSSE 220 – Object-Oriented Software Development or CSSE 221 – Fundamentals of Software Development Honors. 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/tools in this course.
This course will introduce principles of and some tools for web programming.
Future (2015-16) RHIT catalog description (approved by curriculum committee in October, 2014):
Introduction to the client-side and server-side mechanisms for creating dynamic web pages with persistent data storage.
Browser-server interaction via HTTP. Static web page creation using HTML5 and CSS3.
Client-side programming using JavaScript, DOM, JSON.
Server-side programming and data storage using PHP and MySQL.
Asynchronous client-server communication using AJAX and extensions of JavaScript.
Session maintenance using cookies. Security considerations.
This course provides breadth of knowledge of many tools/technologies rather than deep knowledge of any
particular tool/language. No previous experience with web page creation is required.
Topics will include (as many as time allows):
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: | 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://exchange.rose-hulman.edu/owa/calendar/anderson@rose-hulman.edu/Calendar/calendar.html |
Section 1 in-class | |
Jackie
Zhang
zhangx2
<at>
rose-hulman
<dot>
edu
|
Kennan French
frenchkt <at>
rose-hulman
<dot>
edu
|
Section 2 in-class | |
Sarah Kim
kimb2
<at>
rose-hulman
<dot>
edu
|
Austin Niccum
niccumas <at>
rose-hulman
<dot>
edu
|
Grader/general assistant | |
Michel Trittin
trittimo
<at>
rose-hulman
<dot>
edu
|
Email address that goes to instructor
and all assistants: webdev-staff <at>
rose-hulman
<dot>
edu
|
Piazza will be our 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. More details in the Communication section.
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? Just be sure to not 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.
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, References, and Supplements pages.
If you find new errors in the textbook or in any course documents, I will give you some bonus points. Report them in the Bug Reports folder on Piazza.
Due to limitations of budget and available workers, I have only one grader this term. With 48 students in the class, I may 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 6 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.
All graded assignments must be turned in before the due time (always 11:59 PM, usually on Wednesdays) if you want credit for them. I will strive to leave enough time so that if you start on the day I give an assignment, you should have little trouble finishing it before the due time.
Codecademy.com provides interactive courses on a variety of languages/technologies that are relevant to this course, including
There will be three in-class exams, on Fridays of weeks, 3, 6, and 9. Each exam will have one or both of the following parts.
Weight | Criteria |
---|---|
10% | Attendance/participation in-class, online, and with your in-class partner |
10% | Codecademy progress (50 points/week weeks 1-3, 30 points/week weeks 4-8) |
25% | Graded Homework problems (I expect to have 6-8 of these) |
39% | Exams (Fridays of weeks 3, 6, 9) |
16% | Team Project (presentation during exam week) |
If your Exam average is significantly below your homework average, I reserve the right to lower your course grade, since the exams 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. Several students who did not get into this course have begged me to raise the cap and let them in. If you are not going to be able to get up and get here on time, you should drop the class to make room for one of them.
Missing a class meeting (or being more than 20 minutes late) will count as two "attendance points". Being more than five minutes late will count as one attendance point. Accumulating three attendance points before Christmas break or six attendance points before the end of the term may result in a failing grade for the course.
Attendance is the starting point for the participation grade. When you are in class, you should participate discussions and in-class exercises, and assist your in-class partner as the two of you work on assigned tasks.
Piazza will be the main communications medium for this class. You should either subscribe so that you get automatic emails, or check the Piazza site daily. If you have questions or want to discuss something, Piazza is the place to do it. When I make course announcements between class meetings, I will usually post them on Piazza. If someone else posts a question and you know the answer, do not be shy about answering! There are lots of small things that hang people up in web programming; a quick answer from a fellow-student can make a big difference.
When your question contains a "spoiler" for a homework problem, you should email webdev-staff@rose-hulman.edu. I and the five course assistants will get your email, and hopefully one of us will respond quickly.
Finally, if you have questions about grading, need to make an appointment, or other private communication, feel free to email me directly. I usually check email several times per day, and do my best to respond quickly. 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. If I think everyone should see your question and the answer, I will ask you to post your question on Piazza before I answer it.
Bad email subject line: | When is HW 1 due? | Bad email subject line: | CSSE 290 | Good email subject line: | CSSE 290: When is HW 1 due? |
I welcome your suggestions for improving the course. Please tell me about things in the course that help you to learn, and things that I might do to improve the learning experience for you. If there is something that you'd like to tell me, but don't feel comfortable with having me know who it comes from, you can use the Anonymous Suggestion Box survey that I will provide on Moodle. You can also post anonymous messages to the instructor on Piazza.
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.
Exams and homework will be done on an individual basis except where explicitly noted. The simple rule of thumb for individual homework is:
Never give anyone your code or use someone else's code.
Such exchanges are definitely cheating and not cooperation. The CSSE department 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!