CIS 422/522 Software Methodologies
Winter 2001
Syllabus

Tuesdays and Thursdays, 2:00-3:20 PM
Location: 361 PLC
CRN: 27034 / 27036, Credits: 04
Course Web Pages: http://www.cs.uoregon.edu/classes/cis422/hornof/index.html

Instructor

Anthony Hornof
328 Deschutes
hornof@cs.uoregon.edu

Office Hours:
Tuesdays 3:30 - 4:30 PM (except 1/9, 2/6, 3/6)
Thursdays 3:30 - 4:00 PM
Fridays 3:00 - 3:30 PM
Also by appointment

The Point of the Course

"Software is coming onto center stage as the key empowering technology of the Information Age. Without software, one cannot enter or exit the information superhighway. Without software, a Cray supercomputer is a rather expensive loveseat and a Powerbook laptop is a rather expensive paperweight. If their software is bungled, our cars, radiation therapy machines, bank accounts--and we ourselves--can get into big trouble." (Barry Boehm, in Software Engineering, edited by Dorfman and Thayer, 1997, IEEE Press.)

In this course, you will learn methodologies and practices for building software systems that are adaptable, robust, reliable, and usable. The development of such systems require the cooperation and participation of a number of people working as a team. This class will help you to learn how to work effectively on a team. You will learn structured approaches for analyzing systems requirements, specifying software design, testing systems, and managing the development process.

Prerequisites

This course has a corequisite of CIS 315. You must be have completed CIS 315 in a previous term with a grade of C- or better, or be taking CIS 315 this term. Otherwise, you will not receive credit for this course. If you have questions, please see the instructor or your CIS advisor for help in planning your schedule.

Textbook

Sommerville, I. (2001). Software Engineering, 6th edition, which is available at the UofO bookstore.

Group Projects

There will be two group projects. The first will last four weeks and be assigned by the instructor. The second will last five weeks and will be proposed by the groups. The second project will be due during the final week of classes.

Groups will consist of five students. For the first project, the instructor will assign the teams. For the second project, students will select their own teams.

Exams and Quizzes

There will be two midterm exams, and no final exam.

You are expected to schedule other events such as trips or job interviews to avoid conflicts with the exam dates. The only acceptable excuses for missing an exam on the scheduled date and time are documented medical problems, religious holidays (if cleared in advance), and documented personal emergencies. An unexcused absence at an exam will result in a grade of zero on the exam.

Class Participation

All students are expected to attend all lectures, presentations, and group meetings with the professor. Students are also expected to participate in class presentations, group meetings, and discussions. Your in-class participation may be supplemented by emailing me questions or comments, which I will try to incorporate into the next class. Please include "422" somewhere in the subject line of these emails. There will also be a few in-class group presentations.

Please turn off all cell phones and beepers before coming to class. Better yet, just leave them at home. Interruptions caused by these devices are very rude and represent poor class participation.

Email and Communication

Email is an excellent means of communication when used properly. This class will give you the opportunity to improve your email skills. Email the professor and the GTF with your questions, concerns, and input regarding the course, but always practice good "netiquette". The UofO Computing Center (UOCC) provides netiquette guidelines. (On this web page, skip past the "Glossary of Network Terms" to get to the section entitled "Practicing Good 'Netiquette'".) Read and follow the guidelines, with one addition: If you must have a signature file at all, keep it to a bare minimum.

All course-related emails sent to professor should contain "422" somewhere in the subject line. Please use your "uoregon.edu" email address in all course-related email communications.

Announcements

Important course-related announcements will be distributed via an email mailing list entitled 422hornof@cs.uoregon.edu. You are required to join this group, by logging onto a CIS server and typing at the Unix prompt:

grpmod -ag 422hornof <your login name>

You must join this group and read all messages sent to it. Only the professor should ever post to this list.

All course announcements will only be sent only to @cs.uoregon.edu email addresses. You may however forward your cs mail to other accounts by following the UOCC's instructions on forwarding your email.

Emails sent to the group will be archived at uo.classes.cis.422hornof. Please don't post to this newsgroup. To view the group, you may need to set up your browser or newsreader to point to the news server news.cs.uoregon.edu. 

Grading

Your final grade will be weighted as follows:
Two Projects (25% and 35%)
Two Exams (18% and 18%)
Class Participation (4%)

Late Projects: Projects are due at the start of the class period. Late projects will be accepted up to three calendar days past the due date, but penalized 10% per day. Exceptions will only be considered if the request is submitted before the due date.

Graduate Students Enrolled in 522

A few times during the term, graduate students enrolled in 522 will be assigned to read an article relating to software engineering, and to write a very brief response to the article. You will enjoy these articles.

Good Writing

Though software has taken center stage as an empowering technology, good writing remains a critical component of human communication. A modern skilled technology expert must be able to communicate his or her ideas clearly and concisely. Good writing occurs on three levels:

  1. The ideas that you are trying to communicate must be clearly accessible. State the main point of the paper in the introduction. Start each paragraph with a topic sentence. Break the paper into sections and give each section a title. Summarize your major findings in a conclusion.
  2. The means by which you communicate your ideas must be effective. Be thorough but concise. The tone of your writing should be serious and direct, as if you were reporting to your boss at a real job. An informal "chatty" style is not appropriate, and a story-telling approach is not a good organizational style. Every figure (graph, drawing, screenshot, or other nonverbal inclusions) must be relevant, should be referred to in the main body of the text, and should have a caption that explains what is being shown and why it is important.
  3. All spelling and grammar must be standard and correct.

If you have any doubts about the quality of your writing, work with your project collaborators to critique each other's drafts. Also, take drafts to the drop-in writing lab at Academic Learning Services in the basement of the PLC, open Monday - Friday from 9:00am to 4:00pm.

Modern writing standards advocate the use of non-sexist language, and you should follow this standard. For example, if you are referring to a single anonymous person using a computer system, you may write "she or he", "he or she," or "the programmer," but not just "he."

Diversity Welcome

The modern technology workplace is diverse, international, and inter-cultural. This is good. Different backgrounds and different perspectives help people working in groups to be more innovative. To the extent that this class reflects such a modern-day workplace, we will welcome and value these differences as an opportunity to increase our awareness of how to work better in groups, and how to build more useful computer systems.

Students with Disabilities

If you have a documented disability and anticipate needing accommodations in this course, please make arrangements to meet with me soon. Please request that the counselor for students with disabilities send a letter verifying your disability.

Academic Honesty

Misrepresenting someone else's work as your own, or in any way contributing to such a misrepresentation, will be taken very seriously. If you cheat in this course, you are making a deliberate attempt to obtain a false credential and thus to defraud, mislead, and possibly endanger your future employers, co-workers, and customers. If you submit someone else's work as your own without indicating the source, you are engaged in academic dishonesty. If you knowingly or accidentally make your work available to another student and they submit your work as their own, you are equally at fault. If I suspect that you have engaged in academic dishonesty in this class, I will immediately report the incident to the Director of Student Judicial Affairs, the chair of the CIS Department, and proceed as directed in the University of Oregon Policy on Academic Dishonesty.

Acknowledgments

This course is modeled, in part, after previous versions of the course taught here at the UofO by Professor Michal Young. I am grateful for his assistance in the develoment of this course.

A.Hornof 1/9/01