28483 CSC 4175N - 0 - Software Engineering
This web page is http://www.bernstein-plus-sons.com/.dowling/CSC4175S05/CSC4175_Syllabus.html
Copyright © 2002, 2005 Herbert J. Bernstein and other parties. All rights reserved.
This is the syllabus for CSC 4175N and CSC 4177N for Spring 2005. As the course moves forward, students should return to this page frequently for updated material.
This course gives the student a working vocabulary in classical and modern
software design and techniques. It also provides an opportunity for the
student to work with state-of-the-art software design tools in a realistic
software engineering project with other students to gain insight into
the application of his/her CS knowledge to real world projects. Problems and
solutions in real life software design will also be presented. Evaluation
will consist of two exams and a large group project.
Prerequisite: CSC 2025 (or CSC 1071).
Corequisite: CSC 4177.
Students work in teams to design and implement a software project involving
multiple areas of the CSC curriculum. Emphasis is placed on the development
process itself, as well as on the product. Teams are expected to develop a
work plan and to track and document their progress. Students will meet
with the faculty advisor for guidance only. Students will at times need to
do research on their own, and will convene once each week in a classroom
setting to present project status reports and to address project problems
Prerequisite: CSC 2025 (or CSC 1071).
Corequisite: CSC 4175.
The Spring 2005 schedule is:
|Start Date||End Date||Days||Times||Bldg||Room|
|28483||CSC||4175N||0||3.00||Software Engineering||Oakdale Campus
||Jan 28, 2005
||May 16, 2005
||4:00 pm - 05:20 pm
||Kramer Science Center
||Instructor(s): Herbert J. Bernstein
||Jan 28, 2005
||May 16, 2005
||Instructor(s): Herbert J. Bernstein
CSC 4177N, Senior Project, was listed incorrectly in the course schedule as being held on Thursdays from 5:30 pm to 6:50 pm. The actual time slot will be determined in consultation with the students involved. What is required is a one hour time slot in which all project team members can meet and coordinate their work in consultation with the instructor.
Note that, in general, the instructor will be at the Oakdale campus on Monday, Tuesday, Wednesday and Thursday afternoon. If at all possible, please use email to schedule meetings in advance to avoid conflicts with other students and other obligations of the instructor.
For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.
Students are expected to have their text books no later than the second week of class.
The process of work on the project is more important than the results of the project. In order to be able to evaluate student involvement in that process, students must attend regularly and participate actively. Therefore, attendance will be taken at all class meetings. All absences must be explained in writing (or via email). Students who miss 2 or more lectures must meet with the instructor to review their progress in the course. As per department policy, students who miss more than 2 classes before the midterm will be given a midterm warning and advised to withdraw. Grades will be reduced for unexcused absences (see grading policy, below). Failure to attend classes regularly and faithfully and failure to actively participate in project meetings will have a serious impact on your ability to do the required team project and will result in failure of both courses. There is no way to make up a failure to participate in the team project except by taking the course all over again.
To help ensure punctuality and to help in evaluating student progress, there will be a short (1 - 4 questions) project-related quiz at the start of each meeting of the class. There will not be any opportunity to make up these quizzes when they are missed due to lateness or absence. The average of these quizzes will count for 40% of the project grade.
Each student will be required to maintain a laboratory notebook of their project work. The required notebook allows the creation of a carbon of each page. The student may simulate the required book with a hardbound composition book, a piece of carbon paper and a supply of looseleaf filler paper. Each student will be required to turn in notebook carbons each week, to maintain a project status web page, and to submit a formal written project report at the midterm and at the final.
The grades for CSC 4175N and CSC 4177N are inter-related. Failure to complete the major components of work in either course will result in an incomplete or failure for both courses. If all the major components of work for both courses are done, then the final grades will be determined as follows:
There will be reading assignments and homework assignments to help prepare students for project work, classroom discussions and for the two examinations, but the homework will not be submitted for grading. Instead, the instructor expects to see the lessons of the readings and homeworks reflected in all other work for the course. In particular students will be expected to present and discuss answers to homework problems during class meetings. Students who have difficulty with the homework should see the instructor as soon as possible to discuss the issues involved.
An open book, open notes midterm and an open book, open notes final will be given. In general, no makeups will be given for missed quizzes or examinations. Requests for exceptions to this policy will be considered only for the most pressing reasons (illness requiring hospitalization, death in the family, reserve call-up, etc.), must be submitted in writing in a timely manner, and will be granted only if the instructor has sound reason to believe that the student is highly likely to master the material of the course within the current semester.
The syllabus and the course objectives that follows are derived in part from the IEEE/ACM "Computing Curricula 2001 Computer Science" - Steelman Draft - (August 1, 2001) by the Joint Task Force on Computing Curricula, IEEE Computer Society, Association for Computing Machinery. We quote from the section on Software Engineering, http://www.computer.org/education/cc2001/steelman/cc2001/SE.htm:
Software engineering is the discipline concerned with the application of theory, knowledge, and practice for effectively and efficiently building software systems that satisfy the requirements of users and customers. Software engineering is applicable to small, medium, and large-scale systems. It encompasses all phases of the life cycle of a software system. The life cycle includes requirement analysis and specification, design, construction, testing, and operation and maintenance.
Software engineering employs engineering methods, processes, techniques, and measurement. It benefits from the use of tools for managing software development; analyzing and modeling software artifacts; assessing and controlling quality; and for ensuring a disciplined, controlled approach to software evolution and reuse. Software development, which can involve an individual developer or a team of developers, requires choosing the tools, methods, and approaches that are most applicable for a given development environment.
The elements of software engineering are applicable to the development of software in any computing application domain where professionalism, quality, schedule, and cost are important in producing a software system.
Time does not permit covering all the relevant material in a one-semester undergraduate course. The following syllabus represents a starting point for further study.
Upon completion of the course, the students will:
The best way to develop an understanding of modern software engineering is by applying the tools of software engineering to a significant software project. The class will form into a small number of groups (perhaps only 1). Each group will work as a team to implement a significant software system. Each group will be given the opportunity to identify a suitable project. Students are urged to interview Dowling students, faculty and administrators to find software projects that need to be done. Examples would be new and useful record-keeping databases for departments or divisions, middle-ware query systems which would extract new and useful reports from existing systems, a new and useful scientific API, etc.
Students will be given two weeks to voluntarily form groups and select projects. At the fifth meeting of the course, the class as a whole, under the guidance of the instructor, will evaluate all proposed projects and all proposed groups, and attempt to make a consensus determination of project assignments. If this process fails to achieve resolution within one class meeting, each student will be required to write a detailed report with copies for all members of the class as well as for the instructor. The report will analyze the outstanding problems and recommend a course of action, and will be presented at the sixth meeting of the class. If that does not result in resolution of outstanding problems, the instructor will intervene as "chief decision maker" and make the necessary assignments. No further changes in project or in group assignments will be permitted during the semester.
Some students may not have an adequate preparation in programming to undertake the homework assignments and the course project. The text is oriented towards java, and java is fast becoming a major production tool. However, some projects may require programming in other languages. It is important that students be able to adapt to other languages. For those students who have difficulty in breaking free of the strictures and conventions of java, it may help to consult:
from the Cornell University CS414 Operating Systems course by Emin Gün Sirer. Our thanks to Gueorgui Kitchoukov for pointing out this useful resource.
If you're interested in joining with your fellow students in developing and maintaining a web site, or pursuing your exploration of computer hardware or software, you might want to consider joining the Dowling Computer Club. Just follow the link for further details:
Dowling College Computer Club Web Site