Topics in Application Programming: Syllabus

Required Text
| Williams and Lane, Web Database Applications with PhP and MySQL (required)

What's Different About This Course

 * This is a video conference course offered through the video conferencing facilities at Trinity, Wesleyan, and Connecticut College. It is supported by the schools' joint Mellon Foundation grant.
 * This is a project course . We will be engaged together in a real humanitarian open-source development project. During the course we will be participating in the Sahana project, an international project devoted to developing disaster recovery IT software. Everyone in the course will contribute at their appropriate skill level to the design, development, testing, and documentation of Sahana's volunteer management (VM) module, the module that was initially developed by the Trinity Sahana team.
 * We will start fast . During the first month of the semester we will learn, among other things, PhP, MySQL, SVN, PhPDoc, and various software design principles. This will require substantial initiative, effort, and teamwork on your part. After the first four or five weeks, we will be working on real software and will learn by doing. This may be a little chaotic and will be a little bit like on-the-job training.
 * We will work in teams . Throughout the semester you will be a member of one or more development teams. That means you must be willing to work cooperatively with others in the class. It also means that others will be depending on you to hold up your side of the effort.
 * We will use peer evaluation . You will be required to evaluate your own and your peers' work honestly and constructively.
 * Expectations will differ depending upon what you bring to the course. Because there are such a wide range of backgrounds coming into the course---we have seniors and freshmen, some have never had PhP/SQL, others have been working on Sahana---performance expectations will vary. Students will be expected to contribute at their appropriate skill levels. Because much of the first few weeks are focused on learning PhP/MySQL, those who already know this will be asked to help present this material.

Attendance
Attendance is required. We have only 13 class meetings during the semester. Missing a class is equivalent to missing a week of the semester. If you miss a meeting for whatever reason---illness, travel, over-sleeping---you must make up the absence by writing a 5-10 page paper on what you missed. Failure to turn in an acceptable paper or an otherwise spotty attendance record, will lead to a reduction in your final grade for the course.

Reading Assignments
The course schedule will list the reading and homework assignments for each week's meeting. You are expected to finish the reading before coming to class.

Class Participation
You should be prepared to participate each week and (volunteer to lead occasionally) class discussion of readings, homework and assignments, tutorials. If you have special skills that would contribute to what we are learning and doing, you may be asked to give a brief presentation and/or tutorial to the class.

Homework/Assignments
During the first month of the semester there will be some standard homework and/or programming assignments as we quickly learn PhP and MySQL. During the last 10 weeks of the semester, assignments will be consist of various software engineering milestones and documents associated with your programming projects.

Late Work
Late work will be assessed a penalty on your grade for the assignment.

Video Conference Facilities
Teaching and taking this course through the video conference facilities presents an extra challenge for all of us. Please be patient and understanding and do whatever you can to help improve the communication in the class.

Grade Determination
As noted above, we will use a peer grading system. A key characteristic of open-source development is that developers put their work out in public for others to comment on and evaluate. We will develop an evaluation rubric that will provide a structure and guidelines on how to evaluate one's own and one's classmate's work. The various assignments that will be peer graded include (but are not necessarily limited to) the various milestones of the software development cycle, such as requirements document, design document, user and programmer guide, testing design document, and final project presentations. The relative weights of these assignments will be specified when the assignments are posted.