CS2550 Web Programming 1


Dr. Brian Durney
Office: CS520C
Phone: 801-863-6390
Email: bdurney@uvu.edu
Office Hours: MWF 10:00-11:30

Course Objectives

Upon successful completion of this course, students should be able to:

How to get the most out of this course

The premise for this course is that you learn by doing. In order to reach the objectives listed above you will need to practice doing those kinds of things: designing, implementing, testing and debugging web applications. The more practice you get, the more you will learn and the better you will understand the material. Keep in mind that you cannot learn web programming by sitting in class (or watching videos) any more than you could learn to ride a unicycle by watching someone else ride.

You can think of the programming assignments as a series of tutorials to help you learn JavaScript and web programming. The assignment specifications explain key aspects of the assignments and, in many cases, give examples. Be sure to read the assignments and related notes carefully because that's where most of the learning materials are for this class. That's different from many classes where the material is presented in the classroom or in textbooks.

Although the textbook and notes provide a good background and the assignment specifications explain a lot about the assignments, expect to spend some time searching the web for information. However, if you have read the assignment and the relevant parts of the textbook, and spent a reasonable amount of time searching, you are welcome and encouraged to ask the instructor and your classmates for help.

It's best if you choose a project that is interesting to you, because the more time you spend programming, the more you will learn. The students who learn the most in this class are the ones who go beyond the requirements and make a full-featured web application.


Modern JavaScript: Develop and Design by Larry Ullman
Peachpit Press, ISBN 0-321-81252-2

Lesson Structure

Students should read their UVLink email frequently and check the course web page (http://universe.tc.uvu.edu/cs2550) for announcements. Students will turn in assignments on Canvas.

Email to the instructor should be sent to bdurney@uvu.edu and should have CS2550 in the subject line.

The course is divided up into fifteen lessons. Each lesson has a reading assignment and some notes associated with it. Most lessons also have a quiz and some have a graded discussion question. Quizzes must be done during the lesson week to receive credit. Assignments are subject to change until the week of the associated lesson, so if you work ahead you might need to make some changes to your assignment.


Grades will be based on the following:

Web Programming Assignments 45%
Final Project 15%
Exams 30% (10% each)
Quizzes 10%

Grading scale:
90% to 92% A- 93% and above A    
80% to 82% B- 83% to 86% B 87% to 89% B+
70% to 72% C- 73% to 76% C 77% to 79% C+
60% to 62% D- 63% to 66% D 67% to 69% D+
   59% and below F   

NOTE: The percentages shown in Canvas aren't necessarily the percentages I use to determine course grades. I post scores on Canvas so that students can check their individual scores, but the percentages on Canvas are not weighed correctly for calculating course grades. Canvas has limited options and doesn't allow me to set up grades the way I do in my spreadsheet.

Web Programming Assignments (45% of final grade):

There will be a number of programming assignments turned in for credit. All assignments are due as specified on the assignment page. Assignments (except for Assignment 0) will be due on Mondays.

Late assignments will lose 10% per calendar day (including weekends and holidays) after the due date. Assignments turned in more than 5 days after the due date will not receive any credit.

I will use a recent version of Safari, Chrome, or Firefox to grade assignments, so please make sure your web applications work in one of those browsers. Also, I will not give any credit for programs with syntax errors or for code that does not produce any observable results.

The assignments page explains how to turn in assignments.

Do not copy someone else's code or files or allow someone else to copy yours. You are welcome, and encouraged, to discuss assignments with others, get help from other students, and so on, but not by showing your code, looking at someone else's code, or working on assignment code together. There are no group projects in this course.

If I find copied code, I will deduct a penalty from the scores of all students whose work contains the copied code, which could result in a score of zero for an assignment. That means that if you let another student read your code you might not get any credit on the assignment. Repeated incidents of copied code will result in more severe penalties, possibly including a failing grade for the course.

Cheating (including copied code) and suspected cheating will be reported to the Office of Student Conduct.

It's important to carefully follow the specifications for programming assignments and the project. Failure to follow the specifications can result in losing points and/or a delay in grading your project. I will not give credit for code that does not produce observable output.

Please check your files before turning them in. If you submit the wrong zip file, forget to include a file, or need to resubmit for some other reason, there will be a resubmission penalty of at least 10%. There is no penalty for resubmitting an assignment before the due date.

Final Project (15% of final grade):

The final project is a web application. Most assignments will require you to write code that will be used in the final project, but you will need to do more for the project than simply finishing all of the assignments. For more information, see the project page.

Quizzes (10% of final grade):

Most lessons will have a quiz. Quizzes will be available on Canvas until the end of the term so that you can use them to study for the tests, but NO CREDIT WILL BE GIVEN FOR QUIZZES TAKEN AFTER THE DUE DATE. You are allowed two attempts for each quiz, with the highest score being the grade for that quiz. All quizzes have a time limit of 30 minutes.

Exams (30% of final grade):

There will be two midterm exams and a final. Each test will count equally towards the final grade (each test represents 10% of your final grade). Exams may be taken in the testing center on campus or at a prearranged, proctored site. You must take all exams during the examination time period: missed exams cannot be made up. No books, notes, or web resources will be allowed in the exams.

Course Schedule