CS 371: Software Development

Professor: Clinton Jeffery
Office: SH 125
Phone: 505-646-3480
E-mail: jeffery@cs.nmsu.edu

TA: Iyad Abu Doush
Office: SH 143
Phone: 505-646-5577
E-mail: idoush@cs.nmsu.edu
TA Web: http://www.cs.nmsu.edu/~idoush/cs371_home.htm
Class Meets: MF 2:30-3:45PM, SH 118b
Lab: M 4:00-5:50*, SH 118b
Dr. J's Office Hours: Tuesday 3-4, Friday 4-5 and by appointment

Web: http://www.cs.nmsu.edu/~jeffery/courses/371/
Prerequisites: C or better in CS 272, 273, and Math 330
Texts: "Object-Oriented Software Engineering", by Lethbridge and Laganiere
          Numerous class handouts

Course Description

This course presents current methods in software development and software engineering. The course introduces object-oriented analysis and design with UML, "RAD" tools such as graphical interface builders, rapid prototyping, "make" for project building, and "cvs" for group coordination and code revision control. You will find after all these state of the art tools that the most difficult aspect of software development is communication, and so the most important tools of all are documentation, e-mail, and the speaking that occurs in various kinds of meetings.

Goals

In some sense this course is about everything BUT programming that goes on in a software development project, and in another sense, this course is ALL about programming, because the tools and methods introduced as software engineering exist in order to make difficult programming tasks possible.
  1. Experience a substantial group programming project
  2. Understand the major phases and ideas of software engineering
  3. Learn several useful methods and tools for large-scale projects
  4. Practice with oral and written communication and team skills






Grading

The grading will be proportioned roughly as follows:

15%requirements analysis
15%software design
15%software coding
15%software testing
10%project outcome and acceptance test
10%quizzes/homeworks
10%midterm exam
10%final exam

Quizzes, Exams, and Homeworks

We will have quizzes as needed to reinforce your reading of assigned chapters and sections. We will have exams to allow you to demonstrate understanding of lecture material and major concepts. We will have substantial homeworks over various aspects of software engineering, all related to your semester project.

Attendance and Participation Requirements

This course requires substantial communications with class members on an ongoing basis. A large portion of your grade will depend on the class project which will be a team effort. Consequently, attendance is required. Also, you should plan on reading your e-mail every day, and plan on being available to meet with your team members outside of class on a regular basis.

Updates

Expect the course on-line content to get refined, and substantial material added, as the course progresses. Check the course web page for updates every class session or more often.

Policy Statements

Cheating is strictly forbidden on exams and assignments, with severe penalties. For a more detailed definition and examples, see http://lib.nmsu.edu/instruction/plagiarismforstudents.htm

However, this is probably the one course in the curriculum where you are encouraged; nay, specifically ordered to share code and collude heavily with your classmates. You can assume you are supposed to share your work on assignments except when directed otherwise.