Computer Science Undergraduate Curriculum Committee

2006-2007 Outcomes for BS/BA in Computer Science

**Category:** Content/Discipline Knowledge & Skills

**Outcome:** The student will be able to construct
computer software solutions for simple programming problems. This
will be assessed upon completion of the 3-hour course COP3330,
Object-oriented Programming.

**Assessment and Evaluation Process:**

This course is the first advanced programming course that CS
majors take and thus represents a means of measuring this skill.
The faculty instructor will collect the data from a capstone
assignment. This will result in 80% of the students enrolled in
COP3330 during academic year 2005-2006 scoring 70% or better as
determined by a *faculty designed comprehensive or capstone
examination and assignment*.

**Results:**

In Fall 2006, 46% of the students scored 70% or better on this assignment (PDF attachment).

In Spring 2007 and Summer 2007 COP3330 were both taught by the same instructor, and so the same assignment was given in both these cases (weblink). In Spring 2007, 70% of the students scored 70% or better on this assignment, and in Summer 2007 there were 73% who met the criterion. The assignment under consideration utilizes many of the programming techniques and features of the programming language that were taught to the students during the course.

**Actions:**

The criteria were not met, and while disappointing, we believe that the criteria should remain as programming is one of the most important if not most important professional skill that Computer Science students must master to be professionally viable. One should also note that in Spring 2007 and Summer 2007, one issue that reduced the scores was that many students did not submit an assignment at all. One suggestion is to make the capstone programming assignment in COP3330 required to pass the course.

**Files:**

**Category:** Communication Skills

**Outcome:**

The student will be able to formulate an oral presentation, with an accompanying written document, on a large programming project or programming languages topic. This will be assessed upon completion of the 3-hour course COP4020, Programming Languages, or CEN4010, Software Engineering (for SE majors).

**Assessment and Evaluation Process:**

Although all undergraduate students are required to take an oral competency course, this course has oral communication in the discipline. The presentation will be evaluated and data collected by the instructor. This will result in 80% of the students in COP4020 or CEN4010 during academic year scoring 70% or better as determined by a class performance or presentation.

**Results:**

In Fall 2006 in COP4020, 100% of the students did better than 70% on the oral presentation. The oral presentation assignment assesses the ability of the student to express him/herself in a technical subject matter. Presentations are given in a conference-like setting, where the audience of students peers are encouraged to ask questions. The assignment helps students to prepare for a future career that includes presentation meetings, workshops, and conferences. Feedback is given to each individual student on his/her oral presentation. Afterwards a student is required to submit a written report on the presentation topic.

In Spring 2007 in CEN4010 88% of the students did better than 70% on the oral presentation. The presentation was part of a team presentation where each team member presented information on one software component of the main software development project, itself a programming capstone. The presentation was described to student on the webpage linked to below.

**Actions:**

Oral presentations are an important part of all types of professional communications. When working in teams, the easiest way to keep projects operating in a coordinated fashion is to have regular oral briefings. On the other hand, when performing academic research, it is important to have students attend oral presentations and present themselves to ensure that material is being learned and assimilated into research products. We feel that we should continue to insist on high-quality oral presentation skills for all our undergraduates, and plan to seek improvements by making the assessments more stringent.

In addition, we have made a change to the curriculum that now requires two undergraduate Software Engineering classes that will both likely have oral presentations.

**Files:**

- link to outcome editor form
- COP4020 oral presentation assignment, fall 2006
- CEN4010 oral presentation assignment, spring 2007

**Category:** Content/Discipline Knowledge & Skills

**Outcome:**

The student will be able to use such basic data structures as linked lists, stacks, queues, and trees in programs. This will be assessed upon completion of the 3-hour course COP 4530, Data Structures, Algorithms and Generic Programming.

**Assessment and Evaluation Process:**

The faculty instructor will collect data on the performance demonstrated in the capstone activity. This will result in 80% of the students enrolled in COP 4530 during scoring 70% or better on a capstone course evaluation.

**Results:**

In the semester Fall 2006, 80% of the students completed at least 70% of the objectives of the capstone assignment (weblink).

For the semester Spring 2007, 76% of the students completed at least 70% of the objectives of the capstone assignment (weblink).

**Actions:**

Successful completion of programming assignments require a set of contributory skills. Currently the section lab meetings with the TA for COP4530 provide an opportunity for the students to request help and instruction with developing such auxiliary skills. It is suggested that future instructors create a secondary set of "lightweight" assignments, focused on the buildup of such auxiliary skills. These should be used in a structured approach to the lab section meetings, with the assignments distributed for completion during the lab time. Such a body of assignments can be put together from material developed over the years by instructors and TAs, to capture the best observed practices in the form of "institutional memory", guaranteeing consistency of delivered instruction quality and as a platform for continuing improvement through successive review.

