CS 383: Software Engineering I

Professor: Clinton Jeffery
Office: JEB 230
Office Hours: MF 1:30-2:30 and by appointment*
Phone: 208-885-4789
E-mail: jeffery@cs.uidaho.edu
Class Meets: MWF 12:30-1:20 in JEB 121
Web: http://www2.cs.uidaho.edu/~jeffery/courses/383/
Prerequisites: CS 270 or permission of instructor
Text: Object-Oriented Software Engineering 2nd ed., B. Bruegge, Pearson/PH, 2004.

Course Description and Goals

This course will develop students' ability to apply a systematic, engineering approach to the development of software systems. This course is the first of a two semester sequence in software engineering with concentration on the early phases of the software development process. CS 383 explores software development life cycles, requirements elicitation, and architectural design and design decomposition, while the subsequent course will concentrate on implementation, and testing. The course teaches students about modern techniques available for performing activities in each of these areas.

Students learn major topics of software engineering and then apply what they have studied to the development of a non-trivial software system. The course uses team-based development in groups to complete major project development activities. Assignments will require both written and oral communication. Discussions of legal, ethical, social, and professional issues are conducted where appropriate. Grading is based on a combination of individual work as evidenced by performance on homework assignments, exams, and a written report, as well as how each student performed in team-based activities. After completing this course a student should be able to effectively determine a life cycle approach appropriate for a specific development situation, elicit and document software requirements, and perform and document a software design.

Hardware Platforms

Assignments will be done and graded on Linux; advance arrangements (and instructor permission) will be needed if another platform needs to be used. Development on Windows or Macs will be accommodated as long as you use multi-platform portable languages and libraries, and include time for porting to Linux in your project schedule.





Schedule and Assignments

This course will include assignments that involve studying topics both from industry and from the research literature, with a special emphasis on assignments that involve the construction of a large software system. There will be a lot of hands-on programming. The detailed class schedule lives at www.cs.uidaho.edu/~jeffery/courses/383/schedule.html and will be updated to fit the needs of the course and the project.

Attendance and Grading

Attendance is required, as this course emphasizes collaboration. The grading will be proportioned as follows: 20% for homeworks, 20% for the midterm exam, 20% for the final exam, and 40% for a term project

Policy Statements

Cheating is strictly forbidden on exams, with severe penalties. For most assignments you will be working in a team, and appropriate social behavior will be required to facilitate extensive collaboration.