CS130 – Software Development
OVERVIEW: Very large and complex software systems cannot be designed and implemented by a single individual in a reasonable amount of time. Thus, the area of Software Engineering addresses the methods, tools and skills necessary to conceive, design, implement, test and maintain software systems -- typically in a group development setting -- in order to deliver completed software products on time, within budget, and according to the desired specifications of the customer. The course will be programming intensive and involve one large-scale group project as well as numerous individual assignments.
PREREQUISITES: CS30 Introduction to Computer Science II.
COURSE OBJECTIVES: From the Westmont Catalog: “Software life-cycle. Fundamental concepts of software design. Supporting modern language features. Verification and validation techniques. The course is built around a major group software project.”
Generally, students should learn the skills and mindset necessary to approach and accomplish the development of a large-scale software project. More specifically, satisfactory completion of the course will enable students to enter the commercial software industry as a contributing member of a software development team. The successful student in this class will also be prepared to take a graduate-level course in Software Engineering should she or he choose to continue their education in graduate school.
LOCATION: Porter Hall, room 3.
DAYS & TIME: Tuesday & Thursday, 8:00-9:50 am.
Object-Oriented and Classical Software Engineering (fifth edition), by Stephen R. Schach. Addison-Wesley. (2002). [required]
The Mythical Man-Month (anniversary edition), Frederick P. Brooks, Jr. Addison-Wesley. (1995). [suggested]
INSTRUCTOR: Dr. Wayne Iba
OFFICE: New Math/CS Modular Building
OFFICE HOURS: T,Th 10am-noon; W 2-3pm (or other times by arrangement)
Course Assignments, Requirements and Policies
ASSIGNMENTS: Assignments will be given periodically with specific due dates. Students' submitted work shall be legible and show their solution in a methodical manner or it will not be graded (and will be counted as not having been completed). Unless otherwise specified, assignments will be due at the start of class; late individual assignments will not be accepted.
GROUP PROJECT: The entire class will work as a team on one large software project. The project will be evaluated based on the functionality of the final result, the quality of periodic deliverables, the quality of the documentation, and the elegance of the design (i.e., maintainability). As this is a group project, late assignments (deliverables, presentations, etc) will not be accepted. Each student will receive an individual grade on their contribution to the project as assessed by their peers and on their presentation as assessed by the instructor. The entire group will also receive a single grade based on the project as a whole.
CLASS PRESENTATIONS: Students will make at least one presentation to the class. Usually, the presentation will involve the group project, but in some cases (when arranged with the instructor) could be a report on a selected topic from the Software Engineering literature.
TESTS & EXAMS: There will be no mid-term but there will be a take-home final exam handed out one week prior to the final exam date. Your completed exam will be due by the end of the regularly scheduled exam time for CS130. No late exams will be accepted.
ATTENDANCE: Attendance is not required for grading purposes. However, we will conduct group project meetings during class time and, as in industry, missing project meetings is discouraged. Also, your peers will be partially determining your grade; they might lower your grade if you unreasonably miss project meetings.
GRADING: Students will be evaluated on how well they master the skills needed for software development; these include critical analysis of a problem, clear and concise coding, and disciplined testing and documentation. Evaluation will consist of a project evaluation, and an industry-type performance evaluation. Letter grades for the course will be assigned as follows: A: [.9,1.0], B: [.8,.9), C: [.7,.8), D: [.6,.7), and F: <.6. The final grade will be determined from a weighted combination of components as follows: performance review – 40%, project evaluation – 60%. The project contribution will be a function of: class presentation (10%), individual project assessment by group (10%), group assessment (40%). The instructor's contribution to the performance review will be a function of: non-project homework (20%), final exam (20%).
ACADEMIC HONESTY: As in every area of life, you are expected to behave honestly within the context of this class. Do not attempt to receive credit for work that is not your own without properly acknowledging sources via appropriate citations or references. You are encouraged to get help from your peers but make sure you acknowledge such help and that you subsequently understand the help you received. The consequences of violating the trust I implicitly extend to you will be according to Westmont policy; but more serious will be the damage done to our academic relationship.