The COP4530 Course Committee would also like to make the following suggestion regarding "Assessment and Evaluation Process and Methods" of the course. Currently, a single programming assignment is chosen as the capstone activity. Given the facts that students will learn a number of different data structures including lists, queues, deque, stacks, heaps, hash tables, and trees, and that each programming assignment focuses on one of the data structures, the committee recommends to choose a set of two to three programming assignments as the capstone course evaluation, if this is allowed by the SMALCs established policies.

**Files:**

**Category:** Content/Discipline Knowledge & Skills

**Outcome:**

The student will be able to use standard recursive algorithmic techniques for the solution of complex problems in computer science. This will be assessed upon completion of the 3-hour course COP4530, Data Structures, Algorithms and Generic Programming.

**Assessment and Evaluation Process:**

This is an important skill for a CS major and data on this will be collected by the faculty instructor from a capstone activity. This will result in 80% of the students enrolled in COP 4530 during scoring 70% or better as determined by a capstone course evaluation.

**Results:**

In the semester Fall 2006, 93% of the students completed at least 70% of the objectives of the capstone assignment (weblink).

For the semester Spring 2007, 76% of the students completed at least 70% of the objectives of the capstone assignment (weblink).

**Actions:**

**Files:**

**Category:** Critical Thinking Skills

**Outcome:**

The student will be able to analyze the computational complexity of algorithms used in the solution of a programming problem. This will be assessed upon completion of the 3-hour course COP4531, Complexity and Analysis of Data Structures and Algorithms.

**Assessment and Evaluation Process:**

This is an important skill for a computer scientist to have in order to be able to analyze and evaluate the best approach to solving a problem. This skill will be evaluated by the faculty instructor in a course assignment. This will result in 80% of the students enrolled in COP4531 during scoring 70% or better as determined by a capstone course evaluation.

**Results:**

