CSC 509
Software Engineering
Winter 2005


Instructor:         Clark Savage Turner
Office:               14-211
My email address:     csturner@falcon.csc.calpoly.edu
Web URL:          http://www.csc.calpoly.edu/~csturner/courses/509/509s05..html

This page will evolve with the course.  Please check it periodically for updates.


PREREQUISITE:   CSC 205, CSC 206, CSC 508 and ideally some level of maturity reached through industrial experience.


Course Catalog Description:

CSC 509 Software Engineering II. (4)

In depth study of software modeling and design.  Formal design methodologies.  Design patterns.  Detailed case studies of existing projects.  Tools and methods for designing large software systems.  4 seminars. Prerequisite: CSC 508 and graduate standing, or consent of instructor.


Textbooks:

Winograd, Bringing Design to Software .

Simon, The Sciences of the Artifical, MIT Press, 1996. It is not a computer text per se, but a wonderful way to think about them.

<>WEB RESOURCES for software engineering bibliographies can be found here and here among other places. Have a look around!
 
My own suggestions for reading and analyzing research papers can be reviewed here.
Slides from the TCAS (Requirements State Machines Language) documentation effort are given here, more advice on how to analyze (or write) a good paper. Some suggestions for the paper proposal . Further note: Review the new Software Engineering Code of Ethics approved and published by both the IEEE and ACM.  This code is written for those claiming to be, or involved in "software engineering." Have a copy and read it regularly.  Think about it.  Make friends with it, or at least understand its general principles if you do not agree with it (which is just fine!)



Course Requirements:

1. CLASS ATTENDANCE is CRITICAL to your grade. Participation and attendance are absolutely mandatory and contribute to your overall grade. I cannot stress this enough. Grades will reflect it... the class depends on it.

2. Formal Presentations - Students will make presentations on the weekly class topics. In the seminar style, the students will "teach" the class the given topics from the research literature. Presentations should be in lecture style with slides and a question / discussion period. The main focus of the discussions should be "what is important to know about this paper or topic and why?" Similarly, strengths and weaknesses of any approach given should be discussed. The student presenter should lead the discussion with the class. Do volunteer to review and present papers that interest you, this can help you research your paper topic.

3. Research Paper - A publishable quality research paper will be produced for this class. It is expected that the topic will be a current topic of interest to software engineers and roughly 20 - 40 pages in length. * You must first produce a proposal to be to have your topic approved. A substantial bibliography is required. Note that several students in CSC 508 and 509 have had work accepted for publication by the International Association of Science and Technology for Development in their Software Engineering and Applications conference. A copy of preliminary versions of two sample papers are here - "Rethinking Software Process: The Key to Negligence Liability" and "The Modification Process: A Practical Means to Understand and Enhance the Software Requirements Engineering Process" are available for your review. These are condensed, worked over versions of longer research papers. Most of you, all of you, are capable of this sort of work and I encourage you to try (it's free...well, you do have to write the paper before you submit it!) I believe I need say nothing about cheating or plagiarism in your work in this course, it is a serious matter and you are mature adults. Of course, I support collaboration and use of others' ideas in your own work, but they must (must!) be properly credited and your contribution or analysis noted. Your paper will be evaluated according to the following guidelines

* Please consider the following structure when preparing your Proposal.

3.5. Periodic presentations based on your research [progress] will be given to a) elicit feedback, and, b) give us the benefit of your progress. They should be short (about 10 minutes) and give an overview of a) your main interest (issue), b) the state of the art in that area, and, c) charts, graphs, realizations, comparisons, criticisms made in pursuit of progress towards your research paper. The first should be given at the 7th week and another during the 8th or 9th weeks.



5.  Examinations - There will be no formal examinations in CSC 509.

______

Participation is required in all of the acitivities listed above.  The student is expected to volunteer to present work in class and to enter the discussions regarding the topics at a high level.  This is part of the grade for the class. 

Grades will be determined by roughly 1/3 class participation (research presentations) and 2/3 for the final paper graded according to the following guidelines.   The quality of the final paper may weigh more heavily in the final grade determination in certain cases.


Rough Course Schedule:

Be aware that attendance and participation are mandatory in this course.  Use these as a supplement, not a substitute, for course planning. I expect to change the booklist and schedule of topics, the following is presented as a sample of what has come before. I also do not expect to follow a firm schedule since class presentations will guide our progress, that means you! We may stick to one subject longer than another or even skip one for another. It has been the case that this outline is nearly meaningless as we explore a topic of interest in depth. That's a good sign in this course.

  Week 1: What is Design?
  Week 2: Design thinking (directions for the class come from text readings)
  Week 3: Paper proposals due - refine software "design" ideas
  Week 4: Continue Winograd and Simon text chapter readings.
  Week 5: What about traditional Waterfall definitions of software "design?"
  Week 6: Software Architecture and Design
  Week 7: Finish up with Winograd Text.
  Week 8: Put it together with Simon, "Science of Design"
  Week 9: Put it all in perspective.
  Week 10:  Final papers due at start of 10th week.

Resource: Powerpoint slides from class presentations and Design reading materials.

****  This schedule is for a point of departure. I fully expect the class to determine its own pace and interestes within the realm of software engineering. Changes in general topics will be noted here.


Schedule of Important Dates:
 

Paper proposal due by the end of the 2nd week.
Full paper due by the beginning of the 10th week. (Exceptions only by previous arrangement.)


This syllabus is subject to change. It is a graduate course and the maturity of students is respected by not imposing restrictive structure. We'll explore what makes sense as we progress. Changes are announced in class and may not be noted here, class attendance is required for this course. Always get notes from class if you cannot attend a given day because important information is given there that cannot be reproduced on a webpage.  Always remember this is an participation driven class, let me know in advance when you have any important conflicts so that we can resolve them so as not to hurt your participation and grade.


Updated: Mar 2005