Department of Computer Science East Carolina University Self Study October 1, 2011
Total Page:16
File Type:pdf, Size:1020Kb
Department of Computer Science East Carolina University Self Study October 1, 2011 1 Contents 1 Program Description 4 1.1 Exact title of the unit . .4 1.2 Department authorized to offer degree programs . .4 1.3 Exact titles of degrees granted . .4 1.4 College or school . .4 1.5 Brief history and mission . .4 1.6 Relationship of the program to UNC’s strategic goals, to the ECU mission and to ECU’s strategic directions . .9 1.7 Degree program objectives . 14 1.8 Program enrichment opportunities . 20 1.9 Responsiveness to local and national needs . 20 1.10 Program quality . 21 1.11 Administration . 21 2 Curriculum and Instruction 22 2.1 Foundation curriculum . 22 2.2 Instructional relationship to other programs . 23 2.3 Curriculum assessment and curricular changes . 24 2.4 Bachelor’s degrees . 27 2.5 Certificate programs . 31 2.6 Master’s degrees . 32 2.7 Doctoral degree . 35 3 Students 36 3.1 Enrollment . 36 3.2 Quality of incoming students . 37 3.3 Quality of current and outgoing students . 38 3.4 Degrees granted . 40 3.5 Diversity of student population . 41 3.6 Needs for graduates and student placement . 43 3.7 Funding . 44 3.8 Student involvement in the instructional process . 45 4 Faculty 46 4.1 Faculty list and curriculum vitae . 46 4.2 Faculty profile summary . 47 2 4.3 Visiting, part-time and other faculty . 48 4.4 Advising . 48 4.5 Faculty quality . 49 4.6 Faculty workload distribution . 50 5 Resources 52 5.1 Budget . 52 5.2 Space . 53 5.3 Technical and equipment support . 54 5.4 Library support . 57 6 Assessment of Outcomes and Faculty Expectations 61 6.1 Attributes that faculty expect graduates to attain . 61 6.2 How well is the program achieving expectations? . 65 6.3 Changes to be made and quality enhancement practices . 65 6.4 Assessment reports . 68 7 Research and Creative Activity 69 7.1 Current research and creative activity . 69 7.2 National comparison . 75 7.3 Interdisciplinary projects . 75 7.4 External research and creative activity support . 77 7.5 Research development . 78 7.6 Ethics training . 79 8 Service and Outreach 79 8.1 Consulting . 79 8.2 Community service and engagement . 79 8.3 Student involvement in community service and engagement 80 9 Accreditation 80 10 Summary Comments and Vision for the Future 81 10.1 Major strengths and weaknesses . 81 10.2 Vision and strategic plan . 82 Appendix A: Assessment Reports 87 Appendix B: Faculty Curriculum Vitae 3 1. Program Description 1.1. Exact title of the unit College of Technology and Computer Science, Department of Computer Science 1.2. Department authorized to offer degree pro- grams Department of Computer Science 1.3. Exact titles of degrees granted 1. Bachelor of Arts in Computer Science 2. Bachelor of Science in Computer Science 3. Master of Science in Computer Science 4. Master of Science in Software Engineering 1.4. College or school College of Technology and Computer Science 1.5. Brief history and mission Provide a brief history of the development of the unit undergraduate and graduate program(s). Briefly describe the vision and the mission of the pro- gram(s). Early History (Undergraduate Programs) Computer science classes were offered at ECU beginning in the mid 1960’s. The initial home department for computer science was the Department of Mathematics. This remained the case until Computer Science became its own department beginning fall 2000. In 1969 a minor in Information Science was offered that included courses in programming, computer organization, numerical analysis, 4 automata, and systems simulation. The first degree program in Com- puter Science was the BA degree which began in 1977. A BS profes- sional degree in Computer Science was offered beginning in 1986. It quickly became the more popular choice for students seeking a com- puter science major. One significant influence was the lack of a foreign language requirement for the BS degree. From the early 1990’s through the mid 2000’s, most curriculum revisions were made with the BS de- gree primarily in mind as discussed next. BS degree evolution As the 1990’s unfolded, the department engaged in several robust de- bates about the value of introducing computer science with and with- out programming in the first course. Initially, the introductory se- quence was a traditional two course programming sequence using the programming language Pascal as the tool, with the first course focused on programming and algorithmic fundamentals, and the second course focused on data structures and the requisite algorithms for manipula- tion of those structures (CSCI 2610 and 3510, each a three credit hour course) Early in the 1990’s, a decision was made to add a preliminary course in the degree program that did not involve programming (CSCI 2510). However, once a decision was made in the mid 1990’s to begin using C++ as the introductory programming language (a move made in order to make our students more marketable), it was quickly de- termined that CSCI 2610 and CSCI 3510 as currently structured were insufficient. A first attempt to remedy this deficiency was to increase the first programming course to a four credit hour course by including a two hour closed lab each week. However, even this was insufficient, and consequently CSCI 2510 began to include a few weeks of C++ programming anyway. The next major curriculum revision occurred in the 2002–2004 time frame when a two-part discussion ensued. One part was a dis- cussion about how to improve the retention of intellectually capable students who lacked sufficient background in problem solving. The second part was about the role of Java as a tool in teaching computer science. Starting from an initial proposal offered by Dr. Karl Abraham- son, the faculty reached a consensus that it would be useful if students were exposed to Java early in their studies. However, there was also a group of faculty who felt that it was important that students also gain exposure to concrete data structures and memory management issues that could best be studied if C++ and pointers were used. Eventually 5 the decision was reached to change the introductory sequence into four courses: 1. A computer science survey course (3 credit hours). 2. A traditional introduction to algorithmic problem solving and programming using Java (4 credit hours, included 2 hour closed lab). (CSCI 2310/11) 3. An introduction to algorithms and data structures that focused on concrete data structures and pointers using C++ (4 credit hours, extra hour for time to learn about new language) (CSCI 3300). 4. An advanced data structures and data abstraction course that could be taught using either C++ (and the STL), or Java (and its API) (CSCI 3310). However, in all cases since this course was first offered in spring 2006, the instructor has used Java. As part of the process, prerequisites for some advanced courses were revised to allow students to being taking some (but not all) ad- vanced courses after completing CSCI 3300 instead of waiting until CSCI 3310 was completed. However, this four sequence introduction did not last long as we began to focus on the process of securing ABET accreditation. In order to have the curriculum meet ABET standards, a second required course in Software Engineering was added. To keep the number of required hours at a reasonable level, the introductory computer science survey course was eliminated. The curriculum changes motivated by the goal of achieving ABET accreditation took effect during 2007. In terms of the other elements of the degree program with respect to computer science core offerings and electives, we have aligned our- selves fairly close to the ACM Computing Curriculum reports that have been issued over the years. Electives have been created based on fac- ulty research and teaching interests. A topics course (CSCI 4905) was introduced to enable “hot topics” to be offered more quickly. Required hours of mathematics and science have been increased to be compli- ant with ABET standards. Students are now required to complete at least two semesters of calculus, two semesters of statistics, and twelve hours of science. In addition, students continue to complete a course in discrete mathematics and a course in linear algebra. These last two courses are taught within the Computer Science department. 6 BA degree evolution As the various changes to the introductory curriculum took place form about 1990–2006, the BA degree was basically “along for the ride”, and very little attention was paid to it, partly because there were few BA students. Thanks to the initiative of our new chair in 2006, Dr. John Placer, the faculty revised the BA program during the academic year 2006–2007 to give it a more unique identity. As noted in the explanatory memo provided to the University Curriculum Committee when the proposed changes were submitted during fall semester 2006. The curriculum for the BA degree program in computer science is being modified to give the program an emphasis on practical skills in problem solving that can be applied to a variety of areas. The changes also highlight the impor- tance of professional ethics and the need for a student to develop good communication skills. Some of the more the- oretical courses in the core are being replaced by computer science courses that focus on important practical knowledge in computing such as database management, computer net- works, and the functionality of systems software. The calcu- lus course is being replaced by the more practical and com- monly needed statistics course. These changes along with the BA degrees requirements for a minor and the study of a foreign language will produce a well rounded graduate of computer science that is ready to assume employment in a variety of business and technical environments.