CSC 305 – Software Engineering
Spring 2008 – Rev 1.0
Revisions: This syllabus may be revised periodically to reflect clarifications made during class, changes in project scope and/or complexity, in response to changes in class size, project anomalies, and factors which justify revision for the benefit of the class and the integrity of the learning experience.
|
|
Instructor |
Teaching Assistant |
Class Project Links |
|
|
|
|
|
|
|
David A. Stuart |
Adam Stone |
|
|
Office |
Tyler 128 |
|
|
|
Phone |
(401) 824-9597 |
|
|
|
Email Address |
|
||
|
|
|
|
|
|
|
Meeting Times |
Locations |
|
|
|
|
|
|
|
Class |
TR 3:30 - 4:45 pm |
Pastore Hall 219 |
|
|
Lab |
W 12:30 - 1:45 |
Tyler 36 |
|
|
Office Hours |
By Appointment |
Tyler 128 |
|
Text Books:
(1) [Optional – Recommended, Not Required] The Mythical Man Month: Essays on Software Engineering, (Anniversary Edition)
Frederick P. Brooks, Jr.
Lab Materials and Software:
Supplied by CS department
Course Description:
"It
is my objective to make this course fun, in addition to highly instructional.
Read the following carefully, and please, ask as many
questions during class as possible. On first glance, this syllabus seems like a
great deal of work, but this is not necessarily the case if, during team
exercises, work is fairly and equitably divided among team members. If your
team works well together, this will be a manageable class load for all
individuals."
-
prof. Stuart
This course will introduce students to the subject of Software Engineering through a study of theory, anecdotal testimony, research, and a software engineering project in an applied setting. The student's experience in this class will demonstrate the complexities of defining, estimating, scheduling, completing tasks and managing project resources according to various software engineering methodologies in order to produce data processing systems that function as intended, on time and on budget.
The class proceeds along two paths (Theoretical & Applied) that occur simultaneously. The first path is primarily focused on theory, myth, and reality as expressed in the text and assigned readings. The second path is focused on a software project and applying the lessons learned in the first phase. The amount of lecture tails off toward the end of the semester and students are expected to focus on project execution. The class time is then used to help apply the theoretical teachings in order to complete the software project.
The class is structured in such a way that the combination of lectures, labs, office hours and individual study time will accrue to the time required to complete the project and class assignments. The hardware and software resources available to students through labs will constitute the tools with which one conducts software projects. The formation of teams will constitute the resources required to equitably divide work in order to achieve class and project objectives. Your instructor is an experienced IT professional who is available to you during lab and office hours.
Students are required to attend class. This will constitute a portion of the student's grade as participation is an essential component of successful software engineering. In the event that absence is unavoidable, students will be expected to coordinate with the other members of their team and the instructor. Unexcused absences will count against you individually. If you decide to stop attending altogether, please inform the instructor and formally drop the course in order to minimize the impact to the rest of the class.
Assignments:
Follow the link at the end of this web page for the class schedule. This schedule is tentative and will change when the need is compelling. Reading assignments, particularly on aspects of the Software Development Life Cycle, will be assigned from the schedule web page. During this course you will be expected to rely on the readings as a reference, and produce project artifacts consistent with the examples in the assigned readings. Expect to be challenged to master the readings.
Assignments:
There are two types of activities each student will complete. One type is team
activity, the second is individual activity.
Individual activities include attendance in both the lectures and labs, completing reading assignments, personal note taking, class discussion, taking any pop-up quizzes and taking the final exam.
Team activities include the creation and presentation of team artifacts during class, lab participation in team activities, and team meetings outside of class or lab. This time is intended to benefit your projects, and your understanding of time and resource management in the context of software engineering.
Labs:
Each week students will meet in the lab (Tyler 36) to work on exercises that help demonstrate issues discussed in class and to advance their projects toward completion. Teams are expected to complete their labs as a team. This means they will collectively come to an understanding of the requirements, collaborate as to how those requirements will be met, divide the work according to the relative skill mix of individual team members, and endeavor to complete the lab.
Presentations, Quizzes, Exams & Deliverables:
(1) The final exam is conducted as a presentation of the team's work, but is graded as individual efforts.
(2) Other exams and quizzes will focus on reading assignments, lecture material, and labs, and are graded as individual efforts. These are administered at the instructor's discretion.
(3). Project deliverables are specific artifacts such as a requirements document, functional design document, a detailed design document, software code, test plan, engineering change proposals, executable code, etc. Project deliverables are due when scheduled by the project schedule, which will be developed over the course of the semester. Project deliverables are team efforts and graded as team efforts.
Grading Policy:
All assignments and deliverables are to be handed in or made available for
inspection on time. Establishing CVS is essential, as it provides a mechanism
for the instructor, team members, and customers to inspect progress on team
artifacts on an ad hoc basis.
Meeting deadlines is an essential and non-negotiable requirement of this course.
Grades are assigned as objectively as possible. For a course like this, either deadlines are met, or they're not. Either the software works as intended, or it doesn't. Either the project artifacts meet the grading criteria, or they don't. Either budgets are met, or they aren't. The grading criteria for each component of the project will be clearly defined for all students at the time the material is covered in class. Early in the course the instructor will review the grading criteria for all objectives with the class.
Individual Grade Component (45%)
|
Pop-up
Quizzes |
5% |
|
Attendance |
5% |
|
Final
Exam Presentation |
20% |
|
Class
Participation |
15% |
Team Grade Component (55%)
|
Requirements Document |
10% |
|
Design Document |
10% |
|
Configuration Management & CVS, Meeting Minutes & Postmortem |
5% |
|
Project Execution |
15% |
|
Software Product |
15% |
The Project
There will be two projects – a microproject intended to demonstrate maintenance programming, and a new project that will allow you to apply your knowledge to an original project.
The microproject (maintenance mode) concerns the improvement of a nascent website for a non-profit (501)(c)(3) organization known as Friends of Canonchet Farm. The website produced by the CSC305 class in the Fall of 2007 requires come changes, fixes, and improvements. The customer and teaching assistant will work with the class to bring the website into more mature form.
The new project will involve the creation of a new website for a non-profit organization which is currently being selected. We will discuss this in much more detail during class.
The Final Exam
Presentation
The "Final Exam" will be a presentation covering the topic of software engineering, a short history of the class experience, what was learned, how the project demonstrated the principles of Software Engineering, etc. The second part of your presentation will be a demonstration of your finished product.
The Schedule
The schedule takes precedence over everything else in this syllabus! If there's any contradiction or conflict, the schedule is the final determinant. Bring any other ambiguities to the instructor's attention.
Click here for the latest schedule!
Have Fun! Learn! Graduate! Find happiness and teach others!