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/ |
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.
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 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.
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.