Course Description

Students work in teams and implement, test, document, demonstrate, and deploy web systems that solve organizational needs expressed by real clients. Emphasis is on advanced server-side and client-side programming and integration of web applications with database and web server applications. Free and open source development and communication tools are used to carry out the course project. 4 undergraduate credits/3 graduate credits.

Learning Objectives

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

  • Apply advanced web programming concepts and techniques
  • Work with a code base that is shared among developers with various roles
  • Integrate web applications with database and web servers applications
  • Design, implement, test, document, and deploy a web application
  • Use free and open source tools for collaboration, content authoring, and code base version control
  • Communicate timely
  • Work in teams effectively
  • Argue for open source collaboration and software development practices


  • Software Development – An Open Source Approach. Allen Tucker, Ralph Morelli, and Chamindra DeSilva. CRC Press, 2011.

Software Tools, Platforms, Services

  • PHP Development Tools (PDT) along with Eclipse
  • Google Code project hosting
  • XAMPP software bundle configured to work with Xdebug and alternate web root directories
  • MediaWiki content management
  • Notepad++ (Windows), TextWrangler (Mac OS), Emacs (Linux)
  • TortoiseSVN (Windows)
  • Doxygen code documentation generator
  • SimpleTest unit testing tool
  • ChatZilla adds-on to Firefox
  • And more or less … (list might change as the semester unfolds)

Collaboration and Communication Tools

Student Work and Class Activities

Learning in this class depends on active participation and open collaboration in and outside class with peers, course instructor, other faculty members, and external partners.

Blending In- and Outside Class Learning

The course has 15 weeks and weekly 3-hour class meetings. When in class, learning occurs through direct interactions among students and instructor around questions and problems prompted by the assigned reading, assignments, and project work. Class materials and learning resources are made available online. Students must study and practice with them to prepare for in-class learning activities. The instructor is not a lecturer, but a learning coach, who prompts and facilitates questions and answers, guides lab activities, and assesses students’ preparation.

Learning results from doing the reading and homework assignments, conducting lab activities, participating on the class forum, working on the team project, and reflecting on individual progress.

Other rules of the game are spelled out in the Policies section, including attendance and use of digital devices during class period. The complete set of policies is in the UNH Student Right, Rules, and Responsibilities handbook.

Collaboration, Communication, and Teamwork

Students are expected to lead and participate in problem solving activities in- and outside class. Peer instruction learning model is used to support this type of activities.

  • Outside class problem solving activities use the class forum site. Failing to participate outside class on the forum site lowers assignment grade by 25%.
  • In-class problem solving activities make up the whole class period.
  • Pair programming is used in class for software development activities.

See Use of Digital Devices policy.

Reading Assignments

Reading assignments are given weekly and must be completed prior to class. Like lab assignments, reading assignment are not graded. However, student learning is seriously compromised if assigned work is not completed prior to class.

Homework Assignments and Projects

There is a total of 6 homework assignments (6 points each) and a team project assignment (64 points).

Graduate students have the additional requirement to prepare a research report and participate in the UNH Manchester Graduate Research Conference with a poster presentation.

Students work collaboratively and many times in pairs on the homework assignments and in teams on the course projects. See Academic Honesty and Collaboration policy.

Team projects are real-world projects that solve problems raised by real clients. The clients could be non-profit organizations, state agencies, businesses, or individuals, such as researchers, scientists, scholars, educators, or community members involved with IT-related projects. Team project is presented at the UNHM Undergraduate Research Conference.

Assignment and project work products include models, source code, documentation (code, system development, and project management), wiki updates, self evaluations, status reports, etc. Students upload or reference work products with the use of their online portfolios (see Online Portfolios). Project work products are uploaded to hosting sites, such as Google Code and OpenITWare wiki.

No late submissions are accepted. See Late Submissions policy.

Laboratory Assignments

All classes include lab activities. Pair programming method is used to do lab assignments.

Online Portfolios

Students use the Google Sites tool to create and maintain their portfolios. Assignment self-evaluations and project status reports are filed in the online portfolio, along with uploads or references to the assignments and project work products.


Undergraduate students

  • Homework assignments: 36 points
  • Project artifacts: 54 points
  • Project presentation: 10 points

Graduate students

  • Homework assignments: 36 points
  • Project artifacts: 18 points
  • Research project: 28 points
  • Abstract and poster: 12 points
  • Project presentation: 10 points


This is an outline of a tentative schedule. See Schedule page for the up-to-date schedule.




Due next week


Jan 26

Getting started

R1; H1

Feb 2

Development and collaboration tools

R2; H2

Feb 9

Software architecture

R3; H3

Feb 16

Working with code

R4; H4 (P1)

Feb 23

Application domain classes

R5; H5 (P2)

Mar 1

Database subsystem refactoring and design

R6; H6 (P3)

Mar 8

Database subsystem coding and documentation

H6 (P3) extended
March 12 to 19 – Spring vacation


Mar 22

Database subsystem review and testing


Mar 29

User interface subsystem refactoring and design

P5 and poster abstract

April 5

User interface subsystem coding and documentation

P6 and research proposal

April 12

User interface subsystem review and testing

P7 and poster

April 19

User support

URC/GRC poster presentation

April 25

UNHM Undergraduate Research Conference

3:00 – 6:00 PM, 3rd floor

April 26

System testing


May 3

Developer and client documentation

P9 and research proposal draft

May 10

Project/research presentations and research report



Attendance is taken every class. Students are responsible for attending all classes and expected to abide by the University Policy on Attendance (as stated in the UNH Student Rights, Rules, and Responsibilities). Students who miss a class have the responsibility to:

  • Let the instructor know via email about the circumstances for missing that class prior to the next class.
  • Check the course site and class forum and contact their peers to get informed about class topics and activities.
  • Make appointment with instructor to discuss late submissions.

Late Submissions

Policy for late submissions is very strict and applies only in exceptional cases of student illness, accident, or emergencies that are properly documented. A late submission may be granted only if the student:

  • Emails prior to the deadline and
  • Explains and provides evidence for the circumstances that have prevented the student from meeting class requirements.

Failing to comply with these rules results in no credit for the late submission or missed exam.

Academic Honesty and Collaboration Policy

Members on the same team are required to fully collaborate to do the assigned work, whether homework assignment or project iteration.

  • Collaboration is limited to discussing and reviewing assignment specifications and clarifying the understanding of what concepts and techniques could be applied to solve the assignment’s problems.
  • Homework or project submissions must be entirely the work of the individual student and may not include work submitted by other students.

Failing to comply with these rules is considered a violation of the academic honesty policy. There are very serious repercussions if you deviate from the academic honesty policy:

  • The penalty for the first occurrence of an instance of academic dishonesty and plagiarism is no credit for the assignment in question. The Associate Dean will be immediately notified of the incident.
  • The second attempt is penalized with failing the course.

No collaboration is allowed while taking the examinations. Cheating on examinations is penalized with failing the course.

Use of electronic devices policy

No cell phone use is allowed in class. You must have your cell phone turned off. No computing device use is allowed in class except for the case of lab activities with the instructor’s permission.

Students will be asked to leave the class if they fail to comply with these rules.

%d bloggers like this: