CS 384: Software Engineering II

Professor: Clinton Jeffery Prerequisites: CS 383 or permission
Office: JEB 230 Class Meets: MWF 1:30-2:20 in JEB 121
E-mail: jeffery@cs.uidaho.edu            Office Hours: MF 2:30-3:30 and by appointment
Phone: 208-885-4789 Web: www2.cs.uidaho.edu/~jeffery/courses/384/
Text: Object-Oriented Software Engineering 2nd ed., B. Bruegge, 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 second of a two semester sequence in software engineering with concentration on the development and maintenance phases of the software development process. CS 384 explores many aspects of implementation, testing, debugging, and maintenance. The course teaches students about modern techniques available for performing activities in each of these areas.

Students learn major topics of software engineering and apply what they have studied to the development of a non-trivial software system. The course uses team-based development to complete major project activities. Assignments 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 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.

Schedule and Assignments

This course will include assignments that involve studying topics from the research literature, as well as 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 www2.cs.uidaho.edu/~jeffery/courses/384/schedule.html and will be updated to fit the needs of the course and the project.

Assignments will be graded on Linux. If you want to use Windows or OSX, you must use multi-platform portable languages and libraries, and continually/incrementally maintain a Linux port as your project proceeds.

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. In all your other work, you will working on large team assignments and are expected to collaborate aggressively.