CPSC 473 - Web Programming and Data Management

Spring 2012 Syllabus

Prerequisites: CPSC 332 - File Structures and Database Systems

Various techniques for developing Web-based database applications using software engineering methodology. Introduce concept and architecture of Web servers, Web database design techniques, client/server side programming, and Web applications tools and techniques.

Instructor

Hours and Location

Section 1 meets Wednesday, 7-9:45p in CS-408. There will be a 10-minute break at approximately 8:20p.

Textbooks

To access Safari from off campus, use this link and log in with your Campus Portal username and password.

Additional Resources

In addition to the textbooks, links to additional resources will be posted throughout the semester as topics are addressed in lecture. Follow @ProfAvery on Twitter for updates.

Class Work

Projects

There will be three programming projects during the semester:

  1. A simple project using the Sinatra/Redis stack
  2. A more comprehensive project using Ruby on Rails
  3. A short project to implement one of the suggested enhancements to the Ruby on Rails 3 Tutorial project

In each case, you will be assigned to work on a team with several other students to implement the project. In general, all team members can expect receive the same grade, but grades may differ based on the level of contribution of each team member.

Homework

Most weeks will also include a short homework assignment requiring you to interact with additional learning resources or asking you to apply what you have learned.

Presentations

There will be five presentations during the semester:

Students will work in pairs to present Lightning Talks, with each student presenting material. For Projects, teams may choose a few individuals to give the presentation. Lightning Talks are graded separately, but Project presentations are evaluated as part of the Project.

Additional work for Graduate Students

The University Regulations (UPS 411.100) state:

Graduate students enrolled in 400-level courses will be expected to:

  1. Complete at least one additional assignment beyond that required of undergraduate students in the same course.
  2. Demonstrate, in their written and oral performance in the course, quality higher than that expected of an undergraduate.
  3. Demonstrate competence in areas required by a graduate-level course...

As a result, some homework assignments will include additional work for graduate students.

Accounts

In order to complete the work for this course, you will need to sign up for a free account with each of the following services.

Note that projects uploaded to these services are available to the public. In particular, when you check your code into GitHub, it will be available to everyone. This is intentional, and you are encouraged to learn from your classmates’ work.

You may also sign up for an account with Dropbox to obtain a copy of the Virtual Machine. (Note that this is a referral link.)

Virtual Machine

Setting up Sinatra, Redis, Ruby, Rails, Git, Heroku, and other software required to complete this course is time-consuming and error-prone, so I am making available a Virtual Machine with all of the required software pre-configured.

The VM was created with Oracle VM VirtualBox 4.1.8 and is supplied in Open Virtualization Format. It will also be installed on the machines in the lab, and I will use it for demonstrations in class.

Technical Support

You are free to install and use any version of the required software on any platform in order to complete class work. However, if you are not using the supplied Virtual Machine, please do not ask me to help you troubleshoot your configuration.

Since this course is intended for seniors and grad students, I expect you to be able to solve any problems that you encounter. Moreover, a particular advantage of Open Source software is that there is often a large community and a wide variety of resources available to help.

Grading

Grading Scale

Individual items (homework assignments, projects, presentations) are graded on a 4-point scale (A = 4, B = 3, etc.) with no pluses or minuses.

Grades will be weighted as follows:

Homework Assignments 20%
Sinatra Project 15%
Rails Project 30%
Rails Tutorial Project 10%
Lightning Talks 20%
Class Participation 5%

Course grades will be assigned on the following scale:

A > 3.7
A- > 3.3
B+ > 3.0
B > 2.7
B- > 2.3
C+ > 2.0
C > 1.3
D > 0.7
F ≤ 0.7

Extra Credit

Extra credit work may be offered occasionally. If so, it will be announced in class and posted to csuf.kenytt.net, and everyone will have the same opportunity.

I reserve the right to determine the impact of extra credit work when determining final grade.

Attendance

Attendance is not required except on presentation days, but class participation is one component of your course grade.

Academic Dishonesty

The University Regulations (UPS 300.021) state:

Academic dishonesty includes such things as cheating, inventing false information or citation, plagiarism, and helping someone to commit an act of academic dishonesty. It usually involves an attempt by a student to show possession of a level of knowledge or skill which he/she in fact does not possess.

