Course Description
Web applications are complex systems that deliver a plethora of functionality to a large number of users, and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. Web engineering is an emerging and multidisciplinary process that is used to create quality web applications. This course will discuss the limits of current web technologies, the similarities and differences between web and software engineering, design, information and service architectures, content management, and testing disciplines. Ruby on Rails will be used extensively. Projects will involve search, API development, cloud computing, location-based services, and mobile web and mobile app development.
Instructor
Ming Chow (mchow@cs.tufts.edu)
Office Hours: Mondays and Wednesday 1 - 3 PM, or by appointment, in Halligan 011
Prerequisites
COMP 15: Data Structures, COMP 20: Web Programming or experience with HTML, JavaScript, PHP, Ajax, and MySQL
Class Time
Tuesdays and Thursdays, 6 - 7:15 PM in Halligan 111B
Teaching Assistant
None
Textbook
None
Examples
All examples presented or used in class are available at https://github.com/tuftswebdev/WebEngineering
Grading
In this course, both individual work and group work are important. Final grade will consist of the following components (and percentage towards final grade):
- Assignments and labs (41%)
- Semester group project (25%)
- Quizzes (10%; closed book)
- Final exam (24%)
Updated on November 28, 2011
Late Policy and Assignment Extensions
Each student is given ten (10) homework tokens at the start of the semester. A homework token buys one 24 hour extension of the assignment's due date. As many as three (3) homework tokens may be used on any assignment. To use a token, you must notify me either via e-mail or in person before the assignment is due.
All homework will be submitted electronically and will be due at the 11:59 PM on the due date. We will grant an automatic extension of ten (10) minutes at no cost to you (a.k.a., "grace period"), so the real deadline is 12:09 AM the following day. If you plan on submitting your work at midnight, you will have nine (9) minutes for last-minute changes.
Homework that is later than 72 hours (3 Days) will not be accepted. If tokens are used up, no extension will be given without exception. For extraordinary difficulties, such as serious illness, family emergencies, or other extraordinary unpleasant events, your first step should be to make contact with your associate dean for undergraduate education. You must take this step before the assignment is due. Ask your dean to drop me an email or give me a call, and we will make special arrangements that are suited to your circumstances.
Collaboration and Academic Misconduct
Students should read the Tufts Code of Conduct available at http://uss.tufts.edu/studentaffairs/codeofconduct/, and the policy on Academic Integrity available at http://uss.tufts.edu/studentaffairs/judicialaffairs/Academic%20Integrity.pdf.
Absolute adherence to the Code of Conduct is demanded of the instructors, teaching assistants, and students. This means that no matter the circumstance any misconduct will be reported to Tufts University.
You strongly encouraged to discuss a problem and your ideas with friends and colleagues. You will do much better in the course, and at Tufts, if you find people with whom you regularly discuss problems. However, when the time comes to write code, group discussions are no longer appropriate.
Every source of assistance must be acknowledge in writing. This rule applies to discussions with classmates or course staff as well as assistance you might find in the library or on the web. There is never a penalty for seeking help with a problem, but help must be acknowledged.
You are encouraged to submit general programming questions to online forums such as Stack Overflow. Questions about particular homework problems must never be posted online --send an e-mail to the course staff.