In Fall 2006, a programming assignment based on number theory and hashing was assigned (see web link below, problem #2). 56% of the students achieved a 70% or higher on this assignment. Several students, 28%, did not turn in an assignment.

In Spring 2007, the Assignment 1 was primarily on computational complexity, and it was chosen as the capstone assignment. 95% of the students achieved a 70% or higher on this assignment.

**Actions:**

The Fall 2006 assignment was based on material that was too difficult for many students. Thus, the suggestion is to provide more background material in class and in the assignment description to allow students more of a chance to succeed.

In Spring 2007 we easily met the objective of having 85% of the students obtain 70% or more. However, this statistic only gives an indication of the percentage of students who perform at an acceptable level. We should really try to increase the number of students who perform excellently. Less than 20% of the students obtained over 90% on this assignment. In contrast, most students obtained over 90% in the programming assignments.

On the whole, it was felt that the mathematical skills of the students need much improvement, if they are to become adept at complexity analysis. We list below some plausible causes for this deficiency.

(i) Many students take this course a few semesters after they have taken data structures (COP4530) and discrete mathematics. In fact, there were several graduating seniors in the class. In the interim semesters, they have not had any courses that made them use the mathematical skills that they are expected to learn in the discrete mathematics courses. Consequently, they have forgotten most of the material.

(ii) When this same instructor taught data structures (COP 4531), he realized that even students who had just taken a discrete math course the previous semester did not have adequate mathematical skills. In particular, they were unfamiliar with writing formal proofs.

It is suggested that the following be done to improve the students' mathematical skills, which is required for complexity analysis.

(i) Ask the advisers to strongly suggest that (a) students take Data Structures as soon as they can, after Discrete Math 1, and concurrently with Discrete Math 2, and (b) students take algorithms immediately after they take Data Structures. The undergraduate course map now suggests a one semester gap between data structures and algorithms. This gap should be removed by moving COP4531 into term 5 (perhaps moving LS History to term 6).

(ii) The data structures course should also include some simpler complexity analysis and formal proofs. That way, students will use the knowledge they gained in Discrete Math 1 immediately after completing the latter course. It is unrealistic to expect students to develop their complexity analysis skills in just one semester of COP4531. In fact, the instructor had the students practice these skills when he taught COP4530, but it will be better to have all instructors do this, if we wish to improve the complexity analysis skills of the students.

**Files:**

**Category:** Content/Discipline Knowledge & Skills

**Outcome:**

The student will be able to use both relational and object-oriented databases. This will be assessed upon completion of the 3-hour course COP4710, Theory and Structure of Databases.

**Assessment and Evaluation Process:**

As databases become increasingly prevalent in business and industry, a CS major needs to have expertise in the area. The faculty instructor will collect data on a capstone activity in databases. This will result in 80% of the students enrolled in COP4710 during scoring 70% or better as determined by a capstone course evaluation.

**Results:**

In Fall 2006, 87% of the students got 70% or better on the capstone assignment, assignment 3 (attached document).

In Spring 2007, 100% of the 4710 students got 70% or better on the capstone assignment, a final project (weblink). However, the students originally did poorly on the assignment, and were required to produce a better result; and all did. This was done without the instructor knowing that this was the IEP reported assignment.

**Actions:**

Clearly the students have met the requirement. However, they did so only by allowing them an extra chance at the assignment. Since Database management skills are so important to professional employment, it makes sense to demand that students do extremely well on such a capstone assignment. Thus, this feedback from the instructors will be used to inform instructors that this level of mastery should be shown by all COP 4710 classes.

**Files:**

- link to outcome editor form
- COP4710 assignment, fall 2006
- COP4710 assignment solution, fall 2006
- COP4710 assignment, spring 2007

**Category:** Content/Discipline Knowledge & Skills

**Outcome:**

The student will be able to use an assembly language to write a simple program. This will be assessed upon completion of the 3-hour course CDA3100, Computer Organization I.

**Assessment and Evaluation Process:**

This is an important skill for a CS major as a means of better understanding higher-level programming languages, and also as a means of programming embedded systems. The skill will be evaluated by the faculty instructor via a capstone activity in the area. This will result in 80% of the students enrolled in CDA3100 in 2005-2006 scoring 70% or better as determined by a capstone course evaluation.

**Results:**

In Fall 2006, 95% of the CDA3100 students achieved 70% or better on the assignment used as the capstone course evaluation. The assignment is provided as a weblink as well as a second weblink pointing to a second file containing assembly language support files.

In Spring 2007 several assignments were considered together as the capstone course evaluation for Assembly Language skills. The first was assignment #4: The purpose of this assignment is to let the student be able to write complete MIPS programs to solve problems with some difficulties. One of the problems requires recursive programming so that the student should be to understand better function calls that are implemented in MIPS. Here 89% of the students scored 70% or better on assignment #4. The other assessment was assignment #6: The assignment is to expose the student to different instruction set styles and Intel-32 instruction set architecture and its advanced instruction features SSE, and how to use these instructions in C programs using In-line Assembly Programming. As expected, this is a very difficult assignment as it requires a lot of knowledge and studies in several different areas (some of the materials are even beyond a typical graduate level). The student is required to understand Intel assembly programs and be able to use SSE instructions in C programs through in-line assembly in gcc. Here only 69% of the students scored 70% or better on assignment #6. Overall, 79% of the students scored 70% or better on these two assignments.

**Actions:**

In Fall 2006 the assessment was easily achieved, while in Spring 2007 the assessment was essentially made. It is important to note that these assignments, as they relate to Assembly Language skills, were very characteristic of the skills required of Computer Science students in the work place. Thus, we feel we should not modify the requirements or the assessments, just provide resources to help more students succeed.

**Files:**

**Category:** Program Outcome

**Outcome:**

By the end of the degree, the program will integrate knowledge of theoretical and applied foundations of computer science to provide the student with skills that will remain current as specific technologies change.

**Assessment and Evaluation Process:**

Graduating seniors are requested to complete an exit survey which includes information on employment or graduate school plans. This data is collected by the departmental undergraduate advisor. This will result in 80% of those graduating during the academic year from the program being employed in field or being accepted into graduate schools, as evidenced by survey results.

**Results:**

The department had 43 undergraduates complete their degrees in Computer Science in 2006-2007. All of those students were asked to visit the undergraduate adviser for an exit interview, and 31 did participate (72%). Of those 31, 27 (87% of those interviewed) were either accepted to graduate school or had obtained professional employment. Note that 63% percent of the students met the criterion if we make the pessimistic assumption that all the students not interviewed had no post-graduate positions. The breakdown per semester in 2006-2007 is:

Fall 2006: 21 graduated, 13 (62%) were interviewed, and of those 11 (85%) were professionally placed.

Spring 2007: 17 graduated, 15 (88%) were interviewed, and of those 13 (87%) were professionally placed.

Summer 2007: 5 graduated, 3 (60%) were interviewed, and of those 3 (100%) were professionally placed.

**Actions:**

The main issue here is collecting the data from as many students as possible. Based on the students that were interviewed, it is clear that undergraduate Computer Science majors from FSU are in high demand, and that their degree provides them with entrance to the professional world. At present, participation in the exit interview is voluntary, and the undergraduate adviser spends a considerable effort tracking down graduates. It would be desirable to make the exit interview mandatory in some enforceable way. However, the Department has never learned from a former student that they had trouble finding professional employment.

**Files:**