Welcome to Software Engineering!
CS 4310 Fall 2003 Home Page
CS 4310 Fall 2003 - Software Engineering - 4 Credits 

Instructor: David Yang (Science South 433, dyang@csuhayward.edu)
Time: Mondays, Wednesdays, Fridays 1:20-2:30 PM
Location: Science North 336 

Blackboard will be used for submission of assignments and posting of course material, while email to the class will go to your Horizon account.

Text:
Various web pages and web sites. The most important of these are as follows:


For those who want a text, the text the other sections are using (Sommerville, Software Engineering, Addison-Wesley, ISBN 0-201-39815-X.), one of the standard software engineering books. It's a "recommended" text, and the website for it has a nice collection of slides. I will cover the slides from chapter 8 for the topic of prototyping which will provide a sample of Sommerville's presentation of material. Some of the lecture notes were developed from the texts by Roger Pressman and Eric Braude, for which you can find citations at the end of the syllabus. Pressman's is a more thorough text intended for professionals, while Braude is more directed towards students.

Goals: (Much of the material from here until Calculating your grade is taken from the syllabus developed by Prof. Stephen Cooper of St. Joseph's University)

  • to develop an understanding of the concepts and techniques of software engineering
  • to gain an understanding of the process and management of a substantial software product
  • to learn to work in a team 
  • to practice software development principles
  • to learn how to effectively present your ideas, in an oral and written context
  • to develop habits and methods appropriate to the discipline and to scholarly inquiry in general
  • to learn how to evaluate the work of others

Project: During the beginning of the second week of class, you will be assigned to a small team with whom you will work on a project over the semester. There will be much further discussion about the deliverables for this project, as well as helpful hints about working on it. IMPORTANT NOTE OF WARNING: Not all members of a team will necessarily earn the same grade on a deliverable. Do not allow your teammates to do your work for you. There are presently scheduled to be 5 graded deliverables. Here is the breakdown:

Segment Percentage
Initial project proposal 0% (but must be approved)
Software Requirements 25%
Tutorial/test plan 25%
Software Design 25%
Implementation 10%
Group Presentation 15%

Individual logs: Cooper wrote up a nice explanation of why you should keep a log and what it should look like. I've modified it slightly and put it here. I will require a log for the first 3 deliverables. 5% of the grade for each will be based on your log. In particular, you will receive no credit for any deliverable for which you do not turn in a log.

Document evaluation
Another important component of the project is your evaluation of the work of others. This part of the work is to be done individually. You are to critically, (but politely) evaluate the work of one other group. You should not spend much time evaluating spelling and grammar -- the content is the focus of our concern. They will get to see your evaluation. It is important that you point out both what you feel the other group has done well and what it has done not-so-well, and why. The evaluation will be required for every deliverable besides the implementation. 10% of your grade for each of these deliverables will come from your evaluation. And just as you should write politely, you should learn to accept criticism politely.

Calculation of your grade: 
The project will count for 50%.
The midterm will count for 25%.
The comprehensive final exam will count for 25%.

[grading note: Your exams must average (using the relative weights above) out to a C- or better in order to get at least a C- in the course.]

Final grades will be given according to the following scale:

93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-,67-69 D+, 60-66 D, 0-59 F 

Attendance:
Remember that standard policy dictates that students who do not attend can be removed in favor of students on the waiting list who do show up.

IMPORTANT: attendance is mandatory for the project meeting days. I understand that it is difficult to regularly meet outside of class. Thanks to a suggestion from previous students in the Fall of 2002, I will be setting aside 4 class periods for group meetings. If you have a really good excuse for these dates (all marked in red in the schedule below), bring proper documentation (ex: signed doctor's note) the next day. Also, note that you still really need to set up meetings outside of class to work properly as a group.

Academic Honesty: This course will follow the University's standard policy on academic dishonesty. In particular, note that regardless of whether you copy work from another student or allow another student to copy your work on an exam, you are both equally guilty and equally penalized. Copying text/files off the internet without properly giving credit is also cheating. Any cheating on an exam results in an F for the course. Cheating twice also results in an automatic F. All instances of cheating will be reported to the Dean's office.

Remember that the University may inflict further penalties than listed here under the provisions of the published Academic Dishonesty Policy. 

Office Hours: My office is in room 433 of the South Science Building. My tentative schedule for office hours is: 

  • Monday noon-1 PM, 2:45 PM-3:45 PM 
  • Wednesday 2:45 PM-3:45 PM


I will also be available at other times. You can make an appointment, though stopping by to see if I'm around is fine. It is better to ask questions before the midterm. 

Tentative Schedule All days in red are mandatory. Days in green are holidays

    Week  Monday  Wednesday  Fridays
    Week 1 09/22/2003 
    Intersession -- no classes
    09/24/2003 
    Intersession -- no classes
    09/26/2003 
    Introduction -- the software process, Software Capability Maturity Model
    Introductory notes (in RTF, so you may have to download them to view them)

    Reading:
    The Software Engineering Institute at Carnegie-Mellon Univ. Read this intro

    Project

    1. form and organize teams of 3-4 by 9/29, pick a team leader and choose a topic (due 10/3)
    2. Turn in your "type" via Blackboard -- take a brief Briggs-Meyers test and share it with your teammates
    3. Suggestions regarding topics
    4. Grading guidelines
    5. Randy Pausch's advice on teamwork in a class
    6. Software Requirements Specification assignment (due, along with first log, at October 10, 1:20pm, via digital drop box)

    Week 2 09/29/2003 
    Customer Requirements, use cases
    Customer requirements notes (in RTF)
    13 arguments against user requirements analysis and responses
    Alan Holub's simple case study (sections 1, 2.6, 2.7, 3 and 4)
    10/01/2003 
    Risk management
    Risk management notes

    Reading: Intro to risk management (for students, from Arizona State U.)

    10/03/2003 
    Project meeting period
    Week 3 10/06/2003 
    Project management
    Programming: coding standards, style, metrics, documentation
    Project management notes
    10/08/2003 
    User interface design/user guide
    User Experience Design (Design section) (from IBM)
    10/10/2003 
    Prototyping
    Reading:
    Sommerville, ch. 8 slides

    Project:Software Requirements specification + logs due

    Week 4 10/13/2003 
    Testing 

    Reading: Eric Raymond's "The Cathedral and the Bazaar" The whole article is enjoyable and informative, but at least read the first 5 sections, then "Necessary Preconditions", "Management and the Maginot Line", and the Epilog

    10/15/2003 
    Data design, entity-relationship model
    Reading:
    Informix E-R model tutorial
    10/17/2003 
    Project meeting period

    Project:Evaluation of Software Requirements Specification due

    Week 5 10/20/2003 
    Software Architecture I, Model-View-Controller architectural pattern
    Reading:
    Steve Burbeck's original article on the Model-View-Controller architecture
    10/22/2003 
    Software Architecture II, software layers
    Link for information about the ISO Network model and TCP/IP
    10/24/2003 
    Object-oriented analysis, UML class diagrams
    Reading:
    James Martin on UML class diagrams in C++ Report
    Holub's example (read the rest)
    Week 6 10/27/2003 
    review for midterm

    Project:Tutorial + test plan + logs due

    10/29/2003 
    Midterm
    10/31/2003 
    Project meeting period

    Project: Evaluation of tutorial + test plan due

    Week 7 11/03/2003 
    Inheritance of interface
    11/05/2003 
    Introduction to design patterns
    11/07/2003 
    UML example
    Reading: Example from Martin and Newkirk (read first 10 pages)
    Week 8 11/10/2003 
    Object-behavior model, UML state transition diagrams
    Reading:
    James Martin on UML finite state machine diagrams in C++ Report
    11/12/2003 
    UML sequence diagrams
    Reading
    James Martin on UML sequence diagrams in C++ Report

    Last day to withdraw

    11/14/2003  
    Collaboration diagrams
    Reading:
    James Martin on UML collaboration diagrams in C++ Report
    Week 9 11/17/2003 
    A non-object-oriented approach: Data flow diagrams
    Reading: Data flow diagram article
    11/19/2003 
    Maintenance

    Project: Software design specification + logs due

    11/21/2003 
    Project meeting period
    Week 10 11/24/2003 
    Law, ethics -- Data Mining and Terrorist (nee Total) Information Awareness
    Readings:
    Carlton Vogt of InfoWorld
    Heather MacDonald of The Weekly Standard
    A paper by 2 computer scientists
    TIA home page
    11/26/2003 
    Reviewing/revising the software process

    Project: evaluation of SDS due

    11/28/2003 
    Thanksgiving  
    Week 11 12/01/2003 
    Review for final
    12/03/2003 
    Group presentations
    12/05/2003 
    Group presentations, continued  

    Project: prototype code, test reports + logs due

    Week 12 12/08/2003 
    Final exam, 2 PM-3:50 PM
       

     
    This webpage's layout is originally from Bill Parkinson, who used to teach in the evening program at St. Joseph's University. Much of the content is lifted from Steve Cooper's version of this course -- in particular, the project documents were designed by him, though parts are adapted from elsewhere. 

    References for other texts used in preparing notes: