Course Policies: CSC 441

Course Description

Continuation of the software lifecycle. Methods and tools for the implementation, integration, testing and maintenance of large, complex software systems. Program development and test environments. Group laboratory project.

Course Objectives

After this course, you'll be able to
  1. select an appropriate design strategy and apply it to a particular software development project

  2. develop software test strategies and document them in test plans and procedures

  3. implement a design in an appropriate high-level programming language

  4. execute a test plan and document the results in an appropriate fashion

  5. describe the maintenance phase of the software lifecycle and prescribe approaches for performing maintenance effectively.

Support Material

I'm pleased to offer a variety of support material for this course. I divided these into the categories you see below.

Required Sources

  1. Brooks, Frederick P.(1995) The Mythical man-month. Addison-Wesley, Reading, MA.

    This book is a classic in the field of software engineering. Everyone has read it and talks about it. I've sequenced the essays in the book so that they relate to the topics we're discussing in class.

  2. Pressman, Roger S.(1997) Software engineering: A practitioner's approach. McGraw-Hill, New York.

    This book is our primary text. Expensive, but worth it. Besides, we use it for two courses (CSC440 and 441), so you'll end up reading virtually every word.

  3. Course Newsgroup poly.course.csc-441

    We use the newsgroup to keep in touch with one another throughout the course. Any questions you have concerning the course in general, what you're supposed to do for any particular assignment, et cetera, should be posted to the newsgroup. If you have personal questions (i.e. "what do you think of my hairstyle? When can I get an appointment to see you?"), then feel free to send me email. If you send a question to me through email, I may ask you to post it on the newsgroup. Don't take that as a rebuke, I simply mean that the question is sufficiently general for many people to be interested in the response.

    I encourage you to use the newsgroup to post references to items of interest to software engineers.

Helpful Books

  1. Humphrey, Watts S. (1990) Managing the software process. Addison-Wesley, Reading, MA.

  2. Paulk, Mark C., et al(1993) Capability Maturity Model for Software, Version 1.1, CMU/SEI-93-TR-24. URL: http://ricis.cl.uh.edu/CMM/TR24/tr24.html

  3. Paulk, Mark C. et al(1993) Key Practices of the Capability Maturity Model, Version 1.1, CMU/SEI-93-TR-25. URL: http://ricis.cl.uh.edu/CMM/TR25/tr25.html

  4. Software Engineering Institute. URL: http://www.sei.cmu.edu/.

Class Activities

I will assess your performance based on four components. Table 1 contains the specific point availability for each assignment.

Table 1. Scoring Summary
ComponentNumberPoints eachTotal Points
Self Assessments 3 100 300
Labs 3 100 300
Participation 2 100 200
Exams 2 100 200
Total1,000

Self Assessments

The ability to reflect on what you've learned, evaluate the degree of your understanding and determine areas needing improvement are critical skills for professional in all fields. To assist you in developing this skill, as well as to give you a forum for telling me what you've learned, I've decided to use self-assessments. In these essays, you'll have the opportunity to describe what you've learned, why this learning is importance and how you may apply this knowledge in the future.

Labs

In the laboratory section of the class, we'll continue development of projects we started last quarter in CSC440.

Participation

There are two types of participation, one for the lecture portion of the class and one for the lab portion. During the lectures, I expect everyone to contribute to the discussion in a meaningful way. As noted previously, this means that you must read the material before coming to class. Simply arriving during the lecture period does not constitute participation. WARNING: Although some professors claim to grade on participation but end up grading on attendance, I really grade on participation.

For the lab portion of the participation grade, I assess your authenticity of involvement in the lab by observing your contribution during FTRs, lab discussions and so forth.

Exams

We will have a midterm and a final. As this course is a continuation of CSC440, I expect you to retain and apply the concepts and skills you acquired in CSC440. The final is cumulative and will cover all aspects of the software engineering lifecycle.

Grade Computation

To compute your grade, divide the points you earned by the points possible. Use the table below to determine the letter grade you earned.

Note that there is no letter grade of "D."

Numerical GradeLetter Grade
90-100A
80-89B
70-79C
0-69F

Academic Integrity

Dishonesty is inconsistent with academic pursuits and professional work as an engineer. Society looks to engineers to provide safe, effective and economical solutions to the problems it faces. Society expects engineers to be scrupulously honest in their actions. You must, therefor, constantly evaluate your actions, not only against the rule of the law, but also against the higher standard of avoiding even the appearance of impropriety. I will vigilantly defend the profession against cheaters, liars and thieves. If you choose to engage in unethical activity, you may expect to receive an F in this class and a referral to the Vice President for Student affairs for further punishment.