CS 499 - Senior Design Seminar

 

Credits: 3

 

Course Description

 

Projects to design and implement complex systems of current interest to computer scientists. Students will work in small groups.

 

Prereqs: CS-315 and engineering standing

 

Needed Skills

 

Students are assumed to be Computer Science majors in their senior year. A knowledge of program development techniques in an object-oriented language and a knowledge of data structures and algorithms at the CS-315 level is assumed.

 

Learning Outcomes

 

Students will gain experience in the design and implementation process using material from throughout their undergraduate career. They will gain experience working in groups. Specifically, students will be able to:

1. use accepted project development processes in the project implementation

2. implement a large project

3. work as part of a team

4. present results of their work orally

5. document their work in a written report

 

Measures

 

These five specific outcomes will be evaluated on the basis of student work (homeworks and exams and project assignments). They will also be on the basis of student self-assessment of their mastery of the five outcomes performed at the end of the semester.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

0

0

Data Structures

0

0

Algorithms & Software Design

0

0

Computer Organization and Architecture

0

1

Concepts of Programming Languages

4

2

Social and ethical issues

1

0

Other – Software Engineering

25

9

Total

30

12

 

Computer Organization and Architecture (1): Multiprocessing and alternative, architectures, trade-off analysis

 

Concepts of Programming Languages (6): Taking a problem statement and moving through analysis and design, going from formal spec to code

 

Other – Software Engineering (34):

Core: Software project management (3), software processes (2), software requirements and specifications (4.5), software design (4.5), software tools and environments (2), software validation (5), software evolution (1), component-based computing (1), formal methods (1), specialized systems development (1)

Advanced: Formal methods (1), software reliability (2), software validation (4), software evolution (1.5)

 

Social and Ethical Issues (1): Discussion of the IEEE Code of Ethics for Software Engineers; quiz over the information, discussion of professional and academic integrity (no assignments)

 

Oral Communication (presentations)

 

3-4 project presentations – 15-20 minutes each – done in groups of 3-4 students with each student having to participate in the presentations.

 

Written Communication

 

4-5 homeworks, 3-4 written reports – first is typically 10-15 pages and last is 40-50 pages – each is a group report with all members having participate in the writing.

 

Coverage

 

Theoretical content: 2%

· Discussion of set theory for introduction of formal methods

· Discussion of graph theory for test coverage.

 

Problem analysis: 10%

· Discussion of concept analysis, analysis modeling, design analysis, architecture analysis, and interface analysis.

 

Solution design: 10%

· Construct high-level objectives and requirements, specifications and design.

· Construct low-level design, test plans and cases, and implement the design.

 

Other: 78%

· See software engineering above plus time for presentations

 

Student Evaluation and Feedback

 

Students homework assignments, exams, and projects are returned. Papers are marked to indicate problems and to point out correct or better solutions. Specific problems or items that turn out to be especially difficult are discussed in class. Where instructive, particularly good student solutions are distributed to the class and used to illustrate item to them as a group.

 

On projects, detailed feedback on each element of the project, by phase, is returned.

 

For oral presentations, a detailed evaluation form completed by the instructor and others filled out by all the students who are in attendance are prepared. A summary as well as additional written comments on strengths, weaknesses, and suggestions for improvement is returned to the students participating in an oral presentation.

 

Course Evaluation Questions

 

The course has helped me to:

37. Use the standard project development steps (specification, design, etc.) in implementing a project

38. Implement a large project

39. Develop and present a talk on the status of a project

40. Develop a written report on a large project

41. Work as part of a team

 

Possible Textbook

 

Typically, no required textbook is used in this class.