CIS 422/522 Software Methodologies
Fall 2004
Syllabus

Mondays and Wednesdays, 4-5:20 PM, 248 GER
CRN: 11250 (for 422), 11262 (for 522), 4 Credits
Web Pages: http://www.cs.uoregon.edu/classes/04F/cis422/

Instructor

Anthony Hornof
356 Deschutes
hornof@cs.uoregon.edu
Office Hours: Mon. and Wednes. 2-3 PM, or by appointment

Graduate Teaching Fellow

Greg Foltz
235 Deschutes
gfoltz@cs.uoregon.edu
Office Hours: Tues. and Thurs. 1-2 PM, or 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

Hans van Vliet, Software Engineering: Principles and Practice, 2nd edition, John Wiley & Sons, 2000. This book is currently on back order at the UofO bookstore. Some online booksellers have copies available with quick delivery options.

Read the textbook. Start by reading the Preface, and Chapters 1 and 2. Additional chapters will be assigned as the course progresses. The text provides good core information - if you read over the material before class, you will get more out of the lectures and course discussions. You will be able to ask and answer questions, two key activities in learning. Come to class with questions.

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 four or 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 one midterm exam and a 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), presenting papers at leading academic conferences (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 and Note Taking

All students are expected to attend all lectures, presentations, and group meetings, and to take notes during all classes and meetings. Students are 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 class. There will also be a few in-class group presentations and in-class exercises.

Attend class. No private or makeup lectures will be given. If you miss a class, get the lecture notes from other students. Take good notes so that, if you miss a lecture, you can provide reciprocal note-taking benefits to other students.

Come to class ready to engage the material and to interact face-to-face with the other human beings in the classroom. Leave your 21st-Century distractions behind. Turn your cell phones and pagers off (do not just put them into "vibrate" mode). Cell phones ringing in class are inappropriate, discourteous and disruptive. Activities such as surfing the web or checking email during class is inappropriate and discourteous. Develop your skill at focusing on the intellectual activity occurring in a physical room with real live people.

You may not make audio or video recordings of the class without explicit permission from the instructor.

Email and Communication

Email is an excellent means of communication when used properly. This class will give you the opportunity to practice and improve your email skills. Email the instructors 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'".) Follow the guidelines, with one addition: If you must have a signature file at all, keep it to a bare minimum.

Distinguish your email from spam by following these procedures:

  1. Send all course-related emails from your CIS account. Little or no spam emanates from the domain "cs.uoregon.edu", and so emails sent from this domain will not likely be mistaken as spam.
  2. Put your full name, and not a nickname, into the settings in your email client. In other words, make sure that the recipient will see "From: John Doe <jd344@cs.uoregon.edu>" instead of something like "From: Dude <jd344@cs.uoregon.edu>" in the header. This way, I will more readily recognize you as a student in my class, and I will read the email.
  3. Include "422" or "522" somewhere in the Subject header of the email.

Announcements

Important course-related announcements will be distributed via an email mailing group "cis422" on the CIS servers. Join this group by logging onto a CIS server and typing at the Unix prompt:

grpmod -ag cis422 <your login name>

You must join this group and read all messages sent to it.

An email with a subject line of "CIS 422 Announcements - Test" will be sent at the end of the first week of classes. Email the professor if you did not receive this email.

All course announcements will only be sent only to @cs.uoregon.edu email addresses. If you do not check for mail on your cs account regularly, you should forward your cs mail to the account that you do check regularly by following the UOCC's instructions on forwarding your email. If you do not have a cs account, please follow the instructions for getting a cs account.

Grading

Your final grade will be weighted as follows:
Two Projects (25% and 30%)
Two Exams (20% and 20%)
Class Participation (5%)

Late Projects: Projects are due at the start of the class period. Late projects will be accepted up to two 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.

Each member of the a group is expected to contribute. You will be graded on participation in the group as well as the quality of the final project.

Any grading discrepancies (such as a miscounting of points on an assignment) must be resolved within a week after the assignments are returned.

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. In the projects and exams, graduate students will be held to a higher expectation of quality.

Good Writing

Though software has taken center stage as the 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. Structure the paper so that the main ideas are 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. A storytelling approach is not a good organizational style.
  2. Communicate individual ideas effectively. 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. Every figure (graph, drawing, or screenshot) must be relevant, should have a caption that explains what it is and why it is important, and should be referred to in the main body of the text.
  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 inclusive language, and you should follow this standard. For example, if you are referring to a single anonymous person, you should write "he or she," "the user," or "the programmer," but not just "he." Also, please refer to women as "women" and not "girls" or "ladies".

People with disabilities should be first recognized as people, and then by their distinguishing characteristic. For example, "people with disabilities" is preferred over "disabled people".

Diversity Welcome

The modern technology workplace is diverse, international, and intercultural. This is good. Different backgrounds and perspectives help people working in groups to be innovative. To the extent that this class reflects such a modern-day workplace, we welcome and value these differences as an opportunity to increase our awareness of how to work better in groups, and how to build better computer systems. As in any team-oriented work environment, there may be an occasional communication breakdown. Please feel free to contact me during my office hours or to set up an appointment to discuss any problem or concerns.

Students with Disabilities

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

Academic Honesty

Misrepresenting someone else's work (including anything you find on the web) as your own work, 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, coworkers, 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.

If you receive any assistance from any tutor, roommate, officemate, fellow student, or any other person on any project or exam, regardless of how you interact with this person, you must clearly list this person and his or her contribution to the project in the header of all affected source code files, and front and center in all relevant documents.

Any code that is derived from any source whatsoever, published or unpublished, must be clearly identified and delimited, with the original source and author indicated in the header of every affected source code file, and front and center in all relevant documents.

You are responsible for protecting your own work and insuring that other students cannot obtain and use your solutions. Putting your solutions on a web site with no password protection, even if no other pages point to this web page, would be an example of freely distributing your solutions to other students.

Acknowledgments

This course is modeled, in part, after previous versions of the course taught here at the UofO by Professor Michal Young.

A.Hornof 9/29/04