Cyndi Rader,, website:

No office hours. I no longer live in the Golden area, so all support for this course will be provided via piazza and/or email.

Course Goals:

The goal of this course is to provide senior-level students with the skills, experience and perspective necessary to build Web applications using effective, modern tools. In addition, the student is challenged to think about Web application architecture, which has been rapidly changing since the turn of the century. Topics include:


There are 2 required textbooks:

Student Evaluation:

In a traditional 3-credit class, you would spend 3 hours/week in a classroom. For this online course, you should plan to spend ~8-12 hours/week on average (includes ~3 hours/week you'll spend reading, watching videos or walking through tutorials). Some weeks will be less, a few weeks may be more. Time will vary by individual, of course.

Course component %
Individual assignments 50%
Class participation 5%
Paper 5%
Team Assignments 40%

Due Dates

NOTE: All assignments will be due at 11:59 pm on the day listed on the Assignments page.

Late Policy

Late work is strongly discouraged!

Each semester a few students do the work on time, but forget to submit on BB. If there is a git log supporting the fact that the work was done on time, the student will be assessed a 10% submission error penalty.

Part of an online course is planning and you must plan to submit your material on time. Since there is no official class time, all discussions are asynchronous... so responses from me or members of the class will not be immediate. That's no excuse for late work.


Class Participation

How does one participate in an online class? Partly via online tools, partly by working closely with team members. Specifically, to get full class participation credit you must:


The pre-requisite for this course is CSCI-262: Data Structures. The co-requisite is CSCI-403: Database Management. You should also be comfortable with (or willing to learn) git for version control. This is an online, senior-level course covering material with a fairly steep learning curve. Students must have sufficient background and experience to learn new technologies without the benefit of classroom lectures.

The good news: Learning in this fashion is an important skill, as CS is a rapidly evolving field and software engineers must have the ability to acquire new skills and learn new languages/ technologies throughout their careers.

The caveat: It takes time to develop strong programming skills and confidence. If you just finished Data Structures and struggled to understand concepts, you may want to take a few other courses (e.g., CSCI-306) before tackling this type of online course.

You will also need access to a computer with an Internet connection and a current browser. You must have the administrative rights, as well as the knowledge, to install additional software on that computer (e.g., node, express, react, git, etc.). Whenever you install software, be sure that the computer is backed up and that you have understood the licensing. Also, be aware of the security risks associated with having a web server on your machine. If you have questions, ASK!

Collaboration Policy

The following policy exists for all CS courses. This policy is a minimum standard; your instructor may decide to augment this policy.

  1. If the project is an individual effort project, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group project, you are only allowed to share code with your group members.
  2. You are encouraged to discuss programming projects with other students in the class, as long as the following rules are followed:
    1. You view another student's code only for the purpose of offering/receiving debugging assistance. Students can only give advice on what problems to look for; they cannot debug your code for you. All changes to your code must be made by you.
    2. Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical or otherwise] of the discussion.
  3. Any material from any outside source such as books, projects, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.
  4. To prevent unintended sharing, any code stored in a hosted repository (e.g., on github) must be private. For group projects, your team members may, of course, be collaborators.
  5. If you are aware of students violating this policy, you are encouraged to inform the professor of the course. Violating this policy will be treated as an academic misconduct for all students involved. See the Student Handbook for details on academic dishonesty.