Capstone Courses Semester-Conversion Course Group Report
Background
A Capstone Design course serves as a class in which students synthesize interdisciplinary solutions to open-ended problems, while working with their peers. Most Computer Science Capstone Design courses appeared to have gravitated to externally sponsored projects where an attempt is made to create a project setting that is representative of the real-world – in that the projects had a customer that provided requirements, and uncertainties such as scope, priorities, unknown technologies and delivery deadlines. Capstone Design courses were mostly offered in the final year of an Undergraduate program as a culminating Senior Project experience that created important assets for students’ employment portfolio. These courses were sometimes connected with internships – as lead-ins or extensions to internships or replacements for internships.
Within CSE our Capstone Design courses play an important role in the ABET certification process. The ABET criterion for such courses states:
Students must be prepared for engineering practice through a curriculum culminating in a major design experience based on the knowledge and skills acquired in earlier course work and incorporating appropriate engineering standards and multiple realistic constraints.
Thus:
1. The curriculum must *culminate* in this course. While some students may well take more than one Capstone Design course, each has to be designed to be a culminating experience.
2. The course must be a major design is an absolute requirement. Thus, a course focused on arbitrary research or project work is not appropriate.
3. The course must be based on knowledge and skills acquired in earlier course work. That is, the capstone design course should not introduce new topics that students have to learn before they can work on the design project. If such prerequisite knowledge is required, a suitable technical elective should be developed where the student can acquire the knowledge before taking the capstone design course in question.
4. The course must "incorporate engineering standards.” In Computer Science standards may be interpreted as accepted coding standards, standard methodologies, interface standards (such as SQL) and data standards.
5. The course project must incorporate "multiple realistic constraints.” These constraints will drive the design. Schedule is almost always a constraint in these projects. Functional and non-functional requirements will also be sources of constraints.
The capstone design courses also help to meet CSE program requirements with respect to team work, lifelong learning, and communication skills. These requirements are described at http://www.cse.ohio-state.edu/~neelam/abet/DIRASSMNT/secondGroup.html.
Current Set of Courses in the Group
The CSE program currently comprises the following 5 Capstone Design courses:
1. CSE 682: Computer Animation
2. CSE 731: Knowledge-Based Systems
3. CSE 758: Software Engineering Project
4. CSE 762: Web-Services Capstone Design
5. CSE 772: Information System Project
6. CSE 778: Computer-Aided Design and Analysis of VLSI Circuits
7. CSE 786: Game Design
Evaluation of Courses
This package of Capstone Design courses has several advantages, as follows:
- Ability to take multiple Capstone Design courses: Each Capstone Design course has a different focus, and flavor, and students may take multiple of these courses so as to be able to see new areas, to get multiple project experiences and sometimes to compensate for a bad previous project experience.
- Focus in a disciplinary area: Some of these courses – such as the VLSI, knowledge-based systems and the game capstone allow for a deep project experience in a particular area.
- Industry engagement: Certain of these courses serve as “safe” ways in which to give students real industry relevant experiences.
- Introduction to research: They have served as a way to connect UG students with research projects
- Employment portfolio: Especially for those without internships, these Capstone Design courses serve as a means of getting real-world experience.
- End-to-end project visibility: The software intensive Capstone Design courses – 758, 762, 772 and 786 – provide an experience of the full lifecycle of software projects.
- Learn from others: Students in group-projects learn from each other, but also by observing the other groups in the class. Since each group typically has different experiences, this observation gives wider visibility into multiple aspects of projects.
Students have been very appreciative of these project courses, as evidenced by solicited feedback in SET/SEI, and the exit surveys as well as unsolicited feedback from students.
There are also the following disadvantages and issues with our current Capstone Design package:
- Consistency: Each course has differences in technology exposure, process used, management, and prerequisites. Certain Capstone Design courses (758) emphasize the process and provide process guidance, but (being technology agnostic) might not include attractive technologies, while others care only about the final product, and let the process be mostly ad hoc. This lack of consistency extends to the learning outcomes, and hence the assessment components as well.
- Overlap: Several courses are similar, in particular, 758, 762 and 772.
- Short duration: The quarter-long duration results in a lack of depth in the experience. Students get exposure to issues, but rarely get to solve them.
- Weight: Since there are a number of Capstone Designs and students can take more than one, the project does not have the importance of a “senior project.”
- Narrow non-integrative, sub-disciplinary view: The fact that these courses evolved from the disciplinary tracks within CS, such as AI, SE, VLSI, and Databases, means that the focus is narrowed to “how to apply AI,” or “how to do apply a software methodology,” rather than holistic problem solving where multiple technical and non-technical techniques drawn from more than one sub-discipline are applied in a manner tailored to the project.
- Lack of applications that use emerging technologies: In addition to exposing students to current and established technologies like J2EE or .NET, students will benefit from early exposure to emerging technologies that are just coming into commercial use – such as MapReduce and Hadoop for data analytics, HPC, sensors and networking, visualization, knowledge-based systems (using OWL and Protégé), and social networking frameworks (Google API, Facebook API etc.). These technologies are today where web services were several years ago.
- Missing coverage: Once again, because of a lack of flexibility caused by a disciplinary focus, there are important areas where there are no capstone design courses – such as in systems software (operating systems and embedded systems).
- Infrastructure support: Several Capstone Design projects are done by students on their personal machines. Certain capstones (CSE 758 and CSE 762) are now using the department “cloud.”
- Lack of alignment: Primarily because our Capstone Design courses are only one quarter long, they are not aligned with Capstone Design courses in other Departments, or with the College’s interdisciplinary Capstone Design. Thus, creating projects where students from multiple disciplines collaborate is difficult.
- No leverage by the Department for development purposes: Capstone Design projects are extremely showcases for student and donor recruitment, and industry sponsorship. We are simply not leveraging these courses for these purposes.
Conversion to Semesters
The semester conversion gives us an opportunity to increase the scope of the Capstone Design experiences we provide to our students as well as to address several of the deficiencies listed above. In the new structure, the Department will continue to offer multiple Capstone Design courses, while offering sponsors and students the opportunity to use the Software Applications Capstone for projects that do not fit in the other Capstones. The semester conversion will be used as an opportunity to retire Capstones – such as the VLSI Capstone. One faculty member will be formally or informally responsible for the overall coordination of all the Capstones. Capstone faculty will also collaborate on evaluation as well as joint showcasing of the Capstone projects to industry, alumni, potential new students etc.
Thus, the following Capstone courses will be offered:
1. Software Applications: 4901. Coordinator: Rajiv Ramnath
2. Game Design: 4902. Coordinator: Roger Crawfis.
3. Animation: 4903. Coordinator: Rick Parent.
4. Knowledge-based Systems: 4904. Coordinator: Eric Fossler-Lussier (Instructor: Naeem Shareef)
One additional Capstone course is under consideration:
1. Data Management: 4905. Coordinator: Hakan Ferhatosmanoglu
All Capstones will share a set of common learning outcomes (see below) that will support the CSE Program Outcomes. They may have individualized learning outcomes in addition.
Certain advantages of our current system could, however, be lost. The proposed program will become more complex in terms of planning, management and allocation of teaching credit. Also, because semesters have a larger granularity, the current ability of students to take multiple Capstone Designs will be reduced. Finally, the number of students in steady state will increase (roughly by a third, simply because 2 semesters is equivalent to 3 quarters).
<Syllabii of the courses>
Program Outcomes
Our current model, indeed the model that ABET expects, is that the Capstone Design program make major contributions to achieving several of our program outcomes. In particular, the capstone course is expected to contribute to each of the following outcomes (number of asterisks indicate the importance of the Capstone Design course's contribution to the corresponding outcome):
1. (***) an ability to design, implement, and evaluate a software or a software/hardware system, component, or process to meet desired needs within realistic constraints such as memory, runtime efficiency, as well as appropriate constraints related to economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability considerations;
2. (***) an ability to function on multi-disciplinary teams;
3. (***) an ability to identify, formulate, and solve engineering problems;
4. (**) an understanding of professional, ethical, legal, security and social issues and responsibilities;
5. (***) an ability to communicate effectively with a range of audiences;
6. (**) an ability to analyze the local and global impact of computing on individuals, organizations, and society;
7. (**) a recognition of the need for, and an ability to engage in life-long learning and continuing professional development;
8. (**) an ability to use the techniques, skills, and modern engineering tools necessary for practice as a CSE professional;
9. (***) an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices; (***: this last clause about tradeoffs is especially important.)
10. (**) an ability to apply design and development principles in the construction of software systems of varying complexity.
Common Learning Outcomes
1. Master synthesizing and applying prior knowledge to designing and implementing solutions to open-ended computational problems while considering multiple realistic constraints.
2. Be competent in evaluating design alternatives.
3. Be competent with software design and development practices and standards
4. Be familiar with researching and evaluating computing tools and practices for solving given problems.
5. Be competent with deadline driven projects in a team setting.
6. Be competent with issues of project management, such as teamwork, project scheduling, individual and group time management.
7. Be competent with presenting work to a group of peers.
8. Be familiar with presenting work to a range of audiences.
9. Be competent with techniques for effective written communication for a range of purposes (user guides, design documentation, storyboards etc.)
10. Be familiar with analyzing professional issues, including ethical, legal and security issues, related to computing projects.
Prerequisites
All Capstone Design courses will have the Junior Project courses and the Ethics course as pre-requisites. Coordinators of the Capstone Design courses will specify additional pre-requisites, such as:
- Software Applications: Software Engineering
- Game Design: Software Engineering (TBD), Graphics, AI courses.
- Animation: Graphics courses
- Knowledge-based Systems: AI courses.
- Data Management: Databases.
- Systems and Networking: Systems-2
If the Engineering Education Innovation Center offers a project management course, it could be considered as a pre-requisite for Capstone courses other than the Software Applications Capstone (for which Software Engineering is already a pre-requisite with sufficient project management content).
Allowing holistic problem solving by using techniques from multiple technical disciplines will increase the design experience, because students will have to select more than one technology or approach in order to solve a problem, which is an important and very realistic design problem. Finally, the learning they will do - to pick up and integrate these new technologies – will contribute strongly to the lifelong learning aspect of the course.
There is a concern that in any form of consolidation students will lack the necessary pre-requisites to succeed in the project. In reality, there are ways to both manage this, and, in fact, leverage this as an opportunity.
There are significant concepts and techniques that students do not know when it comes to designing and building a realistic system, and no amount of curricular pre-requisites will provide the students with everything they need to apply to their project. The students pick up these skills as they do the project, and the Capstone faculty and mentors help them in this process as well.
Also, ensuring appropriate prerequisites can be handled by the project selection and assignment process. Thus, a particular (say, game) project can have a condition that it can only be done by a group where a critical mass of students in a team has taken the Graphics and the AI courses.
Course Management
1. Common processes and project management: Where applicable, and as determined by the final structure of the Capstone Design courses, a cadre of faculty will establish common processes for project intake, execution, assessment and publicity. For the Applications Capstone Design, the management faculty will most likely be our current adjunct and clinical faculty.
2. Handling increased number of students: A Capstone Design course might be split into multiple sections, as needed.
3. Team mentors: In addition to the faculty managing the classes, and the “customers” of the projects, teams could need project mentors that understand and can help with applying specific technologies or methodologies used in the project. Mentoring could be in some cases be the customers themselves. In most cases, mentors will be other faculty with the necessary expertise.
4. Common Infrastructure: The department’s “cloud” will provide the necessary computing resources.
5. Teaching credit assignment: