Instructor: Clark Savage Turner, J.D., Ph.D.
Office: 14-211
My email address: csturner@falcon.csc.calpoly.edu
Web URL: http://www.csc.calpoly.edu/~csturner/courses/508/508f04.html
This page may evolve with the course. Please check it
periodically
for updates, though note that this page is considered supplemental to
the course. The course happens in the classroom, not here on the
webpage.
PREREQUISITE: CSC 205 and ideally some level of maturity reached through industrial experience.
Course Catalog Description:
CSC 508 Software Engineering I. (4)
In depth study of requirements engineering, software project management, formal specifications and object-oriented analysis. 4 Seminars. Prerequisite: CSC 205 and graduate standing, or consent of instructor.
Textbooks:
Required: Petroski, To Engineer is Human, Vintage Books, NY, 1992. I expect that you will read this book in its entirety during the first week of classes, ready to discuss it by the second week.
Required: Jackson, Software Requriements and Specifications,
Addison-Wesley, 1995.
*Required: Simon, The
Sciences of the Artificial, MIT Press, 1996.
Another interesting text, Jackson, Problem Frames, Analyzing and structuring software development problems, Addison-Wesley, 2001.
For a good introduction to Software Engineering (especially if you do not have much experience), get Hamlet, Maybee, The Engineering of Software, Addison -Wesley, 2001.
Bibliographies for software engineering research can be found here (NASA) and here (Denmark) among other places. Have a look around!
Lecture one slides for this class are available in powerpoint here.
*** READING FOR THE FIRST CLASS: In addition to Petroski's book, please read the Mary Shaw paper carefully. It is simple and to the point. It gives a general overview of the nature and direction of software engineering research. The class will write papers and follow these guidelines as we work to understand, criticize, and enhance the research and practice in the field.NOTE: Some sample criteria for evaluation of requirements documents can be found here for your use.
My own suggestions for reading and analyzing research papers can be reviewed here.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 about 40 pages in length. 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.
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.
4. Journals: Lexicon - A lexicon will be kept with words and terms that require definition and thought. Students will keep the terms, notes about definitions and sources for information in a journal. The journals are expected to be kept current and will be randomly checked.
5. Weekly review team - Each week three students are chosen at
random
to form a research evaluation committee for the class. These students
are
responsible to carefully follow the class presentations (take notes on
lecture, Q&A) to synthesize and review the week's work for the
class. The
committee will convene for one week and will present its results on the
Monday following the week of review. The presentation should be short,
concise and highlight the important points of the previous week, noting
strengths, weaknesses, insights and oversights for the class. What was
worth learning and why? What should we ignore? Should anything be
followed
up further?
______
Participation is required in all of the acitivities listed above. In other words, you cannot skip a journal - lexicon entry and take a point penalty. You must take part in each and every activity in order to pass the course, even if you must do suboptimal work.
Rough Course Schedule:
Be aware that attendance and participation are mandatory in this
course.
Reviewing the slides can give a general idea about a class, but will
not
capture what was discussed or learned. Use these as a supplement, not a
substitute, for in class work.
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.
**** 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.
Rough Schedule of Important Dates:
Paper proposal due by the end of the 3rd week.
Full paper due by the end of the 9th week. (Exceptions only by
preapproval of instructor. No incompletes will be given without serious
medical excuse.)
(*volunteer to review and present papers in your chosen topic!
Otherwise, I'll end up assigning you papers that may not help you as
much on your way.)
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 eventually noted here. Always get notes from class if you cannot attend a given day because important information is given there that cannot be reproduced here. 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 grade.
Updated: Sept. 2004