Towards The Balance of Computer Science

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.