Agile Computing Curricula Anthony J. Duben, David R. Naugler, Ken Surendran {ajduben,dnaugler,ksurendran}@semo.edu Computer Science Department Southeast Missouri State University Cape Girardeau, MO 63701-4799 USA Abstract The computing field has been changing since its inception. Several computing related curricula have been introduced by reacting to new developments in the field and industry requirements. Frequent changes to curricula guidelines require considerable administrative effort. Some of the curricular options are hard to sustain. The authors, after examining the developments over recent decades, present a generalized curriculum in the applied aspects of computing or informatics. This generalized applied computing program of study is flexible to accommodate new developments when they occur without requiring significant curricular redesigns. Keywords: applied computing, informatics, curriculum 1. INTRODUCTION Since the computing disciplines are only 60 years old, undergraduate curricula have been evolving quickly. Changes in the underlying technology lead to frequent curricular changes. Curricular options proliferate in order to address perceived demand. In order to simplify the curricula in computer science and applied computer science offered by Southeast Missouri State University, the Department of Computer Science undertook a complete curricular revision with the following goals: eliminating niche options, reducing the number of credit hours required to 124, integrating the two degrees in computer science and applied computer science more closely, adhering to CC2001 and ABET/CAC curricular requirements, and providing the student with more flexibility in the selection of knowledge areas in which to apply computing. The Department completed its work within 60 days of beginning the task and achieved all of its goals. New students starting in the fall semester of 2004 will be enrolled in one or the other of the new degrees. Many students in the older degrees and options chose to switch into the new degrees as well. 2. HISTORICAL PERSPECTIVE The computing disciplines include computer science, software engineering, information systems, information technology, and computer engineering. The content and methods of computer engineering are clearly understood in the wider context of electrical and electronics engineering. There is more ambiguity as to the meaning and demarcations among the other areas. Information technology is often used as an inclusive term that encompasses all of the non-engineering computing disciplines, although some restrict it to network- and Web-oriented technologies. Information Systems is often understood to include only business applications, but broader definitions include any data intensive application area, such as environmental science or bioinformatics. The distinctions between computer science and software engineering are not widely agreed upon. In 1968 the ACM published its first guideline which helped to define the discipline of computer science. As the discipline gained maturity and new technologies and paradigms arose and prevailed the curricula were revised. Several editions of computer science curricula have been promulgated by the ACM and the IEEE-CS in 1978, 1991, and 2001 (CC2001 2001). More recently IS curricula have been formalized in curricular guidelines in 1997, 2000, and 2002 (IS2002 2002), and there is interest in Information Technology as a separate discipline. There are discussions within ABET’s Computing Accreditation Commission on how to handle the three different areas in computing – computer science, information systems, and information technology – using general criteria for all three and specific criteria for each area. ABET/CAC criteria currently include standards for Computer Science and Information Systems, but they are expected to change significantly to include general criteria and specific criteria for Computer Science, Information Systems, and Information Technology. A draft of general criteria is appended to the 2004 – 2005 ABET/CAC criteria. (ABET/CAC 2004). Plans described in the ABET/CAC annual summit in October 2003 document the rapid change taking place (CACSummit 2003). The plans anticipate a category of “other” for programs that do not fit neatly into the already defined categories. A smaller, teaching-oriented, regional comprehensive university like Southeast Missouri State needs to be responsive to a market of potential students who have diverse interests and often seek the B.S. degree in order to gain employment immediately upon graduation. Few pursue graduate study. It must provide a breadth of educational options for students without unreasonably stretching resources or excluding students. Programs need to be responsive to the marketplace – to both potential student demand and to the needs of potential employers while still preparing the more academically inclined student for graduate study. The history of the academic offerings in computing at Southeast Missouri State University is fairly typical of many similar institutions. The Department of Computer Science was created in the late 1970’s in the College of Business. The degree offered was oriented towards business topics although the faculty came from mathematics and the natural sciences. By the 1980’s, there were two degrees offered – one business-oriented and a second joint program with the Department of Mathematics in the College of Science. Ninety percent of the students were in the business-oriented degree. The computer science – mathematics degree option followed the 1978 ACM curriculum. By 1992, one-third of the students in the Department of Computer Science were in the computer science – mathematics degree. In the same year, the Department of Computer Science left the College of Business and joined the College of Science. By the fall of 1995, both degrees (a B.S. in Computer Science and a B.S. in Applied Computer Science) acquired two options each which eventually grew to three options each by the start of the Fall 2003 semester. In the B.S. in Computer Science, the first option was called Computer Systems. It conformed to the ABET/CAC curriculum for Computer Science, but the students could choose only Physics as their science. The second option was Computational Systems. It was a computer science / mathematics combined major, but it was weak in science and did not have enough computer science to match the ABET/CAC curriculum. The third option was Graphical Systems in which students took the equivalent of a minor in Art. It did not quite meet the ABET/CAC curriculum for Computer Science. The B.S. in Applied Computer Science (with fewer requirements in mathematics) also had three options – Information Systems (business-oriented), Technology (electronics and networking), and an Interdisciplinary Applications option in which a student was required to elect a minor or second major in an application area. The minor or second major would provide a knowledge base for development work or possibly be the basis for further interdisciplinary study. None of these options satisfied the ABET/CAC curricular requirements for IS programs. No student ever completed the Technology option in its entirety. Substitutions always had to be made because of scheduling problems. The elaborate degree and option structure with most of the options not conforming to ABET curricular criteria was unacceptable. In order to get to the stage in which these options were in 2003, the options were continually tweaked, often due to content area course changes. Since these courses were specified explicitly in the degree requirements, changes affecting the degrees had to be approved through the normal, time-consuming channels. The changes occurred so often that both academic advisers and students were confused about which curriculum they were in, what the requirements were, and which catalog year. As additional topics needed to be taught, student credit hour requirements grew to the point where a student could not reasonably complete a degree within four years without summer school. In 1999, the College of Business created an MIS program for which the Department of Computer Science provides a service course in computer programming in Visual Basic and, initially, a COBOL course. Prior to this time, the University never offered an MIS program. Students interested in business applications programming took the B.S. in Applied Computer Science – Information Systems option. Interest grew in new computational areas, e.g. bioinformatics, computer forensics, and computer security. The Department was faced with the prospect of creating additional options in order to meet the potential demand. At Southeast Missouri State, as at most institutions, revising curricula can be a lengthy process taking two or more years. In disciplines like computer science, procedural delays can be especially frustrating and ill serve students. The state and institutional political climate changed to emphasize reducing the number of programs and options. The university was in a state of financial exigency as well in the 2003 – 2004 academic year. University administrators instructed all departments to reduce options, discontinue courses, and reduce credit hour requirements. The Department of Computer Science complied and achieved its goals in 60 days. 3. THE REVISED CURRICULA The Department retained both the B.S. in Computer Science and the B.S. in Applied Computer Science, but without formal options. The lack of options provides the student with more flexibility than previously. Many Departments of Computer Science in institutions like ours offer two degrees – a Computer Science degree (conforming the ACM/IEEE-CS and ABET/CAC requirements) and a Computer Information Systems degree that is strongly business oriented. On occasion, an additional degree emphasizing networking or bioinformatics may be offered. Checking curricula in approximately 75 comparable institutions revealed no other models. In accomplishing its revisions, the Department of Computer Science decided to eschew specifying specific courses in knowledge and application areas that are not otherwise stated explicitly in the ACM/IEEE-CS curricular guidelines or ABET/CAC accreditation requirements. The “agility” of the revised programs consists of providing the student with greater flexibility in choosing knowledge area concentrations, and they allow the Department to offer programs that are more consistent with clear requirements that change much less frequently. Content areas for application are left to the other Departments in the University. 3.1 B.S. in Computer Science Changing the B.S. in Computer Science was relatively straightforward since the curricular guidelines and accreditation standards cover virtually everything that the student of Computer Science needs to take, including the number of credits that must be covered in general education. After the required computer science, mathematics, and natural or physical science requirements are met as well as the remaining general education requirements, there is not much flexibility left in the undergraduate computer science degree. The B.S. in Computer Science degree follows the imperative-first model in CC 2001. C++ is used as the foundation computing language. Students now have a choice of science – biology, chemistry, physics, or environmental science – as long as they take courses science majors take. Students can complete a minor in mathematics or the science they selected by taking one or two additional courses. 3.2 B.S in Applied Computer Science Revising the B.S. in Applied Computer Science was more challenging. Denning (2001, p 22) while discussing curricula models suggests a single interdisciplinary degree program with about half the credits in the core program administered by the degree and the other half are electives administered by the participating departments. The suggested applied computer curriculum follows this concept. The study on common theme for IT degree – in particular, the knowledge clusters of Landry et al. (2003) - is helpful in identifying the core courses in computing curricula. By reducing the knowledge area depth to 2 instead of the present 2.5 in Figure 2 (p 119) of their paper, the common knowledge areas will now have the following courses: programming languages, system development tools, operating system, database, telecommunications and data communications, system development concepts, and methods and project management. These are represented in the ABET/CAC curricula for IS programs. The core courses in the revised curricula should include all these. The series of IS curricula culminating in IS 2002 are presented entirely within the context of instruction in business and are heavily weighted toward the business body of knowledge. The IS curriculum is more suitable for an MIS program in a college of business. Our students are in a college of science and mathematics and their interests cover a broad spectrum of application areas. IS 2002 is too limiting for our purposes. The ABET/CAC requirements for information systems curricula appeared to be supportive of the more scientific and technical aspects of the discipline, are open to other application areas besides business, and are easily integrated with the B.S. in Computer Science. We took phrases like “such as business” in the accreditation criteria to be permissive and to be suggestions or examples rather than limiting the scope of the choice of application area in which students could gain knowledge. The application area in which computing skills are to be applied defined the character of the previous options in the older B.S. in Applied Computer Science degree. Specific courses in application areas were explicitly required in the older options. Incorporating formal requirements in an application area differs from satisfying mathematics requirements. Mathematics requirements are usually specified in accreditation standards and remain relatively fixed. Required courses in application areas are not under the control of the Department of Computer Science and can be easily changed by the Department offering these courses. Any changes will result in the need to rewrite curricula, proceed with the formal approval process, and deal with the proliferation of variations on the same curriculum depending on catalog year. By leaving the content of knowledge area to the Department offering the courses in that subject, the Department of Computer Science acknowledged the expertise of the Department teaching these courses. It also freed the student to become formally advised in that Department offering the minor or second major and allowed the Department of Computer Science to offer degrees that were less likely to change as frequently. Students can choose application areas based on their interests and potential job market. There is no need to create an option in the degrees offered by the Department of Computer Science to assist the student in pursing a new direction. When areas fall out of favor, students’ lack of interest will be reflected in the paucity of students minoring in the application area. These are all student choices. Requiring students to select a minor provides agility and flexibility in academic choices. Academic advisers in the Department of Computer Science need only direct the student to the Department offering the subject in which they want the develop knowledge. For instance, students who are attracted to bioinformatics would be directed to the Biology and Chemistry Departments so that they can study cell and molecular biology and organic chemistry and biochemistry needed. Students interested in using the applied computer science degree for law school should take a minor in political science or philosophy. Those interested in the entertainment industry, such as in computer assisted graphical design or animation, can elect a minors in art, music, theater, dance, or creative writing. The Department of Computer Science can then focus on its core expertise – teaching how to analyze, design, implement, and test computer software; developing expertise in one or more computer programming languages; enabling students to work with and understand more than one operating system; developing judgment on the use of data structures; and learning how to develop algorithms. 3.3 Structure of Degrees The two degrees are presented in Tables 1 and 2. Approximately 70% of their computer science courses are in common including the same course work in C++ programming, data structures, data communications and Web based programming, computer systems, software engineering, and the capstone project. The B.S. in Computer Science requires more mathematics and science (Table 1). The B.S. in Applied Computer Science requires less mathematics, although students are encouraged to take the beginning course in the calculus sequence since successful completion of that course would allow the student to move easily between the two degrees. It requires the declaration of a minor (or second major) in an application area offered elsewhere in the University – any discipline from Accounting to Zoology. Students are declaring minors in subjects like art, botany, music, mass communications, and political science in addition to the more traditional business disciplines or computer networking. The B.S. in Applied Computer Science is attractive to students seeking a second degree since their first degree can be used as the application area. They need only complete the requirements in Computer Science, Information Systems, and mathematics they might have missed in their first degree. Both degrees are designed to be completed in three years with hard work by students who have completed the Associate of Arts degree from a community college and can be completed in two as drafts of articulation agreements indicate. Table 1. B.S. in Computer Science Computer Science Core Courses 37 Hours CS155 Computer Science I 4 CS245 Discrete Structures I 3 CS265 Computer Science II 4 CS280 Computer Systems 3 CS300 Computer Science III 4 CS315 C and the Unix Environment 3 CS331 Applications Programming 3 CS440 Database 3 CS445 Software Engineering I 3 CS480 Data Communications 3 CS495 Senior Seminar 1 CS003 Computer Science Assessment 0 UI450 Capstone Experience 3 Mathematics Core Courses 15 Hours MA140 Analytical Geometry and Calculus I 5 MA145 Analytical Geometry and Calculus II 4 MA223 Probability and Statistics 3 MA345 Linear Algebra 3 Required Computer Science 12 Hours CS345 Discrete Structures II 3 CS350 Data Structures & Algorithms 3 CS380 Operating Systems 3 CS390 Programming Languages 3 Electives in Computer Science3 Hours Select one 3 or 4 credit hour senior level CS3xx or CS4xx courses Required Cognate Discipline Support 12 Hours 12 Hours of Science appropriate for science majors (must have labs in at least two courses) Free Electives 3 Hours General Education Requirements 42 Hours (courses not otherwise specified above) Total: 124 credits for the B.S. in Computer Science Table 2. B.S. in Applied Computer Science Computer Science Core Courses 37 Hours CS155Computer Science I 4 CS245 Discrete Structures I 3 CS265 Computer Science II 4 CS280 Computer Systems 3 CS300 Computer Science III 4 CS315 C and the Unix Environment 3 CS331 Applications Programming 3 CS440 Database 3 CS445 Software Engineering I 3 CS480 Data Communications 3 CS495 Senior Seminar 1 CS003 Computer Science Assessment 0 UI450 Capstone Experience 3 Mathematics Core Courses 6-8 Hours MA140 Analytical Geometry and Calculus I [preferred] 5 (or MA139 Applied Calculus 3) MA223 Probability and Statistics 3 Required Information Systems 9 Hours IS 130 Visual Basic I 3 IS 175 Information Systems I 3 IS 275 Information Systems II 3 Electives in Computer Science or Information Systems 6 Hours Select two 3 or 4 credit hour senior level CS or IS 3xx, 4xx courses Minor in a Department other than Computer Science (typically) 18 Hours Free Electives 1-3 Hours General Education Requirements 45 Hours (courses not otherwise specified above) Total: 124 credits for the B.S. in Applied Computer Science The B.S. in Applied Computer Science as described in Table 2 is strong on software development. Students in the B.S. in Applied Computer Science program take applied courses in Visual Basic (using .NET) and information systems instead of the more theoretical courses required for the B.S. in Computer Science. Revision of the applied computer science degree in the Department of Computer Science was part of a national trend in developing information technology programs. The larger community in computing is currently working on the Strawman version of a comprehensive overview document that summarizes and directs readers to further information on the bodies of knowledge of computer science, computer engineering, information systems, information technology, and software engineering (Computing Curricula 2004, 2004). Computer technology was added after the overview report was planned. Originally, there would have been an overview document and individual reports on the other four areas. The revision that the Department made antedated the posting of this report (1 June 2004) and goes beyond the minimal requirements for coverage of topics in information technology programs. The Strawman report appears to use a narrow definition of information technology limited to programs whose objectives emphasize setting up and managing computer installations. Although this is very important in supporting an enterprise, this definition is too narrow in our opinion. Narrow definitions of information technology (as computer technician activities) and information systems (as a business discipline) exclude many other application areas – such as environmental information systems, laboratory information management systems, and health management systems – in which computing is an important component. In these applications, computing specialists need a good critical understanding of the content of the disciplines; the types, quality, and significance of data acquired and archived; and how this data is used to generate information by database query or as the basis for modeling calculations. In these cases, there is more to master than merely making computers work together securely in the narrow sense of information technology. Business issues are often peripheral to the content and objectives of the applications if they appear at all. Students in the B.S. in Applied Computer Science degree can elect minors offered in the College of Business and thereby gain the body of knowledge needed for work in a business context in the more limited meaning of information systems. There is a minor in computer networking offered in the Department of Industrial Engineering Technology in the School of Polytechnic Studies. A number of students have elected that minor and can acquire the knowledge needed in the narrow definition of information technology. The Applied Computer Science degree that we offer differs in that it additionally serves the needs of students who want to apply computing within the broader definition of information technology. 3.4 Student Response Student response to the new structure has been positive. Once the new degrees were approved, a significant minority of current students switched into the new degrees. Most of them were in the first two years of study which are the same for students in both degrees. This timely switch allowed them to choose a science other than physics in the Computer Science degree and to declare and begin working on a minor in the Applied Computer Science degree. In addition both new degrees require only 124 credits, fewer than the older degrees in some of the options. When the previous Interdisciplinary Applications option in the B.S. in Applied Computer Science debuted in 2001, its presence accelerated an exodus from the Information Systems (business-oriented) option. Many students were lost to the MIS program in the College of Business since it is much less demanding technically and does not emphasize software development. Many of the remaining left the study of business-related topics to study art, music, mass communication, etc. because now they had a choice. Interviews with the students making the switch revealed the fact that many of them were in the previous Information Systems option by default. They were not interested in science, mathematics, or electronics so they studied business applications as the only option left. The new degree structure has the built-in agility to allow them to study business, networking, or anything else that the University offers. 4. COURSES Since the two degrees are closely integrated, courses are designed to meet the higher intellectual demands implicit in the B.S. in Computer Science degree and the curricular guidelines governing that degree. There are elective courses for both the B.S. in Computer Science and the B.S. in Applied Computer Science as well as opportunities for independent study and student research. This, in itself, is not surprising. The Department finds curricular agility in heavy use of the special topics courses in its catalog. 4.1 Computer Science Courses required for a B.S. in Computer Science are identified in the ABET/CAC criteria and CC2001 guidelines. Agility in the program is found in the electives that a student can choose. These were not listed in either table. Two courses are offered regularly on an alternative year basis – Computer Graphics and Artificial Intelligence. Special topics courses under the number CS 483 can be used by students as electives. CS 483 is course number that can have variable titles. It is a special topics course number that is used for short-term instructional experiments. Some of the recent offerings under this number have been Advanced Java, C# and .NET, Human Computer Interface, and Bioinformatics. This course allows students to explore new topics and helps faculty pursue opportunities for teaching new topics on an experimental basis. Courses that look promising can be rewritten for inclusion as regular offerings. There is another special topics course number (CS 455) that is used for topics which will be kept fixed for a few years. It was under this number that the upper division Java course was developed. The Java course was moved to a different number (CS 331), and now the Department is selecting content to be taught under the CS 455 number. 4.2 Applied Computer Science There are only a handful of courses in B.S. in Applied Computer Science that are unique to it. All students in Applied Computer Science need to take the first course in Visual Basic (using Visual Basic .NET) and many take an upper division second course in Visual Basic as one their electives. We will be offering a course on ASP.NET at the upper division as well starting in the Fall 2004 semester under the IS 483 special topics course number that has a variable title like CS 483. The Applied Computer Science students must take a pair of courses called Information Systems I and II. Originally these courses were distinctly business-oriented emphasizing spreadsheets and database tools and applications, descriptive material on business information systems, and more recently instruction on Web page preparation. There was a heavy emphasis on competent use of tools such as Excel and Access. This made sense since at least two-thirds of the students in the previous Applied Computer Science degree were in the business-oriented Information Systems option. The creation of an MIS program in the College of Business in 1999 provided an alternative to many students in the Information Systems track of the Applied Computer Science degree. Other students switched to Applied Computer Science - Interdisciplinary Applications option. Those who remained committed to the previous Applied Computer Science – Information Systems option were mostly juniors and seniors who had already invested much time and effort. They continued on to graduate, but were not replaced by incoming freshmen. The departure of students from the study of business as an application area created an opportunity to examine the Information Systems I and II courses. The use of examples, problems, textbooks, and lab manuals emphasizing business-related problems are no longer very meaningful nor motivational for students. At the same time, the Department of Computer Science was committed to teaching a service course for students in the interdisciplinary Environmental Science program. The annual enrollment of students in the service course was small. It was difficult to find a suitable model for this course since textbooks on scientific computing emphasized programming in high level languages and solving problems in dynamics, circuits, matrix algebra applications, numerical methods, etc. – problems and skill sets that would not be very useful for scientists working in the field as environmental biologists, geologists, or chemists. Database applications and modeling built on databases will be much more important for most natural scientists. The Information Systems I and II sequence has been cast in a new context – that of environmental science. The scientific computing course previously taught was discontinued, and students in Environmental Science are now required to take the first course in the Information Systems sequence and can take the second as an elective. Database (Access) and spreadsheet (Excel) applications are still taught, but the problems are taken from an environmental viewpoint. Although the scope of problems encountered in a first encounter with database applications is limited, working out a database exercise on logging samples taken in the field has the advantage of being more open-ended, more motivational, and more practical than keeping track of the number of refrigerators in a warehouse. Students do spreadsheet modeling of problems based on hydrology or planetary evolution instead of corporate budgets. Students in one of the applied options in the Chemistry major will be joining this class the next time it is offered. Not every student in these courses is from the sciences. Students who are from other areas were not unduly disadvantaged by using examples and problems from environmental science. Simple examples from business were easy for students to comprehend. In American culture, most business examples are part of everyday experience. A little bit of instruction easily demonstrates that logging samples of plants taken in the field is not much different from maintaining an inventory in a business sense or that doing a mass balance involving cubic meters of water in a hydrology exercise does not differ from keeping track of dollars. Since all students at Southeast Missouri State University are required to take two science courses – one each in biology and in a physical science -- as part of the general education requirements, they all have a basis for understanding common examples from environmental science. 5. DISCUSSION There may be a question about whether students in general already have the options that have been formalized in the revised B.S. in Applied Computer Science using the elective choices that they have in their programs of study. In many institutions, students are required to take a structured general education program consisting of courses scattered among a number of disciplines and disallowing study of two or more courses in any single area. Students rarely have the luxury of a large number of free electives wherein they can follow their interests more deeply. Since many institutions, like the authors’, have pressures to lower the total number of required credits in a degree under the constraint of a large, inflexible, and unaccommodating general education program, students will have few free choices unless freedom is built into the design of the degree as it has been in the B.S. in Applied Computer Science. The built-in freedom grants students curricular agility. The rapidly changing ABET/CAC criteria look as if they will suffer from multiple sets of discipline specific criteria. The curricular models described here provide a way of circumventing curricular issues associated with multiple accreditation options and provide a way of giving students a solid education in applied computing that would be applicable to Computer Science, Information Systems, Information Technology, or “other” in ABET’s mix of programs. 6. CONCLUSION The curricular models in Computer Science and Applied Computer Science that we have developed at Southeast Missouri State University provide suitable undergraduate education in computer science, information systems, and information technology – the latter two areas in the broadest definitions of the terms. The curricular model for Applied Computer Science avoids the trap of the proliferation of options based on application area. It is flexible and responsive to the marketplace and to student interests in that it has no prejudice to any potential knowledge area in which computing skills can be applied. Students who have an interest in an unconventional application area can exercise their choice by choosing an appropriate minor or second major. Yet, within this degree, students are able to choose traditional study of business topics or computer networking as well. Not only will their studies prepare them for a wider variety of employment opportunities, they will also have suitable computational skills for pursuing graduate study in the computational aspects of their application area. 7. REFERENCES ABET/CAC, ABET/CAC Evaluation Criteria, http://www.abet.org/criteria_cac.html (accessed 29 May 2004) CAC Summit 2003, ABET Computing Accreditation Summit 2003 (October 2003), http://www.abet.org/images/DeansDay/CACSummit03.pdf (accessed 1 August 2004) CC2001, Final Draft Computing Curriculum 2001, http://www.computer.org/education/cc2001/final/index.htm (accessed 31 May 2004) Denning, P. J., 2001, “The IT Schools Movement,” Communications of the ACM, August (pp 19-22) IS2002, Information Systems 2002, http://192.245.222.212:8009/IS2002Doc/Main_Frame.htm (accessed 1 June 2004) Computing Curricula 2004, Overview Report including A Guide to Undergraduate Degree Programs in Computing, http://www.acm.org/education/040601-Overview-Strawman-Rev4-John-Update.pdf (accessed 15 June 2004) Landry, J. P., J. H. Pardue, H.E. Longenecker, Jr., and D. F. Feinstein, 2003, “ A Common Theme for IT Degree Programs,” Communications of the ACM, November (pp 117-120)