Text Box: Course SpecificationText Box: Computer Science and Engineering
Avery Hall 256 - 0115
472-2401

CSCE 487

Computer Science Design Project

Catalog Description:

487. Computer Science Design Project (3 cr) Prereq: CSCE 361 and CSCE 486 and senior standing. Students are organized into teams to undertake a substantial design project proposed and supervised by the instructor. They will be given a broadly defined problem that requires aggregation of the technical and analytical skills obtained in other CSCE courses. The projects offered will be sufficiently complex to require team members to partition and coordinate their efforts for successful completion. Assessment in this course is based on a series of intermediate project checkpoints, oral presentations and the final project and reports. Marks will be allocated on both an individual and a team basis.

Textbooks(s) and/or Other Required Materials:

  1. None specified, although instructor may require manuals, standards, & other documentation relevant to the particular project & technology being employed.
Prerequisites by Topic:
  1. Mastery of: data structures, algorithms, computer programming.
  2. Familiarity with: integration of CS topics (theoretical and applied); professional writing & speaking styles; the particular design tools, resources & technologies available for the project; & the general topic of the project to be undertaken; social and professional issues
  3. Exposure to: research and development (R&D) strategies, principles of software engineering and team development.
Course Objectives:
  1. Practice with a significant design project in a realistic design environment, to gain mastery of: open-ended problem solving & design skills, literature review skills, written & oral presentation skills, & team dynamics,
  2. Practice with team-based development environment, requirements gathering, software architecture/design.
  3. Practice with identifying, adapting, evaluating, and implementing CS theories, concepts, and paradigms in real-world applications

Topics Covered:

Topics vary from project to project, but include practice in the following:

1.      Design & implementation of a software project too complex for one person,

2.      At least three written & oral reports to be written & presented as a team.

3.      Team collaboration (tools), software design, requirements gathering, test plans.

4.      “Research activities”: how to come up with a hypothesis, how to design and carry out a test, how to analyze the results to validate or invalidate the hypothesis.

Relationship of Course to Program Objectives:

Contributes to Program Objectives 3 and 4 through Program Outcome 3.a, to Program Objectives 1 and 3 through Program Outcome 3.d, and to Program Objective 3 through Program Outcome 5.

Relationship of Course to ACE:

 

This course is the capstone course for our Computer Science curriculum, taken by our Computer Science seniors nearing graduation.  The course provides intensive opportunities for hands-on practice, close to a real-world environment in terms of teamwork, problem identification, and research-and-development processes, requiring students to gain mastery in open-ended problem solving and design skills, written and oral presentation skills, and team dynamics. 

This course satisfies the ACE Learning Outcome #10 through a very specific requirement: each team of students must conceive, design and build an innovative hardware-software device of sufficient complexity so as to require effective teamwork. To achieve this goal, they must follow  the critical steps involved in computer- system prototyping: (1) integrate knowledge ranging from theoretical to practical, mathematical to computational to logical, acquired during students’ study here, to address a wide range of design issues and challenges from software to hardware (broad knowledge), (2) design, plan, and execute the design with technical proficiency in searching and identifying suitable computer and hardware parts, system assembly, fabrication, testing, evaluation, and refinement (appropriate technical proficiency), (3) perform technical and literature reviews of existing technologies for feasibility and comparative analyses of the design choices (information collection), (4) synthesize technical data and specifications of computer and hardware parts (such as power consumption, pricing, and performance charts of a radio-frequency (RF) sensor) such that the final prototype meet design constraints, requiring discussions, insights, empirical tests, and trade-off analysis (synthesis), (5) interpret and present results in terms of system performance, requirements, and costs, involving extensive component testing of individual modules as well as the final product testing, often involving in-situ, real-time situations (interpretation and presentation), and (6) conduct system evaluation and teamwork in terms of lessons learned throughout the design and development process, highlighting paths that led to dead-ends, breakthroughs, and “engineering tweaking” that get the product to work, in both oral presentation and written report forms (reflection). 

Specifically, the course consists of roughly 5 hours of lectures to cover the basic topics on design and implementation of complex software/hardware projects. The instructor meets with each team on a weekly basis to discuss their progress throughout the entire semester where the instructor helps students brainstorm, critiques their designs, monitors and supports their teamwork, and challenges them to come up with better solutions.

The quality of the final product primarily paints the picture of how well the Learning Outcome has been achieved, as well as the process during which the final product is derived from a problem to a solution, and evolves from a conceptual design to a concrete computer-hardware system that is rigorously tested either individually or in a real-time contest.  First, is at least one fully-functional, end-to-end product demonstration.  This will evaluate students’ product creativity, quality, technical correctness, the application and integration of computer science concepts and paradigms (broad knowledge) in order to assess their mastery of computer science concepts and paradigms, proficiency in problem solving and product development (appropriate technical proficiency), and familiarity with the algorithmic and software development process such as exploring design choices, decision making after comparative studies, and performing trade-offs when planning for product design and development (information collection and synthesis).  There are at least two written and oral reports to be written and presented as a team.  These will assess the students’ project progress on different stages: from development to testing, from prototyping to final product demonstration.  Further, these will assess students’ information interpretation and presentation skills.  Product evaluation and refinement typically involve extensive experiments and subsequent result analyses.  Students’ documentation, discussions, and presentation of results are graded via these written and oral reports.  Further, both reports require students to reflect on lessons learned, unfinished work, potential extensions, and societal impact of their design and product.

 

Contribution of Course to Meeting the Professional Component:

Contributes to Criterion 4(b), and also provides the most significant (capstone) design experience of the curriculum.

Class/Laboratory Schedule:

45 hours = 3 hours / week for 15 weeks.

·  Regular lectures are held only for the first few weeks to cover the two basic topics, after which the teams work independently.

· The instructor meets with each team on a weekly basis to discuss their progress,

· There are no prescribed laboratory times; rather, labs are available whenever the building is open

Prepared by:

Leen-Kiat Soh, July 2008

Myra Cohen, Assistant Professor

Leen-Kiat Soh, Assistant Professor

Stephen Scott, Associate Professor