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.