Towards The Balance of Computer Science Curriculum Yen-Hung Hu and Jean Muhammad Department of Computer Science, Hampton University, Hampton, Virginia, USA Abstract - As one of the most technology-oriented majors, a computer science curriculum should be able to adjust itself to adopt new emerging technologies to meet the requirements of current and future information technology professionals. However, solely adding new leading edge technology courses into the computer science curriculum may repel or replace other fundamental courses and therefore weaken the capability of students to dynamically adjust and educate themselves to face challenges from the varied global markets of today. How to find a balance between the fundamental core and current industry demands, allowing the maximum benefit for students, is crucial. To provide suitable course plans and materials for students, we, The Department of Computer Science at Hampton University, propose a curriculum revamping plan. This plan adopts the IEEE-CS/ACM Computing Curricula 2001 as its major reference and strives to find the balance between adding current advanced technology courses, which has the flexibility to dynamically change along with current industry trends, and existing fundamental knowledge courses. The IEEE-CS/ACM Computing Curricula 2001 is well adjusted and will be able to nurture computer science majors for this rapidly evolving profession. given the credit hour limitations on the current curriculums. These issues bring about especially hard decisions, at a time when computer science major enrollment has drop dramatically throughout the nation [3]. We agree that computer science curriculum must be revised to accommodate up-to-date technologies. However, we argue whether it has to reduce traditional computer courses in order to adopt extra highly demanded industry-oriented courses. We believe that traditional fundamental courses are the roots of most technologies of computer science. Students who develop a strong understanding of these fundamental courses will be more successful in their engagement in the variant challenges of the ever evolving workplace. For instance, the power of computer security depends on the degree of protecting authentication, authorization, confidentiality, integrity, and availability. Such a degree could be strengthened if students projected the knowledge of enforcing security concerns upon programming languages, operating systems, data structures, algorithms, etc. As another example, a computer game cannot be successful if it takes hours to sort pervious stored data. However, the sorting time could be reduced to seconds utilizing a sorting algorithm with O(N log N) time complexity as taught in existing algorithm courses . 1 Introduction This paper will describe the mechanisms and strategies of how we search for the balance between traditional fundamental courses and highly demanded industryoriented courses. The rest of the paper is organized as follows: Section 2 provides a brief discussion of some related works, Section 3 describes IEEE-CS/ACM Computing Curricula 2001 [4], the subsequent sections, review the curriculum of the computer science program at Hampton University, the mapping of our curriculum with IEEE-CS/ACM Computing Curricula 2001, as well as mechanisms and strategies of adding highly demanded industry-oriented courses into our curriculum, while the last section concludes the paper. Computer science is one of the most rapid evolutionary professions. Over the past several years, the focus have moved from traditional concentrations such as programming languages, operating systems, data structures, algorithms, etc. to more practical, highly demanded, areas such as game programming, information assurance, database, robotics, etc. It is true that this movement heavily complies with industry needs. For instance, in recent years, subjects related to information assurance have become more important due to the increasing concerns of homeland security. Computer game programming, thanks to the fiery game industry, is another hot subject that attracts academia's attention. Courses on this subject have been adopted by many institutes. Some of these institutions have even developed computer game related majors [1] [2]. This change has raised discussions and concerns among many computer science departments. They have reached the crossroad of whether to replace some traditional fundamental courses with these highly demanded courses, 2 Related Works Computer science curriculum is evolving gradually to comply with the change of global information technology environments. In [5], Kumar et al. sparked discussions among educators about computer science curriculum Introductory courses Intermediate courses Advanced courses Imperative first Topic-based approach Objects first Functional first Breadth first Compressed approach Systems-based approach Algorithms first Hardware first Web-based approach Additional courses used to complete the undergraduate program Figure 1. Course levels and implementation strategies innovation. They presented course descriptions, objectives, implementation approaches of distributed systems, game design: education games, machine learning in artificial intelligence, web page to web sites to web services, and computer and network security. Leutenegger [6] and Shultz [7] use 2D game programming and 3D graphics respectively to increase students' interest and performance of learning early programming courses. 3 IEEE-CS/ACM Computing Curricula 2001 In 2001, IEEE-CS and ACM presented the report of the Computing Curricula 2001 project, which draws the curricular guidelines for undergraduate programs in computing. Such a guideline highlights five topics: the CS body of knowledge, the CS undergraduate core, learning objectives, curriculum models, and course description. The details of them are listed as the following: The CS body of knowledge: The report has suggested that appropriate materials of CS undergraduate level would include following areas: o Discrete Structures (DS) o Programming Fundamentals (PF) o Algorithms and Complexity (AL) o Architecture and Organization (AR) o Operating Systems (OS) o Net-Centric Computing (NC) o Programming Languages (PL) o Human-Computer Interaction (HC) o Graphics and Visual Computing (GV) o Intelligent Systems (IS) o Information Management (IM) o Social and Professional Issues (SP) o Software Engineering (SE) o Computational Science and Numerical Methods (CN) There are overall 132 units in the body of knowledge. The CS undergraduate core: 64 units (280 hours) of the body of knowledge are selected as the core material. The report has tried to keep the required components as small as possible. Therefore, it recommends that all fields in the computer science major should cover this core material. Learning objectives: Objectives of each unit are included in this report. Curriculum models: This report has established the distinction among different course levels (i.e., introductory courses, intermediate courses, and advanced courses) and implemented models of each of them (see Figure 1). The details are listed as the following: o Introductory courses: The implementation strategies of this level include the following 6 models: imperative first, objective first, functional first, breadth first, algorithms first, and hardware first. o Intermediate courses: The implementation strategies of this level include the following 4 models: topic-based approach, compressed approach, systems-based approach, and web-based approach. o Advanced courses: The implementation strategies of this level include all additional courses used to complete the undergraduate program. Course description: The report has covered detailed description of 47 courses. 4 CSC/CIS Curriculum The Department of Computer Science (CSC) at Hampton University offers a 4-year program leading to Bachelor of Science degrees in Computer Science (CSC) and Computer Information Systems (CIS). To provide varied opportunities, CSC department offers 68 CSC/CIS undergraduate courses and 25 graduate courses (see Figure 2). Students who graduate with a degree in CSC are highly qualified in: Programming language, Operating systems, Scientific programming, Web-based programming, and Software engineering. CSC (Computer Science) Undergraduate CSC 100 Problem Solving in Computer Science CSC 110 BASIC Programming CSC 120 Introduction to Computers CSC 151 Computer Programming CSC 152 Computer Programming II CSC 191 Introductory COBOL Programming CSC 202 Assembly Language CSC 204 Computer Architecture, Systems and Organization I CSC 205 Computer Architecture, Systems and Organization II CSC 210 C++ Programming Language CSC 213 Introduction to Ada Programming CSC215 Discrete Structures CSC 220 LISP CSC 221 FORTRAN Programming CSC 251 Data Structures and Algorithm Analysis I CSC 252 Data Structures and Algorithm Analysis II CSC 291 Basic Research Topics in Computer Science CSC 300 Co-op Work-Study Experience CSC 301 Operating Systems I CSC 308 Organization of Programming Languages CSC 310 Simulation and Modeling CSC 316 Advanced COBOL Programming CSC 317 Microprocessors CSC 323 Database Management Systems CSC 324 Advanced Ada Programming CSC 325 Data Communications CSC 391 Intermediate Research Topics in Computer Science CSC 395 Special Topics CSC 400 Operating Systems II CSC 402 Computer Architecture CSC 403 Algorithms CSC 404 Software Design and Development I CSC 405 Software Design and Development II CSC 406 Compiler Construction CSC 408 Switching Theory CSC 410 Special Projects CSC 411 Research Problems CSC 421 Applications of Microcomputers CSC 425 Senior Seminar CSC 426 Automata, Computability, and Formal Languages CIS (Computer Information Systems) CIS 310 Information Systems in Organizations (MGT 323) CIS 320/MIS 309 Information Analysis CIS 410/MIS 406 System Design Process CIS 420 Information Systems Project CSC Undergraduate/Graduate CSC 501 Programming CSC 502 Advanced Programming CSC 504 Computer Systems CSC 506 Advanced Programming and Data Structures CSC 507 Architectures and Operating Systems CSC 508 Programming Languages CSC 510 Mathematical Foundations CSC 512 Theoretical Foundations CSC 513 Graphics CSC 519 Topics in Mathematical Foundations CSC 529 Topics in Parallel Programming CSC 539 Topics in Intelligent Systems CSC 542 Object Oriented Programming CSC 544 Software Tools CSC 549 Topics in Software CSC 559 Topics in Theoretical Foundations CSC 561 Compilers and Interpreters CSC 569 Topics in Programming CSC 570 Database Management Systems CSC 571 Concepts of Communication Networks CSC 589 Topics on Computing CSC Graduate CSC 612 Numerical Computation CSC 620 Operating Systems CSC 621 Network Systems and Design CSC 622 Parallel Processing CSC 623 Architecture CSC 629 Topics in Operating Systems CSC 630 Artificial Intelligence CSC 631 Expert Systems CSC 632 Natural Language Processing CSC 639 Topics in Artificial Intelligence CSC 640 Software Engineering Foundations CSC 642 Software Analysis and Testing CSC 649 Topics in Software Engineering CSC 650 Theory of Computation CSC 651 Algorithms and Complexity CSC 659 Topics in Theory of Computation CSC 660 Programming Languages CSC 669 Topics in Programming Languages CSC 681 Research Seminar I CSC 682 Teaching Seminar I CSC 683 Research Seminar II CSC 684 Thesis Research CSC 689 Thesis CSC 700 Thesis Registration CSC 703 Master's Comprehensive Examination Figure 2. CSC/CIS undergraduate and graduate courses 5 Curriculum Mapping Over the past several years, computer science has developed rapidly, to the point that the curriculum adopted in the Department of Computer Science may become obsolete. In 2007 Spring, the Curriculum Development Committee of the Department of Computer Science in Hampton University had been appointed and charged by the department chair to seek an appropriate approach to assess and improve the existing curriculum. The committee studied and examined curricula from several universities and institutions. We have chosen the IEEE-CS/ACM Computer Curricula 2001 as the guideline to assess and improve our CSC/CIS curriculum since: Full documentation support: the IEEE-CS/ACM Computer Curricula 2001 provides specifications, implementations, and rationales of the models it specified, course objectives, course descriptions, etc. Such documentation provides the most support for assessing and improving our curriculum. Dynamical strategies: the IEEE-CS/ACM Computer Curricula 2001 provides dynamic strategies for each course level (i.e., introductory courses, intermediate courses, advanced courses). Such an implementation provides the flexibility for us to dynamically adjust our curriculum to meet the requirements of the current rapidly changing computer industry. Computer science professionals have also evolved rapidly, especially, in the Internet era. Technologies related to the Internet have been developed not only to provide more complicated functionalities but to also become more human oriented. Thanks to the increase of computer power, those enhanced and convenient tools and applications have not slowed down the computers. The change, no matter if evolutionary or revolutionary, has brought us one challenge. Can we keep the pace in the next decade? Several technologies have changed not only their implementation methods but also affected the behavior of the human societies (communities), which use them. These technologies have increased the importance of many areas and become part of our daily life. Such technologies include: IEEE-CS/ACM has proposed courses for "object first approach" in the introductory level, "topic based approach" in the intermediate level, and "advanced courses" in the advanced level. In this section, we would like to explore the courses of IEEE-CS/ACM curricula 2001, which are suitable for the implementation strategy of Hampton University Department of Computer Science CSC/CIS curriculum. 5.2.1 Introductory level The IEEE-CS/ACM object first model focuses on programming, but emphasizes the principles of ObjectOriented programming and design from the beginning. IEEE-CS/ACM has proposed courses as follows: WWW and its applications Networking Game Graphics, Animation, Multimedia Embedded Systems (Handheld, Cell phone, Game box, etc.) Security and Cryptography Human-Computer Interface Case 1: cover three semesters: o CS101o1. Introduction to Object-Oriented Programming o CS102o. Objects and Data Abstraction o CS103o. Algorithms and Data Structures Case 2: cover two semesters: o CS111o. Object-Oriented Programming o CS112o. Object-Oriented Design and Methodology Is our curriculum enough to support students and to conquer this change? Is our curriculum strong enough for the students to face the challenges from these professionals? The answer to these questions is the motivation for conducting this research. The Department of Computer Science adopts the case 2 (offer through two semesters). In our CSC/CIS curriculum, CSC151 (Computer Programming I) and CSC152 (Computer Programming II) courses are implemented in the first semester and second semester of the freshman year. 5.1 Models 5.2.2 Intermediate Level The first year CSC/CIS core courses of the Department of Computer Science, including CSC 151 (and Lab) and CSC 152, focus on nurturing students with fundamental concepts and implementations of the Object-Oriented programming language (i.e., JAVA). Such an implementation proposes to meet the requirements of current computer science professionals. Since these two courses emphasize ObjectOriented concepts, the introductory course of the CSC/CIS curriculum could be categorized into the "object first approach". The sophomore year's CSC/CIS core courses of the Department of Computer Science focus on providing courses directly relating to their subjects and topics. They could be categorized into the "topic based approach". Advanced courses will be offered during the junior and senior year to CSC/CIS major students. Therefore, implementation strategy of the CSC/CIS core courses of the Department of Computer Science can be summarized as: "object first approach" in the introductory level, "topic based approach" in the intermediate level, and "advanced courses" in the advanced level. 5.2 IEEE-CS/ACM Recommended Courses Like most traditional courses, the IEEE-CS/ACM's "topic based approach" includes the following courses: CS210T2. Algorithm Design and Analysis CS220T. Computer Architecture CS225T. Operating Systems CS230T. Net-centric Computing CS260T. Artificial Intelligence CS270T. Databases CS280T. Social and Professional Issues CS290T. Software Development CS490T. Capstone Project 5.2.3 Advanced Level IEEE-CS/ACM use the term "advanced courses" to mean courses whose content is substantially beyond the material of the core. The details of IEEE-CS/ACM advanced courses by area are listed in [4]. We adopt IEEE-CS/ACM courses, which are hot in current computer industry into our curriculum. They are game programming, information 1 2 o: object first approach T: topic based approach IEEE-CS/ACM CSC/CIS Introductory CS111o Object-Oriented Programming CSC112o Object-Oriented Design and Methodology CSC151 Computer Programming I CSC151 Computer Programming II CS210T Algorithm Design CS220T Computer Architecture CS225T Operating Systems CS230T Net-centric Computing CS260T Artificial Intelligence CS270T Databases CS280T Social and Professional Issues CS290T Software Development CSC251/252 Data Structures and Algorithm Analysis I/II CSC204/205 Computer Architecture Systems and Organization I/II CSC301 Operating System I CSC571 Concepts of Communication Networks CSC430 Artificial Intelligence CSC570 Database Management Systems N/A CSC308 Organization of Programming Language, CSC 404/405 Software Design and Development I/II CSC 425 Senior Seminar Intermediate CS490T Capstone Project Advanced CS367 Robotics CS356. Computer Animation CS357. Visualization CS358. Virtual Reality CS355 Advanced Computer Graphics CS338 Programming for the WWW CS312 Cryptography CS374 Data Mining CSC291-01Basic Research Topics - Intro to Robotics CSC291-02 Basic Research Topics - Game Programming CSC391 Intermediate Research Topics - Graphics CSC395-01 Special Topics - Web Technology: JAVA, XML, etc. CSC395-02 Special Topics - Information Security CSC395-03 Special Topics - Data Mining Figure 3. Course mapping security, WWW and it applications, embedded systems, robotics, etc. 5.2.4 Summary We map our CSC/CIS curriculum with IEEE-CS/ACM curricula 2001 in the introductory level and intermediate level. We also adopt advanced courses that are recommended by IEEE-CS/ACM and also currently required by current computer industry into our curriculum. Figure 3 shows the mapping and our adopting. courses are apt to successfully engage in the variant challenges in the workplace. To ensure successful matriculation, pre-requisites of each course are carefully designed. Figure 4 shows the core course pre-requisite scheme for both CSC and CIS concentrations. In the CSC/CIS curriculum, courses numbered below 300 are fundamental. Courses numbered equal or above 300 are advanced. To make sure each course will be up-to-date, aspects of advanced technology are continuously adopted. For instance, security aspects will be added into appropriate core courses to ensure students' understanding of program security, operating system security, network security, database security, etc. 6 Implementation Strategies The Department of Computer Science in Hampton University offers courses that cover both the needs of fundamental study and advanced extension and strives to keep their balance. Core courses and elective courses listed in the CSC/CIS curriculum guarantee that students will obtain profound fundamental knowledge including programming, algorithm, architecture, operating system, database, networking, artificial intelligent, etc. The advanced technology courses related to latest computer industry are offered in the CSC291, CSC391, CSC395, which are either research or special topics courses and will not repel any regular course in the CSC/CIS curriculum. 6.2 Advanced Technology Courses As showed in Figure 3, we have implemented all industryoriented advanced technology courses into the special topic courses of CSC291, CSC391, and CSC395. This strategy provides at least the following two advantages: 6.1 Core Courses Core courses play the most important role of our CSC/CIS curriculum. We believe that traditional fundamental courses are the roots of most technologies of computer science. Students who develop a strong understanding of these Fundamental computer courses are kept and evolved: we have kept and enhanced most fundamental course in our curriculum. As mentioned, this provides our students with profound knowledge to solve issues in the rapidly changing world of technology. Advanced technology courses are continuously upto-dated: These courses themselves can be updated to meet requirements of education and industry. When new generation of technologies blossom, we could easily adopt them. This program flexibility keeps our students always in the forefront of current industry demands. CSC 215 CSC 510 CSC 151 CSC 151 CSC 152 CSC 152 CSC 251 CSC 204 CSC 252 CSC 205 CSC 215 CSC 301 CSC 308 CSC 251 CSC 204 CSC 252 CSC 205 CSC 301 CSC 308 CSC 570 CSC 571 CSC 404 Graduating Senior CSC 404 Graduating Senior CSC 405 CSC 425 CSC 405 CSC 425 Figure 4. CSC (Left) and CIS (Right) core course pre- requisite scheme 7 Conclusions The project objective, to study and investigate the merit of improving our CSC/CIS curriculum to ensure an appropriate balance between fundamental knowledge and advanced technology courses, was obtained. To achieve this goal, we depict implementation strategies on CSC/CIS core courses and advanced technology courses. To guarantee that our attempt does not derail the mainstream of computer education and industry, we choose IEEE-CS/ACM Curricula 2001 as our guideline. By dynamically adjusting our perspective, we believe that, our CSC/CIS students gain the capacity of challenging this quick evolving profession. 8 References [1] RENNELAER POLYTECHNIC INSTITUTE. Rensselaer announces new major in games and simulation arts & science. Press release, March 2007. [2] SOUTHERN METHODIST UNIVERSITY. The guildhall: Teaching the art and science of digital game development. http://www.smu.edu/legacy/acadeimcs/TheGuildhall.htm [3] Karl Schoenberger, "U.S. students shun computer sciences: offshoring makes tech career look risky", San Jose Mercury News, March 24, 2004. http://www.cra.org/main/cra.pubs.html [4] Computing Curricula 2001: Final Report, The Joint Task Force on Computing Curricula IEEE-CS/ACM, December 15, 2001 [5] Amruth N. Kumar, Mathhew Hass, Jack Beidler, Yelena Kushleyeva, Bhagyavati, Frank Lee, Homma Farian, Ingrid Russell, "Innovation in Undergraduate Computer Science Education - Panel Discussion", December 2005, Journal of Computing Sciences in Colleges, Volume 21 Issue 2, page 138 - 142. [6] Scott T. Leutenegger, "A CS1 to CS2 Bridge Class Using 2D Game Programming", May 2006, Journal of Computing Sciences in Colleges, Volume 21 Issue 5, page 76 - 83. [7] Gerald Shultz, "Integrating 3D Graphics Into Early CS Courses", February 2006, Journal of Computing Sciences in Colleges, Volume 21 Issue 3, page 169 - 178.
© Copyright 2024 Paperzz