CSE Senior Design Course Overview
Computer Science & Engineering Senior Design Project is a two-semester course sequence in which the students, working in teams, provide solutions to real life problems. Given a problem statement, students propose, design, develop, and document a solution. The students benefit most when they work on a problem that actually arises in a real corporate setting. They interact with real management and engineering staff, and get experience in which they integrate skills and knowledge acquired from previous courses. The department considers this an important component of the curriculum.
CSE4939W and CSE4940 form the basis for the year long Computer Science & Engineering Design sequence and capstone project required for all CSE and CS majors. Each project is staffed by a team of 3-6 students working under the guidance of a faculty advisor. Projects will employ either waterfall or agile design methodologies and will make use of modern technologies spanning database, real-time operating systems, simulations, optimization, and computer graphics to build software that runs on mobile devices (e.g., iOS, Android), laptops, desktops or client-server architectures via web-based applications.
Students are expected to learn team management and project design skills and demonstrate their abilities with software authoring. They experience the realities associated with real-life software design and development. Successful teams design, build and deploy software and documentation that is at least of beta-level quality by the completion of the second semester.
In planning for the senior design projects, the department publishes towards the end of the summer preceding the senior design year the descriptions of available projects. The student teams are able to submit their preferences, including the preference to pursue their own project. The department then assigns projects to teams using an algorithm that maximizes communal and curricular good. It is normally the case that some preferences cannot be satisfied, and there is no guarantee that the team’s own project will be assigned to it. Consequently it is important that each team submits a meaningful list of preferences (otherwise the assignment is likely to be arbitrary).