Cheating is defined as the act of obtaining or attempting to obtain credit for work by the use of any dishonest, deceptive, fraudulent, or unauthorized means. Examples of cheating include, but are not limited to, the following: using notes or aids or help of other students on tests and examinations in ways other than those expressly permitted by the instructor, plagiarism, as defined below, tampering with grading procedures, and collaborating with others on any assignment where such collaboration is expressly forbidden by an instructor. Violation of this prohibition on collaboration shall be deemed an offense for the persons collaborating on the work, in addition to the person submitting the work.

Plagiarism is defined as the act of taking the work of another and offering it as one’s own without giving credit to that source. When sources are used in a paper, acknowledgment of the original author or source must be made through appropriate references and, if directly quoted, quotation marks or indentations must be used.

Penalties depend on the severity of the offense, up to and including a grade of F in the course. All incidents of academic dishonesty will be reported to the Computer Science Department Chair and the Dean of Students Office, Judicial Affairs.

Reusing Sample Code and Open Source Software

In this course, the rules of Academic Integrity apply equally to software. It is perfectly fine to borrow code from somewhere else (whether a web site, a book, or another student), but you must credit the source appropriately. Similarly, you should be "quoting" small passages of code, not repeating entire works.

In the real world, however, life is more complicated than simply citing your sources: various licenses may apply, and you need to make sure that the licenses are compatible with each other and that you are allowed to redistribute the resulting program under the license you wish to apply to your own work. Just because something is acceptable in class does not mean it will be acceptable at work. When in doubt, consult an Intellectual Property attorney.

Note also that other instructors in the Department may have entirely different policies about source code. Do not assume that this policy applies to any other course.

Accommodating Disabilities

The University requires students with disabilities to register with the Office of Disabled Student Services (DSS), located in UH-101 and at (714) 278-3112, in order to receive prescribed accommodations appropriate to their disability. Students requesting accommodations should inform the instructor during the first week of classes about any disability or special needs that may require specific arrangements/accommodations related to attending class sessions, completing course assignments, writing papers or quizzes/tests/examinations.

Emergency Procedures Notice to Students

From From http://www.fullerton.edu/emergencypreparedness/ep_students:

The safety of all students attending California State University Fullerton is of paramount importance. During an emergency it is necessary for students to have a basic understanding of their personnel responsibilities and the University’s emergency response procedures. In the event of an emergency please adhere to the following guidelines

Before an emergency occurs-

  1. Know the safe evacuation routes for your specific building and floor.
  2. Know the evacuation assembly areas for your building.

When an emergency occurs-

  1. Keep calm and do not run or panic. Your best chance of emerging from an emergency is with a clear head.
  2. Evacuation is not always the safest course of action. If directed to evacuate, take all of your belongings and proceed safely to the nearest evacuation route.
  3. Do not leave the area, remember that faculty and other staff members need to be able to account for your whereabouts.
  4. Do not re-enter building until informed it is safe by a building marshal or other campus authority.
  5. If directed to evacuate the campus please follow the evacuation routes established by either parking or police officers.

After an emergency occurs-

  1. If an emergency disrupts normal campus operations or causes the University to close for a prolonged period of time (more than three days), students are expected to complete the course assignments listed on the syllabus as soon as it is reasonably possible to do so.
  2. Students can determine the University’s operational status by checking the University’s web site at http://www.fullerton.edu, calling the University’s hotline number at 657-278-0911, or tuning into area radio and television stations. Students should assume that classes will be held unless they hear or read an official closure announcement.
EMERGENCY CALLS
DIAL 9-1-1

All campus phones and cell phones on campus reach the University Police Department

Non-emergency line: (657) 278-2515

24-hour recorded emergency information line:
(657) 278-0911
(657) 278-4444

Withdrawal

The last day to drop the course without a grade of W is February 6.

The last day to drop with a grade of W for serious and compelling reasons is April 20. Note that in this context, poor grades are neither serious nor compelling.

Class Disruptions

If you need to discuss something with your classmates during lecture or while other students are presenting, please wait until the break or take the discussion outside. If you arrive late to class, please enter and take your seat quietly.

Please turn off cell phones or pages, or set them to vibrate.

Since the course is conducted in a lab, you are expected to use the computer sitting in front of you as appropriate. You are also expected to participate in class and to refrain from disrupting the class by making noise.