CSC640 - Software Engineering - Fall 2007

Department of Computer Science, University of North Carolina at Greensboro

Instructor: Dr. Nancy Green, 322 Bryan, nlgreen @ uncg . edu, phone: (336) 256-1133
Class Meetings: 221 Bryan, 5:30-8:20 pm
Instructor's Office Hours: Th 3:30-4:30 and by appointment


Course Description Course Calendar Grading Policies Resources Project, Assignments, Handouts

Course Description

Prerequisites: Graduate status in Computer Science and satisfaction of all provisional admission requirements for CSC130/230/330 and English proficiency. This course requires the student to have good object-oriented programming skills in C++ or Java, and English language proficiency. (The student is expected to learn on his own any computer skills to implement the course project.)

Description: This is a graduate-level introduction to software engineering, which is the engineering discipline concerned with finding and applying solutions to problems encountered in delivering high quality, large-scale, real-world software systems in a timely and cost-effective manner. 

Course Objectives: The overall goal is for the student to learn basic principles and techniques that can be applied to his or her career as a software engineer, or that can be the foundation for futher graduate study. The specific objectives are for the student to 1) learn foundations and terminology of the field of Software Engineering, 2) learn object-oriented modeling (UML) and classical modeling techniques, 3) practice doing requirements, analysis, design, implementation, and testing of a software system through a course project; and practice presenting project deliverables in written and oral form, 4) practice reading, summarizing and evaluating peer-reviewed articles on theory and practice of Software Engineering; and practice presenting this information in written and oral form.

Student Learning Outcomes: By the end of the course, the student should 1) demonstrate knowledge of foundations and understand terminology of the field of Software Engineering, 2) demonstrate knowledge of object-oriented and classical modeling techniques, 3) apply knowledge outlined in Course Objectives 1 and 2 to the requirements, analysis, design, implementation, and evaluation of a software system in a course project; and present project deliverables in written and oral form, 4) understand, summarize and evaluate peer-reviewed articles on theory and practice of Software Engineering, and communicate this information in written and oral form.

Topics (with related chapters in textbook)

Required Textbook: Schach, Stephen, Object-Oriented and Classical Software Engineering. 7th ed. McGraw-Hill, 2007. ISBN 978-0-07-319126-3. Web site: <http://highered.mcgraw-hill.com/sites/0073191264/>


Course Calendar
(Note: this is a tentative schedule. It is your responsibility to check the web site for updates during the semester.


Tuesday Topic (related chapter in textbook)  Class Activities, Due dates
8/21 Intro & SW Life Cycle (ch. 1-2)
Syllabus, student information
8/28 SW Life Cycle (cont.), SW Process, Teams (ch. 2-4)

9/4
Requirements (ch. 10)
Discuss Project
9/11 Tools, Testing (ch. 5-6)
Client meeting (Interview)
9/18 Classical Analysis (ch. 11)
Client meeting (UI mock-up)
9/25 OO Analysis & UML (ch. 12, ch. 16)
Project Requirements due
10/2
OO Analysis & UML (cont.)
10/9 Test 1 (ch. 1-6,10-11)
10/16 Fall Break (no class)

10/23 Modules and Design (ch. 7, ch. 13, extra TBA?) Student reports (3)
10/30 Portability and Implementation (ch. 8, ch.14.1-14.5) Project Analysis due, Student reports (1)
11/6 Integration and Testing (ch. 14.6-14.27) Student reports (3)
11/13 Planning and Estimating (ch. 9) Project Design due, Student reports (3)
11/20 Maintenance (ch. 15) Student reports (3)
11/27 Test 2 (ch. 7-9, 12-15 and review of ch. 1-6, 10-11)

12/4 (last class) Final project demos Project Implementation (including demo) and Test Cases due

Grading

Students are expected to attend all classes, to participate in class activities, and to read assigned readings. Students will be assigned a course project involving programming in an object-oriented language (C++ or Java), written deliverables, and in-class presentations. The course grade will be based on


Course Policies

Attendance is required. You may be dropped from the course for missing more than two classes.

Disruptive behavior during class such as cell phone use, use of computers for non-class-related activities, private conversations, arriving late or leaving early (unless you have made arrangements with the instructor), and other non-class-related activities may result in a request to leave the classroom. Persistent behavior of this type may result in being dropped from the course (see UNCG Disruptive Behavior Policy).

Textbook: The required textbook is indispensable to this course. You may be dropped from the course if you do not have it by the second meeting. (In case of financial hardship, see the instructor immediately to discuss getting help to purchase a copy.)

Academic Integrity: All work is subject to the UNCG Academic Integrity Policy. Exams and assignments designated for individual credit are to be the work of the individual student alone. (For group assignments, each student's individual contribution should be clearly identified.) When you submit your work you are implicitly agreeing to this policy. 

Due dates:  Late work will not normally be accepted.  Make arrangements with the instructor to turn in work early if you will not be in class on the due date.

Missed exams may be taken only if the student's absence has been excused by the instructor and if the exam is made up on the make-up exam time announced by the instructor.

Disabilities: If you have disability-related requirements, please inform us as soon as possible.


Course Resources

 Other Books

Journals
(UNCG library has on-line subscriptionsto ACM and IEEE pubs) The University Writing Center offers all UNCG students free, individual assistance with planning,
writing, or revising papers for any course.

On-line Reference Materials

Other Related Web Sites