...

I. Executive Summary

by user

on
Category: Documents
26

views

Report

Comments

Transcript

I. Executive Summary
I. Executive Summary
The James Madison University Computer Science department was established in 1992 and has
made substantial contributions to the university ever since. The program offers both bachelors
and masters degrees in Computer Science. The undergraduate Bachelor of Science degree in
Computer Science adheres closely to ACM and ABET recommendations. The faculty is qualified
and highly dedicated, and facilities are adequate. Assessment data indicates that program
outcomes are good. Nevertheless, efforts are continually underway to improve the curriculum,
pedagogy, and facilities. Of particular concern is that recent growth in enrollment (in accord with
nation-wide trends) has filled classes to capacity. If enrollment continues to grow, as it is
expected to do, then it will be difficult to staff courses and find classroom and laboratory space
for the number of classes required to met the need.
CS Self-Study
1
II. Computer Science Department Narrative
A. History and Mission
A-1 History of the Computer Science Department
At some point, a decision was made to start teaching computer science courses at James Madison
University (JMU). It is not clear when that decision was made, although the principal causative
factor was probably the result of an initiative of some members of the Department of
Mathematics. Around 1968, there was one academic computer on campus, an IBM 1130. This
computer was physically located in the Department of Mathematics. At that time there were only
two persons on campus who knew about its operation, and instruction in the programming and
operation of this computer was done on an informal basis. During the fall semester of 1969, one
formal 3-credit course, Digital Computer Programming, was taught using the programming
language FORTRAN IV. Around this same time, four members of the Mathematics faculty made
an informal commitment to learn how to program. In 1972, two new courses were added to the
curriculum, and in 1975, a one-credit BASIC service course was added, and groundwork was
initiated to begin a more rigorous program.
During the 1976 and 1977 academic years, an IBM assembly language course was incorporated
into the regular offerings of the Mathematics Department along with courses in combinatorics,
the design and analysis of algorithms, and numerical methods. These resulted in heavy use of the
computer. In addition, plans were in the works for offering some other courses in computer
science. During 1978, data structures, and theory of programming languages were added to the
curriculum. Also in 1978 the name of the Mathematics Department was officially changed to the
Department of Mathematics and Computer Science.
During these initial years any new major had to be approved by the central offices of the
Commonwealth of Virginia. As a result, it was very hard to get a new major approved. However,
JMU could approve minor programs internally. Taking advantage of its authority to do this, JMU
in 1979 started offering a new minor in Computer Science. The intent of this new minor was not
only to provide to JMU students a new opportunity for study, but also to demonstrate to the
Commonwealth of Virginia that JMU had both the demand and the capability to offer a major in
Computer Science. In working with students interested in the minor, the faculty determined that
several of the students were in a position to satisfy the requirements for the minor almost
immediately. This approach turned out to be successful, because students with computer skills
were in great demand in industry at the time.
Computer Science Major—Charles W. Reynolds became the first faculty member with a Ph.D.
in Computer Science when he joined the department in 1980. The second professor with a Ph.D.
in Computer Science was John Fairfield, who joined the department in 1981. Those among the
mathematics faculty who were already working in the Computer Science program continued to
do so after Drs. Reynolds and Fairfield joined the department. Finally, during 1981, the
Commonwealth granted the long-awaited approval for a major in Computer Science. The
original degree program required a rigorous mixture of Computer Science, Mathematics, and
Physics. The new major had a few graduates almost immediately. The first graduates of this new
CS Self-Study
2
major were already in high demand, and the number of students enrolled as Computer Science
majors began growing rapidly.
By the beginning of 1984, the growth of the Computer Science program resulted in the need for a
Program Coordinator. Two additional dedicated Computer Science positions were also created
and filled that year, but these new hires did not stay in the department. Two additional faculty
with a Ph.D. in Computer Science were hired, one during the fall of 1985 (J. Archer Harris) and
the other in 1988 (Ramon A. Mata-Toledo). Several faculty members whose primary background
was Mathematics continued contributing to the Computer Science program, including some
whose entire academic effort was in Computer Science. JMU graduates in Computer Science at
this stage of the program had many exciting career possibilities.
CS Graduate Program—The Mathematics and Computer Science department began offering
graduate courses in Computer Science as part of the MS program in Mathematics in 1985. A
graduate program in Computer Science was approved that year, and the MS program in
Computer Science was offered for the first time in 1986. The program required 30 credit hours
with a core of 18 hours consisting of courses in programming languages, operating systems,
database systems, and software engineering, and electives in complexity theory, numerical
methods, and topics in computer science. The program was unchanged until 1992, when the core
was changed to 12 credit hours in operating systems, applied complexity theory, programming
languages, and database systems; the remaining 18 hours were electives chosen from these areas
as well as software engineering, numerical analysis, or a variety of other topics like artificial
intelligence and natural language processing.
Computer Science Department—Toward the end of the 1980s, the university took under
consideration the possibility of moving computer science into a department of its own. In August
1989, JMU President Ronald Carrier appointed a Greater University Commission under Donald
D. Litten to develop a new academic program charged with producing a technologically
proficient workforce. The commission proposed major changes to the curriculum, and
recommended the establishment of a new college. A later blue-ribbon panel was appointed,
headed by Dr. John H. Gibbons. This panel reviewed the proposals that had been made by the
Greater University Commission, and approved the creation of the new college, to be called the
College of Applied Sciences and Technology. This college, subsequently renamed the College of
Integrated Science and Technology (CISAT), embodied the spirit as well as the specifics of the
reforms then being cited as needed in higher education. The blue-ribbon panel presented its final
report in January 1990. Among several other recommendations and suggestions, the panel
recommended that JMU proceed with preparations for the new college, and also urged the
Commonwealth to commit to its creation. In January of 1992, the Commonwealth did commit to
the creation of the new college, and a pilot program was begun. At that point, the college
included two departments: a new, innovative Integrated Science and Technology program, and
also the Department of Computer science. Thus, Computer Science was split off from the
Department of Mathematics, and contributed to the new college an established degree program at
the University. Of the two new departments, only the CS department was staffed at that time. Dr.
Charles W. Reynolds served as its first Academic Unit Head. At this time another Ph.D. in
CS Self-Study
3
Computer Science, Chris Fox, was hired. For the first two years after the departments separated,
many Mathematics faculty members continued teaching Computer Science courses, but by
January 1995, mathematics faculty members were contributing only on a limited part-time basis.
The Computer Science program continued to grow rapidly after it had become a separate
department and moved into the College of Integrated Science and Technology. By 1993, there
were over 200 computer science majors, and another Ph.D. in Computer Science was hired,
Alade Tokuta. An effort was also undertaken to closely integrate Computer Science with the new
ISAT department, and to revise its curriculum using many of the same principles that were
involved in forming the ISAT major.
Rapid Growth—In the mid-1990s there was considerable interest in the new idea of distance
education provided over the Internet, as well as concern with weak enrollment in the Computer
Science graduate program. These considerations led the Computer Science department to
establish a new graduate program in 1997. The new program had two components: an on-campus
program in general Computer Science and a distance education program in Information Security.
The on-campus program had core courses in operating systems, database system, and software
development. Each core course was the first in a series of three courses leading to certificates in
networks and data communications, database management systems, and software engineering.
The certificate programs were intended to attract enrollees from the community who might then
complete the entire MS program. The information security distance education program was
taught mainly over the Internet (and eventually entirely so). It consisted of the same 9-credit core
as the on-campus program, plus 21 credits in required courses in information security. The
distance information security program grew rapidly, thanks to a concerted recruiting effort,
eventually enrolling cohorts as high as 100 students, and received accolades and funding from
national security agencies. The on-campus program was less successful in growing its
enrollment.
Rapid increases in graduate enrollment were matched by huge increases in undergraduate
enrollment, which resulted in the need to hire many faculty in the period 1997-2004. The faculty
hired in this period were John Cordani in 1997, Charles Abzug, Hossain Heydari, and Bob
Tucker in 1998, Mohammed Eltoweissy and John McDermott in 1999, Elizabeth Adams and
David Bernstein in 2000, Taz Daughtrey, Ralph Grove, Malcolm Lane, and Sam Redwine in
2001, Mohammed Aboutabl, Ruben Prieto-Diaz, Michael Norton, Brett Tjaden and Xunhua
(Steve) Wang in 2002, and Nancy Harris and Florian Buchholz in 2004. There were also several
moves made within the university and within the department as well as several departures during
this period. These changes included the appointment of Dr. Reynolds as interim dean of the
College of Integrated Science and Technology in 1998-1999, with Dr. Fox acting as interim CS
Academic Unit Head in his absence. Dr. Malcolm Lane was appointed Academic Unit Head in
August 2000. Four faculty left the university during this period: John Fairfield resigned to devote
his full energies to founding Rosetta Stone. Mark Lattanzi also left to help found a private
software company. John Cordani left to take a higher-paying position in private industry. Charles
Reynolds took a sabbatical at the U.S. Military Academy during the 2001-2002 academic year,
and subsequently was offered and accepted a permanent position there.The Computer Science
CS Self-Study
4
faculty in 2004 numbered 18; including joint appointment with the ISAT program, there were 21.
The department has never been larger than that.
Enrollment Declines—After 2001, enrollments in undergraduate Computer Science dropped
nationwide and at JMU as well. The number of CS majors went from over 450 in 2000 to under
200 in 2005; enrollments have grown slowly since then, and we now have just under 330 majors.
Also in 2001 a decision was made to limit the size of the cohorts in the distance education
program because extremely large cohorts were simply unmanageable. Over time, enrollment in
the distance program also declined as more universities established programs in Information
Security, reducing the pool of potential students.
Enrollment in the on-campus graduate program remained low and in 2003 a new curriculum was
launched in Secure Software Engineering to try to improve enrollment. This effort failed to
increase on-campus graduate enrollments significantly and in 2006 a slightly modified program
in Secure Systems was launched. This effort also failed to increase enrollment.
This long decline in both graduate and undergraduate CS enrollment meant that few faculty were
hired to replace faculty who left. John McDermott left in 2002 to return to the Naval Research
Lab, Mohamed Eltoweissy left in 2005 for Virginia Tech, Bob Tucker left in 2007 for Liberty
University, Ruben Prieto-Diaz left in 2008 for a Spanish university, Charles Abzug, Elizabeth
Adams, and Sam Redwine retired in 2009, Malcolm Lane retired in 2010, and Arch Harris retired
in 2011.
Current Status—The spate of retirements, combined with gradually rising undergraduate
enrollments, finally made it necessary to hire several faculty members and a new Academic Unit
Head. Sharon Simmons became the CS Academic Unit Head in 2010. In 2011 Michael
Kirkpatrick, Christopher Mayfield, and Nathan Sprague were hired. The department now has 16
faculty; when ISAT joint appointment are included, there are 19 faculty.
In yet another effort to improve on-campus graduate enrollments, the department decided to
convert the Secure Systems program into a Digital Forensics Program in 2009, and this
conversion has been occurring over the last several years. It is not yet clear whether it will have
the desired affect.
The addition of three new faculty members starting fall 2011 provides the department with an
opportunity to revisit its undergraduate curriculum. The department is also considering whether it
should seek ABET accreditation; if so, this will have considerable curricular ramifications.
Finally, JMU is in the midst of altering the structure of its colleges, and Computer Science will
likely be forming a new college in conjunction with Integrated Science and Technology and the
School of Engineering. This may have consequences for the Computer Science curriculum and
the structure of the department.
A-2 Mission Statement
The department has three mission statements: one for the undergraduate program and two for the
graduate programs.
CS Self-Study
5
The undergraduate mission statement is the following.
To be an intellectual community that continually explores the broad field of computing,
applies this knowledge to solve problems in a variety of domains, and engages with the
profession and society at large.
This mission was developed by Computer Science faculty at a retreat in August of 2011,
replacing the mission statement that had been in place since 1999.
The on-campus (Secure Software Systems) graduate program mission statement is the following.
The graduate program in Computer Science prepares highly skilled professionals with
advanced expertise in creating and maintaining secure and reliable computing systems.
This mission statement was developed by the Computer Science faculty in 2005.
The mission statement for the online (Information Security) graduate program mission statement
is the following:
We are committed to providing a premier information security education that equips
graduates with the knowledge and skills necessary to design, implement, and maintain secure
modern information infrastructures and systems.
This mission statement was developed by the Computer Science faculty in 2005.
A-3 Support of College and University Statements
University and College Mission Statements—The JMU mission statement is the following.
We are a community committed to preparing students to be educated and enlightened
citizens who lead productive and meaningful lives.
The mission statement of the College of Integrated Science and Technology is the following.
To educate students in the areas of the applied sciences, health, technology and human
services, as well as to prepare them to enter professions or to undertake advanced study.
The CS Department’s undergraduate mission to be an intellectual community accords with the
JMU mission to be a community, except that the CS mission views students as part of our
community who, by joining the faculty in exploring Computer Science, solving problems, and
engaging the profession, become educated in Computing and prepared for advanced study or
careers in the Computer Science. The CS mission thus encompasses the university mission with
a broader view of the community. It also includes the college mission, regarding education in the
applied science of computing an outcome of exploring the field, solving problems, and engaging
the profession.
The CS Department’s graduate mission statements share an emphasis on preparing students to
implement and maintain secure computing infrastructure; this supports the College’s mission to
educate students in applied science and technology and the University’s mission to prepare
educated and enlightened citizens. The CS Department’s graduate mission to prepare highly
skilled individuals ready for professionals employment supports the College’s mission to prepare
CS Self-Study
6
students to enter professions and the University’s mission to prepare citizens to lead productive
and meaningful lives.
A-4 Students Served by Computer Science
The data below shows the number of students served by the department in the last decade along
with the number of faculty and the ratio between the number of major and graduate students and
the number of faculty in the department.
Note: The counts of minors between 2003-2004 and 2006-2007 is estimated in the table below
based in departmental records.
00-01 01-02 02-03 03-04
04-05 05-06 06-07 07-08 08-09 09-10 10-11
11-12
Majors
503
412
322
256
191
189
242
218
234
257
261
303
Minors
127
62
51
30
25
19
24
28
27
34
43
21
SSE
47
32
35
18
18
18
21
22
22
25
24
23
InfoSec
87
118
87
87
82
71
66
62
56
50
56
60
Total
637
562
444
361
291
278
329
302
312
332
341
386
Professors
14
16
16
17
18
18
18
18
17
14
14
16
Ratio
45.5
35.1
27.8
21.2
16.2
15.4
18.3
16.8
18.4
23.7
24.4
24.1
In this table, minors are not included in the student-faculty ration. In general, the overall decrease
in enrollment since 2000 has greatly reduced our student-faculty ratio; this ratio has increased
again in the last four years and now is at an optimal level. In other words, at this student-faculty
ration, faculty are teaching a full complement of courses that are at or near their maximum sizes,
and our classrooms and laboratories are fully utilized. Further enrollment increases that push this
ratio much higher will make class sizes or class loads too high, and leave the department short of
class room and laboratory space.
A-5 Computer Science Department Staffing
The CS department has three secretaries and one computer support technician. Gwen Good is the
departmental office manage and the Academic Unit Head’s administrative assistant. She handles
all budgets and supports the Academic Unit Head. Carole Ritchie supports the undergraduate
program. Kathy Laycock supports the graduate programs. Livia Griffith takes care of the
department’s labs and Linux servers. Finally, a part-time student assistant is hired every semester
to assist the secretaries. These resources are adequate to departmental needs.
The graduate program has six graduate assistant positions. Faculty request assistants to help with
courses or research at the start of each semester. No graduate students ever teach classes on their
own. The on-campus graduate program often has trouble recruiting students, and faculty could
probably make use of more graduate assistants, so there is justification to increase the number of
graduate assistantships.
As noted, a student assistant is hired to support the secretaries. In addition, between 15 and 20
student lab assistants are hired to help students in the evenings with their programming projects.
CS Self-Study
7
These undergraduate student assistants are a great help to students in the introductory
programming sequence and we believe are essential in retaining students in these courses and
hence in the major. Student assistants are paid from the department’s operating budget rather
than from the personnel budget, so these positions are vulnerable to general budget cuts.
Furthermore, more student assistants will be needed if enrollment continues to increase.
Consequently there is a need for stable and probably increasing funding for these positions.
A-6 Technological Support
The CS department must have computer laboratories sufficient to support our courses that have
laboratory components, our distance program in InfoSec, research, and extra-curricular activities.
Teaching Labs: Currently the department has a Software Engineering Lab with 30 Macs, a
Program Development Lab with 30 Linux machines, a Systems Development Lab with 24
seats for networking and operating systems work, and several Linux machines accessible
over the web. The Software Engineering and Program Development labs, along with support
provided by the servers, are sufficient to support our general lab classes, but if enrollment
increases, we will not have enough seats, particularly for our introductory courses. The
Systems Development Lab has outdated machines and is not able to support the needs of
courses in operating systems and networking. Faculty interested in pursuing course
development in other areas (such as robotics or embedded programming) have no space to do
this work and no budget to acquire equipment.
InfoSec program: The InfoSec program needs servers to support the program web site,
which provides the virtual campus for the program. Currently the servers themselves are
adequate to the needs of the program, but adequate network connectivity, security, and file
storage are lacking. Another area of need is backup technology.
Research: The department has a Computer Forensics lab to support research in this area.
There is no budget available for purchasing equipment to support research in other areas.
CyberDefense: The department currently has one 24 seat CyberDefense lab to support
classes and the CyberDefense club. This resource is adequate to needs in this area.
A problem that affects all our labs is an inability on the part of the JMU administration and
Information Technology organization to recognize the need for Computer Science to have labs
different from general purpose labs, and the lack of expertise and ability to support nonWindows environments.
A-7 Non-Personnel Support
The department’s operating budget has been virtually unchanged for 20 years. Fortunately, the
department has an arrangement whereby it receives a fraction of the tuition money from the
InfoSec program, which has provided funding for travel, equipment, and so forth for which the
operating budget has not been sufficient.
After the last APR, a major effort was begun by Malcolm Lane to obtain scholarship funding.
This effort has been quite successful, with several individuals and companies donating money
CS Self-Study
8
supporting about a dozen modest scholarships. Furthermore, JMU has in recent years provided
more scholarship money to departments. In 2011 Computer Science undergraduate received a
total of $27,700 in scholarships.
A-8 Adequacy of Facilities
The CS department is housed in a modern and well-maintained building (ISAT/CS), and it
controls most of the space on the second floor, which houses offices, support spaces (such as a
mailroom and workroom), two classrooms, and three laboratories. We also have two labs on the
first floor of ISAT/CS, and we can schedule classes into rooms in the Health and Human
Services (HHS) building.
Currently all faculty have private offices. All classrooms are adequate. We have space for
existing laboratories (as noted above), but there is no space available to support new initiatives in
teaching or research, such as a space for a robotics or embedded systems labs or for new research
projects. Furthermore, enrollment growth in the last three years has been 5%, 8.7%, and 9.2%. If
enrollment continues to increase (and especially if the increase continues to accelerate), then
classroom and teaching lab facilities will not be adequate in two to three years. Faculty office
space will not be adequate if we hire more than one additional faculty member.
A-9 Recommendation for Meeting Future Needs
Predicting enrollment in Computer Science is very difficult, as witnessed by the unexpected
crash in enrollment after 2000, and the much anticipated but tardy recovery that finally began
three years ago. However, the CS undergraduate program is growing at a rate of about eight
percent per year. We do not anticipate significant growth in the CS graduate programs, but there
is still need for better support for the infrastructure undergirding the InfoSec program.
The CS department is currently at capacity with respect to class size, office space, and general
labs, and it lacks space and equipment for special purpose labs. If the undergraduate program
continues to grow, as seems likely, the department will need to offer more sections of classes
within two to three years, which will require hiring more faculty (who will need office space),
and opening another general lab (which will require space and equipment).
In light of this analysis, the CS department makes the following recommendations:
• Upgrade the network connectivity, security, storage capacity, and backup mechanisms for
the Information Security servers.
• Purchase new equipment for the Systems Development Lab sufficient to the needs of
courses in operating systems and networking.
• Allocate space and budget necessary to equip one small laboratory used for project courses
and Honors projects.
• Allocate space and budget for equipment, perhaps in partnership with other departments,
to support new program development and research. There is currently interest in a robotics
program, for example, which needs this kind of support.
CS Self-Study
9
• Plan for new faculty offices and another general purpose CS lab to meet anticipated
growth.
• Plan to replace equipment in the existing general purpose labs in the next three years as
equipment ages and becomes obsolete.
• Plan for more classroom space to be used by CS in the ISAT/CS/HHS building complex.
• Work to help the administration and university IT organization understand that Computer
Science has need of specialized laboratories, and encourage IT to develop expertise in
supporting non-Windows environments.
The upcoming move of several departments out of HHS provides a rare opportunity for CS to
acquire more space that could be used to support research and enrollment growth. However, the
university needs to recognize that CS needs more space, and money must be allocated to
refurbish the space.
III. Computer Science Undergraduate Program Narrative
A. Undergraduate Program History and Mission
A-1 History of the Computer Science Major and Minor
The first Computer Science course at JMU was offered fall semester of 1969 by faculty of the
Mathematics department: Digital Computer Programming in FORTRAN IV for three credits. In
1972, two new courses were added to the Mathematics curriculum, a one-credit FORTRAN
service course and a special-topics course in IBM assembly language. In 1975, a one-credit
BASIC service course was added, and groundwork was initiated to begin a more rigorous
program.
During the 1976 academic year, the IBM assembly language course was incorporated into the
regular offerings of the Mathematics Department. Some additional courses in combinatorics and
the design and analysis of algorithms were also offered that year. In 1977, a courses in numerical
methods was introduced. During 1978, two new courses were added to the curriculum: Data
Structures, and Theory of Programming Languages. Also, the name of the department was
changed to the Mathematics and Computer Science.
Minor in Computer Science—In 1979 the department of Mathematics and Computer Science
started offering a minor in Computer Science. The intent of this new minor was not only to
provide to JMU students a new opportunity for study, but also to demonstrate to the
Commonwealth of Virginia that JMU had both the demand and the capability to offer a major in
Computer Science. In working with students interested in the minor, the faculty determined that
several of the students were in a position to satisfy the requirements for the minor almost
immediately. This approach turned out to be successful, because students with computer skills
were in great demand in industry at the time.
The courses originally required for the CS minor were Digital Computer Programming,
Assembly Language, Data Structures, and three additional courses chosen from Theory of
Programming Languages, Design and Analysis of Algorithms, Combinatorics, and COBOL. In
CS Self-Study
10
addition, one of the elective requirements could be satisfied by a course in numerical
mathematics. The COBOL course was taught by faculty from the Business School; other courses
were taught by faculty of the Department of Mathematics and Computer Science.
Major in Computer Science—In 1981 the Commonwealth granted the long-awaited approval
for a major in Computer Science. The original degree program required a rigorous mixture of
Computer Science, Mathematics, and Physics. The new major had a few graduates almost
immediately. At this time course requirements for the program were: Computer Programming,
Assembly Language, Data Structures, Computer Systems and Architecture, Design and Analysis
of Algorithms, Theory of Programming Languages, and two Computer science electives chosen
from Numerical Methods, Combinatorics, or Numerical Analysis. Required cognate subjects for
the CS degree were Calculus I-III, Linear Algebra, Probability, Differential Equations, Abstract
Algebra, and Electronic Instrumentation. The first graduates this new major were already in high
demand, and the number of students enrolled as Computer Science majors began growing
rapidly.
By 1988, the major in Computer Science required Computer Programming, Advanced
Programming with Data Structures, Discrete Structures, Computer Organization and Assembly
Language, Computer Systems and Architecture I-II, Design and Analysis of Algorithms, Theory
of Programming Languages, and File Structures, plus three courses chosen from Artificial
Intelligence, Numerical Analysis, Combinatorics and Graph Theory, Implementation of
Programming Languages, Automata Theory, and Database Design. Required cognate subjects
were: Calculus I-III, Linear Algebra, Probability and Statistics, Mechanics, Electricity and
Magnetism, Digital Electronics, and Technical Writing. JMU graduates in Computer Science at
this stage of the program had many exciting career possibilities.
In the summer of 1992 the Mathematics and Computer Science departments split and Computer
Science became a department on its own in the new College of Integrated Science and
Technology. The Computer Science degree program at the time of the split remained the same,
except that the Physics courses were now optional for Computer Science majors. For the first
two years after the departments separated, many Mathematics faculty members continued
teaching Computer Science courses, but by January 1995, mathematics faculty members were
contributing only on a limited part-time basis.
Concentrations—When CS became part of CISAT in 1992 an effort was undertaken to closely
integrate the Computer Science curriculum with that of the new department of Integrated Science
and Technology. The result of these efforts was a revised curriculum, available in 1996, featuring
two concentrations and several innovative courses. Both of the new concentrations required
courses in Advanced Programming, Software Engineering, Computer Architecture, Operating
Systems, Technical Writing, Statistics, and Calculus. One concentration, called traditional,
resembled the previous major, with additional required courses in Discrete Mathematics,
Analysis of Algorithms, Programming Languages, Linear Algebra, and a laboratory science. The
other concentration, called information technology, required courses in Intelligent Systems,
Multimedia Systems, Software Design, and Database Systems. Finally, the Computer Science
mathematics requirements could be satisfied with ISAT courses.
CS Self-Study
11
Another concentration in networks and data communications was added in 1997. The new
concentration required courses in Discrete Mathematics, Operating Systems, Network
Communications, Telecommunications, and Telecommunications Policy. The new course in
Network Communications, which was developed specifically for the networks and data
communications concentration, also replaced Operating Systems as a required course for the
information technology concentration.
The three concentrations in Computer Science, which offered students many paths through the
major, were very successful and helped increase enrollment in Computer Science. But there was
growing concern that students in the information technology concentration were not receiving
sufficient grounding in fundamental computer science. A point of even greater concern was
inflexibility in the curriculum: so many courses had to be offered to satisfy the needs of students
in all three concentrations that there was little chance to offer special-topics courses, and no
ability to offer new concentrations, which many faculty were interested in doing. Consequently it
was decided to abandon the multiple-concentration model in favor of a more traditional
computer science major with small (two- or three-course) concentrations offered on an ad-hoc
basis as the interests of students and faculty dictated. The new curriculum went into effect in the
Fall of 2002, and consisted of required courses in Advanced Programming, Algorithms and Data
Structures, Discrete Mathematics, Software Engineering, Computer Organization, Programming
Languages, Operating Systems, Local Area Networks, Database Management Systems,
Technical Writing, Statistics, and two semesters of Calculus.
Enrollment Management—Another concern that became acute in 1999 was the combination of
the number and the quality of students in the major. This concern led to the establishment in
1999 of an enrollment management plan. Under this plan, a student first had to complete his/her
introductory and advanced programming courses, and then apply for admission to the major. A
student with good grades in the early courses was automatically admitted, while students with
lower grades were individually evaluated by a faculty committee, and admitted based both on
individual merit and on the availability of departmental resources. This plan succeeded in
reducing the formerly bloated enrollment, as well as improving the average quality of enrolled
students. But by 2001 the downturn in the economy was beginning to depress enrollments in
Computer Science nationwide, so the enrollment management system became a way to maintain
high quality in the program, rather than a way to limit the enrollment. By 2008 the overhead of
administering the enrollment management system was no longer tenable, so it was eliminated in
favor of progression standards in the form of grades of C or better in the first two programming
courses as prerequisites for continuing to advanced courses in the major.
A Stable Curriculum—Changes to the Computer Science major since 2002 have been modest.
In 2004 Discrete Structures was increased from one semester to two while the Calculus
requirement was reduced from two semesters to one, thus leaving the total mathematics
requirement unchanged while shifting the balance more towards computer science-specific
content. There have been several changes in elective courses, including new courses in Computer
Professionalism and Ethics, Web-Based Information Systems, Interaction Design, Database
Administration, Information Security, Cyber Defense, and Topics in Information Security. The
latter three courses are part of an Information Security Certificate Program offered in conjunction
CS Self-Study
12
with the NSA, and developed in response to suggestions from our last APR in 2004 that we
leverage the department’s expertise in Information Security to offer more undergraduate
opportunities in this area.
Changes in the CS minor over the years have also been modest. The original CS minor required
three introductory courses followed by a choice of three advanced courses. The current CS minor
requires exactly the same thing: three introductory courses (Algorithm Development and
Advanced Computer Programming and either Software Engineering or Computer Organization),
and then three advanced courses of the student’s choice.
Computer Science has also played a leading role in the interdisciplinary minor in
Telecommunications, introduced in 1997. This minor includes courses from Computer Science,
Integrated Science and Technology, the School of Media Arts and Design, and Computer
Information Systems. It initially required one programming course, and courses in
Telecommunications and Information Processing, Telecommunications Policy and Regulation,
Local Area Networks, Internetworking, and Network Application Development. This minor was
revamped in 2010. It now requires one programming course; Telecommunications and
Information Processing; TCP/IP Networks; Internetworking; one of either Telecommunications
Policy and Regulation or Telecom in the Public Interest; and one of either Network and
Applications Development, Network Analysis and Design, Wireless Networking, Security and
Forensics, or Cyber Defense.
A-2 Current Mission Statement
The undergraduate mission statement is the following.
To be an intellectual community that continually explores the broad field of computing,
applies this knowledge to solve problems in a variety of domains, and engages with the
profession and society at large.
A-3 Mission Statement Development
This mission was developed by Computer Science faculty at a retreat in August 2011. It replaces
a mission statement first developed in 1999.
A-4 Support of College and University Statements
University and College Mission Statements—The JMU mission statement is the following.
We are a community committed to preparing students to be educated and enlightened
citizens who lead productive and meaningful lives.
The mission statement of the College of Integrated Science and Technology is the following.
To educate students in the areas of the applied sciences, health, technology and human
services, as well as to prepare them to enter professions or to undertake advanced study.
The undergraduate program mission accords with the University mission in stating that the
department will be a community. Presumably, members of a community exploring computing
would become educated and. through engagement with the profession and community, would
CS Self-Study
13
become enlightened citizens leading productive and meaningful lives. Also, computing is an
applied science, so exploring computing provides education in an applied science and prepares
students to enter professions and undertake advanced study, as stated in the College mission
statement.
B. Program Goals and Objectives
B-1 Program Objectives and Mission
The programmatic objectives are:
• Programming: Students can develop computer programs that solve specific problems using
an object oriented programming language.
• Software Engineering: Students can explain the software development lifecycle, software
project management, development tools and methods, software quality assurance and the
challenges of producing quality software products.
• Problem Solving Methods: Students can apply one or more problem solving methods in
defining solution requirements and in designing, coding, testing, and documenting a
software solution.
• Data structures and Algorithms: Students understand fundamental data structures and
algorithms and can use them in designing and developing programs. (“Understanding” is
demonstrated by applying relevant principles to specific problems or situations.)
• Mathematical Skills: Students can apply mathematical principles of discrete mathematics,
statistics and calculus in defining or understanding computer software.
• Operating Systems: Students can explain the concepts and principles of multiple user
operating systems.
• Computer Organization: Students understand the basic concepts of computer organization
and hardware operation. (“Understanding” is demonstrated by applying relevant principles
to specific problems or situations.)
• Networking: Students understand the fundamental concepts, standards, and principles of
networking. (“Understanding” is demonstrated by applying relevant principles to specific
problems or situations.)
• Database Systems: Students can explain the types of physical storage and access methods;
create data models and data definitions; use query languages effectively; explain
dependencies, decomposition and normalization; and design databases to recover from
failures, maintain consistent data, and support concurrent access.
• Teamwork: Students can work effectively in a team to develop a software product.
• Communications: Students can express themselves clearly on technical matters orally and
in writing. They can communicate effectively with individuals that do not have a technical
background.
CS Self-Study
14
• Professional and Ethical Issues: Students can provide an overview of the professional and
ethical challenges faced by individuals and organizations in the information age.
In taking courses where these programmatic objectives are pursued, students are able to
determine whether they have aptitude and interest in computing. In achieving these learning
objectives, students learn to extend the applications of computers to problems of society as
follows:
• By learning problem solving methods, students gain the ability to define problems of
society and develop solutions to them.
• By learning teamwork skills, students gain the ability to work with others in solving large
problems.
• By learning mathematical skills, students gain the ability to analyze problems formally and
to develop formal solutions to problems.
• By learning communication skills, students gain the ability to interact with clients and
customers to define problems and propose solutions, and to work productively with other
in problem solving.
• By learning programming, data structures and algorithms, and software engineering,
students gain the ability to develop algorithmic solutions to problems, even at large scales,
and to implement these solutions in software.
• By learning database systems, operating systems, computer organization, and networking,
students gain the ability to solve problems involving these central aspects of computing
systems.
• By studying professional and ethical issues, students gain the ability to solve problems
within legal and ethical constraints, and to behave with integrity and honesty in their work.
B-2 Activities Supporting Achievement of Goals and Objectives
The programmatic objectives have been mapped onto courses offered within the program where
these objectives are addressed, as shown in the table below.
Objectives
Courses/Experiences
Communications: Students can express
themselves clearly on technical matters
orally and in writing. They can
communicate effectively with individuals
that do not have a technical background.
Professional and Ethical Issues: Students
can provide an overview of the professional
and ethical challenges faced by individuals
and organizations in the information age.
Required courses: TSC 210, CS 345, CS
430 CS 474
CS Self-Study
Elective courses: CS 349, CS 446, CS 447
Required courses: CS 110, CS 345
15
Programming: Students can develop
computer programs that solve specific
problems using an object oriented
programming language.
Required courses: CS 139, CS 239, CS 240,
CS 350, CS430, CS 450, CS474
Software Engineering: Students can explain
the software development lifecycle,
software project management, development
tools and methods, software quality
assurance and the challenges of producing
quality software products.
Problem Solving Methods: Students can
apply one or more problem solving
methods in defining solution requirements
and in designing, coding, testing, and
documenting a software solution.
Data structures and Algorithms: Students
understand fundamental data structures and
algorithms and can use them in designing
and developing programs.
Mathematical Skills: Students can apply
mathematical principles of discrete
mathematics, statistics and calculus in
defining or understanding computer
software.
Operating Systems: Students can explain
the concepts and principles of multiple user
operating systems.
Computer Organization: Students
understand the basic concepts of computer
organization and hardware operation.
Networking: Students understand the
fundamental concepts, standards, and
principles of networking.
Required courses: CS 345
CS Self-Study
Elective courses: CS 349, CS 446, CS 462
Elective courses: CS 349, CS 446, CS 462
Required courses: CS 239, CS 345,
CS 240,CS 430
Elective courses: CS 347, CS 349, CS 446,
CS 447
Required courses: CS 239, CS 240, CS 450,
CS 474
Elective courses: CS 349, CS 452, CS 462
Required courses: CS 227, CS 228, CS 240,
Calculus, Statistics
Elective courses: CS 452
Required courses: CS 450, CS 460
Elective courses: CS 457
Required courses: CS 350
Required courses: CS 460
Elective courses: CS 320, CS 461, CS 462,
CS 463, CS 464
16
Database Systems: Students can explain the Required courses: CS 474
types of physical storage and access
Elective courses: CS 347, CS 475, CS 476
methods; create data models and data
definitions; use query languages
effectively; explain dependencies,
decomposition and normalization; and
design databases to recover from failures,
maintain consistent data, and support
concurrent access.
Teamwork: Students can work effectively in Required courses: CS 345, CS 460 CS 474
a team to develop a software product.
Elective coures: CS 349
Besides classwork, the clubs sponsored by the CS department help achieve these goals, as
follows.
ACM Students Chapter—Promotes teamwork and communication skills in planning and
carrying out club activities. Promotes technical knowledge of various kinds by holding
technical talks, UNIX install meetings, and so forth. Promotes design and programming skill
by participating in programming contests.
CyberDefense Club—Promotes teamwork and problem solving in cyber defense
competitions. Students also learn a lot about professionalism and ethics, operating systems,
networking, data structures, and algorithms.
Forensics Club—Allows students to learn about professionalism and ethics, problem
solving, communication, computer organization, operating systems, data structures, and
algorithms.
Upsilon Pi Epsilon Honors Society—Promotes teamwork and communication skills in
planning and carrying out club activities.
Women in Technology—Promotes teamwork and communication skills in planning and
carrying out club activities, and provides leadership role models for women in technological
careers.
B-3 Faculty Role in Achieving Goals and Objectives
The faculty, of course, teach all the courses where program objectives are achieved. Faculty also
advise the ACM student chapter and the CyberDefense and Forensics clubs. In addition, faculty
engage with students through undergraduate research projects and classroom projects. This
engagement achieves our objectives although the particular objective is dependent on the nature
of the work being performed by students. Faculty also lead computer science activities outside of
the classroom such as programming and cyber defense competitions. These activities also
achieve department objectives.
The curriculum and objectives of the department are actively monitored and updated by the
faculty. The Undergraduate Curriculum Committee is a committee consisting of CS faculty that
CS Self-Study
17
bring curriculum changes to the entire CS faculty for consideration.
C. Program Structure and Reputation
C-1 Curriculum Development and Long-Range Planning
The CS department has an Undergraduate Program Director whose duties include curriculum
oversite. The Program Director heads the Undergraduate Committee, which consists of faculty
especially interested in curriculum and programmatic matters. The Undergraduate Committee
monitors the undergraduate curriculum based on feedback from students, faculty, and employers,
does long range planning, and develops curriculum proposals. The Undergraduate Committee
often brings issues to the entire faculty for discussion and advice. Furthermore, the faculty hold
retreats in the summer to discuss outstanding departmental issues, including long range planning
and curriculum issues.
The Undergraduate Committee is responsible for writing up formal program and course
proposals. When such proposals are finalized by the Undergraduate Committee, they are brought
to the department’s Curriculum and Instruction (C&I) Committee, which is the committee of the
whole. Proposals must be approved by this committee (in other words, the faculty) before
moving on in the approval process. Thus the entire faculty is involved (in varying degree) in
long-range planning and curriculum development.
C-2a Program Evaluation Against National Standards—ACM Curriculum 2008
The ACM publishes curriculum guidelines about every decade. The most recent recommendation
is entitled Computer Science Curriculum 2008. This document specifies the computer science
body of knowledge for undergraduate programs in knowledge units, as its predecessor report did.
A knowledge unit has a name, a minimum number of hours required to cover the material, topics,
and learning objectives. Knowledge units are classified as either core units that all program
graduates should master, or elective units, which may be mastered.
The table below maps the Curriculum 2008 core knowledge units to courses in the JMU CS
major, showing conformance of the program to these curriculum recommendations.
Core Knowledge Units
DS: Discrete Structures
FunctionsRelationsAndSets
Minimum Required Actual
Hours
Courses Hours
6
227
6
BasicLogic
ProofTechniques
BasicsOfCounting
GraphsAndTrees
DiscreteProbability
PF: Programming Fundamentals
10
12
5
4
6
227/228
227/228
227
228
228
15
8
5
5
6
FundamentalConstructs
9
139
30
CS Self-Study
Elective Actual
Courses Hours
452
6
18
AlgorithmicProblemSolving
DataStructures
Recursion
EventDrivenProgramming
6
10
4
4
139/239
240
239/240
ObjectOriented
FoundationsInformationSecurity
SecureProgramming
AL: Algorithms and Complexity
Basic Analysis
AlgorithmicStrategies
FundamentalAlgorithms
DistributedAlgorithms
BasicComputability
AR: Architecture and Organization
DigitalLogicAndDataRepresentation
ComputerArchitectureAndOrganization
InterfacingAndI/OStrategies
MemoryArchitecture
FunctionalOrganization
Multiprocessing
OS: Operating Systems
OverviewOfOperatingSystems
OperatingSystemPrinciples
Concurrency
SchedulingAndDispatch
MemoryManagement
SecurityAndProtection
NC: Net-Centric Computing
Introduction
NetworkCommunication
NetworkSecurity
PL: Programming Languages
Overview
VirtualMachines
8
4
2
239/240
4
6
12
3
6
240
240
240
BasicTranslation
CS Self-Study
20
30
13
349
12
457
457
10
3
4
1
8
452
452
452
3
12
12
228/430
4
452
3
7
9
3
5
6
6
350
350
350
350
350
6
10
4
2
8
2
2
6
3
3
2
450
450
450
450
450
3
3
21
6
6
457/110
13
2
7
6
460
460
460
3
12
6
2
1
430
430
4
1
2
430
2
32
19
DeclarationsAndTypes
AbstractionMechanisms
ObjectOrientedProgramming
HC: Human Computer Interaction
3
3
10
Foundations
BuildingGUIInterfaces
GV: Graphics And Visual Computing
FundamentalTechniques
GraphicsSystems
IS: IntelligentSystems
Fundamentals
BasicResearchStrategies
KnowledgeBasedReasoning
IM: Information Management
InformationModels
DatabaseSystems
DataModeling
SP: Social and Professional Issues
HistoryOfComputing
SocialContext
AnalyticalTools
ProfessionalEthics
Risks
IntellectualProperty
PrivacyAndCivilLiberties
SE: Software Engineering
SoftwareDesign
UsingAPIs
ToolsAndEnvironments
SoftwareProcesses
RequirementsSpecification
SoftwareVerificationValidation
SoftwareEvolution
6
2
447
349
9
6
2
1
349
349
3
1
1
5
4
344/444
444
344/444
9
3
27
110
110
110
110
110
110
110
1
2
SoftwareProjectManagement
4
3
4
1
3
2
3
2
3
2
430
430
239/430
474
474
474
3
9
30
6
5
10
345
2
8
5
3
2
4
3
3
345
239
345
345
345
345
345
4
3
3
5
7
7
3
3
345
10
3
2
2
1
This table shows that, for the most part, the recommended core hours of instruction in various
CS Self-Study
20
topics are covered in core JMU Computer Science courses, and with a few exceptions, all core
hours are covered when elective courses are included. We discuss divergence from the
recommendations below.
DS/ProofTechniques—The JMU CS core offers about four hours less instruction in proof
techniques than is recommended. The CS department has decided to emphasize application
over theory throughout the curriculum, and one consequence of this emphasis is reflected in
our decision to deemphasize proof techniques in our discrete mathematics courses. Student
who take CS 452 Design and Analysis of Algorithms, will be exposed to more proof
techniques.
PF/EventDrivenProgramming—This knowledge unit does not fit comfortably in our core
introductory programming track, though instructors who choose to discuss graphical user
interfaces will cover this material. However, the material is covered extensively in the
elective CS 349 Developing Interactive Multimedia.
PF/FoundationsInformationSecurity and PF/SecureProgramming—These knowledge units
are missing from our core programming sequence. The problem with fitting them in is that
this sequence is already full: we find that students need a lot of instruction in basic
algorithmic design and the object-oriented paradigm. Nevertheless, the department will
consider how to bring this material into the sequence. Many students take electives in
information security, and they are exposed to this material in depth in CS 457 Information
Security.
AL/AlgorithmStrategies, AL/FundamentalAlgorithms, AL/BasicComputability—The CS
department, in accord with its emphasis on practice over theory, does not require an advanced
algorithm analysis course where much of this material is covered. Some of it is covered in
our core data structures and algorithms class, and the rest is covered extensively in our
elective CS 452 Design and Analysis of Algorithms.
AL/DistributedAlgorithms—This material is not covered in our curriculum and perhaps
should be.
AR/MemoryArchitecture and AR/Multiprocessing—The main reason these topics are not
covered in our curriculum is that we run out of time in our core computer organization
course.
OS/Security and Protection—This knowledge unit is not covered in the core OS course
because it is relegated to the elective CS 457 Information Security, where the topic receives
much deeper treatment.
Human Computer Interaction, Graphics and Visual Computing, and Intelligent Systems—
The knowledge units classified as core here do not form a coherent whole on their own, and
do not fit well in most traditional Computer Science core courses. These knowledge units,
and far more, are covered in traditional electives courses in the Computer Science
curriculum. In particular, Human Computer Interaction units are covered fully in CS 447
Interaction Design, the Graphics and Visual Computing units are covered in CS 349
CS Self-Study
21
Developing Interactive Multimedia, and the Intelligent Systems units are covered thoroughly
CS 344 Intelligent Systems and CS 444 Artificial Intelligence. These courses seem to be the
right places for this material, and no good way of putting this material into required major
courses presents itself.
Social and Professional Issues—CS 110 is not required, but most freshman enroll in it, and it
covers most of the knowledge units in this area. We are currently considering adding a
required three-credit course to our curriculum to cover social and professional issues, which
would bring ou curriculum into full conformance with this recommendation.
SE/Software Design and SE/UsingAPIs—Our required course in software engineering, CS
345 Software Engineering, apparently has a more management-oriented slant than the
designers of Curriculum 2008 had in mind; it covers much more in software processes and
project management and less in design and implementation. However, we have an elective
that covers software design and APIs in great depth: CS 446 Software Analysis and Design.
As this discussion shows, our curriculum mainly conforms to the guidelines in Curriculum 2008,
with divergences mainly relegating some material recommend for the core to a series of upperdivision electives. The only places where a divergence is less a matter of dividing the material at
a different boundary is with respect to a lack of discussion of distribute algorithms and security
fundamentals, and a lack of a course in social and professional issues. The department intends to
consider modifications to bring our curriculum into better conformance with the
recommendations in these areas.
C-2a Program Evaluation Against National Standards—ABET
ABET, (formerly the Accreditation Board for Engineering and Technology) is the accreditation
organization for computing programs in the United States. The Computer Science department
has not determined that ABET accreditation is cost-justified, but that we could achieve ABET
accreditation with relatively minor changes to our curriculum and modification of our assessment
process. The following discussion summarizes this view.
Curriculum—JMU’s CS curriculum is currently very close to the ABET standard. The three
significant differences are in professional ethics, mathematics, and laboratory science. We
would have to add one required course in professional ethics, one mathematics course (such
as Calculus or linear algebra), and one year of a laboratory science to the curriculum to meet
ABET requirements.
Computer Laboratories and Computing Facilities—The CS department has excellent
modern laboratory and classroom facilities. New Macs were purchased for freshman
computer science labs in summer 2009, and our other labs have fairly new equipment. We
also have several specialized labs, such as the Cyber Defense lab, that support classes,
research, and extra-curricular activities. We believe that our CS program already meets the
accreditation requirements for computer laboratories and computing facilities.
Faculty—The CS department has a committed full-time faculty. Thirteen of sixteen faculty
have doctoral degrees: eleven in Computer Science, one in Information Studies, one in
CS Self-Study
22
Operations Research, and one in Music. The Ph.D. in Music has an MS in Computer Science.
Our two Lecturers have masters degrees: one in CS and one in Education. Faculty members
maintain currency in the field through consulting, research, and other professional activities.
We believe that our program is already fully compliant with the ABET accreditation
standards for faculty.
Student Support—CS programs benefit from a great deal of faculty contact and advising
support. We believe that our CS program already meets the accreditation requirements for
student support.
Institutional Support and Financial Resources—Historically, JMU’s salary structure for
the CS Department has been sufficient to allow the department to both attract and retain wellqualified faculty. However, because of the economic downturn, faculty salaries have not
increased since 2007, resulting in a serious erosion of inflation-adjusted salaries and
compression of existing faculty salaries with regard to newly hired faculty. The university
and state government are attempting to deal with this problem, and we are hopeful that
progress will be made that will enable us to retain all of our current faculty. Aside from the
issue of salaries, physical facilities provided to the faculty are sufficient. The department is
situated in a modern building complex, of which the oldest element was completed and first
occupied in the Fall of 1997. Adequate offices and other facilities are provided. We believe
that our program meets the accreditation guidelines for institutional support and financial
resources.
Institutional Facilities—JMU has excellent library facilities, including online access to
several research databases, the ACM and IEEE digital libraries, and Safari books. Our
physical book collection in the east Campus Library is adequate overall and strong in the
areas of software engineering and information security. Classrooms, dormitories, and dining
facilities, as well as faculty offices, are modern and well equipped, with wireless networking
over much of the campus, an optical fiber network backbone on campus, and T1 lines to the
Internet. Our CS program meets the accreditation guidelines for institutional facilities.
Objectives and Assessment—The CS Department has been using an assessment process
with two parts: a senior exit interview, and the ETS Field Test in Computer Science
administered to sophomores and seniors. The ETS field test has proven too expensive and of
little value, particularly since it is not coordinated with program and course objectives.
Consequently we are in the process of reformulating this portion of our assessment process.
ABET requires an objective-based assessment process used for continuous program
improvement. Once modifications to our assessment process are in place, we believe that it
would satisfy ABET requirements.
C2-b Responsiveness of the Curriculum to Societal Needs
The demand for computing professionals in the workforce is growing and not currently being
met because of the low Computer Science major graduation rate. The areas of networking,
security, database, software engineering, and programming are particularly highly sought in the
workforce. Our curriculum addresses this societal need with courses that prepare students for
CS Self-Study
23
occupations in these areas. The department participates in offering an interdisciplinary minor in
Telecommunications that prepares students for jobs networking related jobs, such as networking
engineers. Undergraduate CS courses in security provide students opportunity to earn the
NSTISSI No. 4011 and CNSSI No. 4014 NSA/DHS approved certificates as Information
Security Professionals. This credential is highly valued in the cyber-defense and information
security community.
The CS department regularly seeks industry input to ensure that the CS curriculum provide both
a solid foundation in Computer Science and also preparation for industry and government jobs.
Some companies whose advice has been solicited recently are Harris, IBM, Northrop Grumman,
and SAIC.
D. Program Viability
D-1 Program Viability in terms of State, Regional and National Needs
The Commonwealth of Virginia and the neighboring states are host to a large concentration of
government and technology related industries that depend on the availability of competent
information technology professionals. In the Strategic Plan for Technology 2002-2006, the
Governor of Virginia announced a commitment to continued economic development of Virginia’s
technology industry, which will increase the demand for qualified IT professionals both in the
state and in the region. The Bureau of Labor Statistics, in the Occupational Outlook Handbook
for 2010-2011, states that “Computer software engineers are among the occupations projected to
grow the fastest and add the most mew jobs over the 2008-2018 decade, resulting in excellent
job prospects.” It also states that “Overall, employment of computer software engineers and
computer programmes is projected to increase 21 percent rom 208 to 2018, much faster than the
average for all occupations.”
The undergraduate Computer Science program helps to fill this state and national need by
providing an education in computing that prepares its baccalaureate graduates to develop
software solutions not just today but also in the future. The CS core curriculum includes a
number of applications-oriented courses that provide students with an understanding of the basic
problems of computing, along with practical knowledge of how to solve them. In addition to
standard courses in computer programming, mathematics, and computer science, CS graduates
also complete several applications-oriented courses, including at least these:
• Software Engineering
• Database Design and Applications
• Telecommunications
This practical background enables CS majors to be productive immediately on graduation, and to
propagate state of the art knowledge of IT application development and management within the
organizations that employ them.
CS Self-Study
24
D-2 Program Size and Needs for Expansion
Demand for Computer Science majors both nationally and regionally is large and increasing. The
Bureau of Labor Statistics estimates that between 2008 and 2018 there will be over 750,000 new
computer specialist positions created, and need for just under 1,400,000 computer specialists to
fill both new and replacement positions. Meanwhile, supply is apparently not keeping up with
demand: the National Science Foundation reports that from 2004 through 2008 (the most recent
five years for which data is available), the number of CS graduates was 244,074. Doubling this
number (thus estimating for the period 2008-2018) will produce only about 65% of the people
needed to fill new positions, and about 35% of the people needed for new and replacement
positions. Anecdotally, recruiters visiting JMU frequently complain that too few students come to
interviews.
The obvious need for more CS graduate suggests that the JMU Computer Science department
should grow. The Computer Science department attempts to encourage growth through several
recruiting efforts.
Open House—Every year JMU sponsors two Open House days for minority and
underrepresented students to visit the campus. The department makes a presentation.
Take-A-Look Day—Every year JMU hosts this special open house for multicultural
prospective students.
Choices—Every year JMU hosts two Choices events for high school students who visit the
campus for the day. The department makes presentations featuring faculty and students, sets
up booths in the hallway highlighting student projects and faculty research, and attends a
reception for one-on-one discussions with students and parents.
Majors Fair—The department attends the annual Majors Fair for undeclared freshmen
students. Computer Science has a booth with information packets and a faculty member to
answer questions about the major.
Outreach Activities—The Computer Science department, through Ralph Grove, became
involved with the First Lego League in 2003. JMU hosted a regional tournament at CISAT in
2004, and has done so every year since. Steve Purcell (in the College of Education) and
Ralph Grove are co-directors of the regional tournament. JMU became the official FLL
partner for Virginia and DC around 2007. More information is available at
www.vadcfll.org/about.html. The department has held one Cyber Defense competition for
area high school students, and is exploring the possibility of sponsoring this event regularly,
with a grant application to support this effort currently submitted.
Evidence from the last decade has shown that recruiting efforts in Computer Science nationwide
have little effect on actual enrollment numbers. However, as noted, nationwide enrollment in
Computer Science, and at JMU, are currently increasing rapidly. Hence we must be prepared to
handle an influx of Computer Science majors in the near future.
CS Self-Study
25
E. Academic Program Resource Use
E-1 Changes Since the Last APR
In 2004 when the last APR occurred, the CS department had 191 majors and 25 minors.
Currently we have 303 majors and 21 minors, a 59% percent increase in majors. In 2004 the
nationwide decline in CS undergraduate enrollment had hit bottom; currently there is a
nationwide surge in enrollment. In 2004 the CS department had 17 full-time faculty, a holdover
from the period just prior to the dot-com bust when enrollments were at their previous peak of
over 500. At that time, faculty were teaching courses in other departments, a practice that
continued until a combination of faculty attrition (down to 14) and the current increase in CS
enrollment combined to more or less end it about three years ago. Our faculty currently numbers
16, adequate to support our present enrollment, but inadequate if enrollment continues to surge.
E-2 Changes Resulting from Technology
The CS department faculty maintained their own course web sites in 2004, but most faculty have
switched to using the Blackboard Course Management system since its introduction at JMU
some years ago.
F. The Role of Computer Science in the College and University
F-1 Computer Science in University-Wide Efforts
In 2008 then Vice-Provost Jerry Benson announced a new effort to increase enrollment in
Science, Technology, Engineering and Mathematics (STEM) majors. The Computer Science
department has since played an important role in increasing enrollments in this area.
Undergraduate and Graduate Programs—The CS InfoSec graduate program is recognized as
a Center of Excellence in Information Security Education, which conforms with the JMU
graduate school’s requirement that all graduate programs at JMU be “programs of distinction.”
Increases in CS undergraduate enrollment have been a major factor in helping the University
achieve its STEM enrollment goals.
Students majoring in any other subject may also major in Computer Science. Subject areas from
which students have double-majored with Computer Science in the past include : Art (Graphic
Design), Biology, Chemistry, Economics, Educational Media, Geographic Sciences, Health
Sciences, Integrated Science and Technology, Management, Mathematics, Music, Physics,
Psychology, and Technical & Scientific Communication.
The Computer Science faculty have participated in the JMU Bachelor of Individualized Study
(BIS) major in the Adult Degree Program. In the past ten years, about 10 students have
completed their BIS program with advisors from the Computer Science department. The faculty
has also contributed by evaluating BIS student portfolios for credit.
General Education—CS faculty member (Nancy Harris and Taz Daughtrey) have developed a
Computer Science-oriented version of GISAT 160 Problem Solving Approaches in Science and
Technology, and taught it several times. Taz Daughtrey also teaches GCSI 101 Physics,
CS Self-Study
26
Chemistry, and the Human Experience, GCSI 161 Science Processes and GSCI 162 The Science
of the Planets.
Minor Offerings—The CS minor is designed to give students majoring in other fields an
overview of the key concepts in Computer Science. In the past few years the Computer Science
department has served about 30 CS minors each year (though this number is highly variable).
Cross Disciplinary Programs—The Computer Science Program, in cooperation with Computer
Information Systems (CIS) and Integrated Science and Technology (ISAT), offers an
interdisciplinary minor in Telecommunications. This program is intended to augment those major
programs of a technical/scientific nature and to prepare students in those majors to become
network and telecommunications professionals.
Non-Majors—The Computer Science Department has no restrictions (other than prerequisites)
on its courses, so non-majors are free to take them. In addition, several CS coures are cross-listed
with other departments (Computer Information Systems, Integrated Science and Technology, and
Mathematics), with prerequisites in either Computer Science or other disciplines, so that majors
in other departments can use them as part of their degree programs.
F-2 Commitment of Students and Faculty to College and University-Wide Efforts
The Computer Science faculty is highly involved in efforts across campus. The following list
gives some idea of the extent of our involvement.
• Taz Daughtrey submitted Quality Enhancement Proposal in 2011 as part of a Universitywide quality improvement effort.
• Ralph Grove works with others in the community to run a regional First Lego League
competition (2007-2011). In 2011 over 500 teams came to JMU to participate.
• Christopher Fox was part of the committee that obtained a chapter of Phi Beta Kappa for
JMU (2008).
• David Bernstein assisted writing two University-Wide proposals to the Howard Hughes
Medical Institute (2007 and 2011).
• Christopher Fox was in the search committee to select a new Director of the Honors
Program (2006).
• J. Archer Harris worked on revisions of the JMU Faculty Handbook (2009).
• Nancy Harris and Taz Daughtrey were both faculty associates of the JMU Center for
Faculty Innovation (Harris 2006-2009, Daughtrey 2007-2010).
• Nancy Harris is on a Quality Enhancement Development Committee (2011).
• Christopher Fox is a member of the committee to establish a Logic Institute at JMU
(2011).
Students are also involved. The following list illustrates examples.
CS Self-Study
27
• CS students assist in enrichment activities in both the morning and afternoon of the
weekend in December when the First Lego League statewide competition occurs.
• CS students participate on a panel to describe their JMU experience for the Universitywide Choices presentations recruiting event, and talk to families after the session during
the open house which follows. One of our students participated in the university wide
opening session as well (2004-2011).
G. The Role of Students and Alumni in the Program
G-1 Students
Student Organizations—The CS department supports four student organizations:
ACM Student Chapter—This club meets regularly to sponsor various activities, including a
movie night, a Linux install fest, talks by recruiters, employers, and alumni, and so forth. Up
until 2009, the chapter also regularly competed in the programming contest.
CyberDefense Club—This club meets the learn cyber defense and enters teams in the
National Collegiate Cyber Defense Competition. A lab is available for their use. In 2011, the
JMU team placed second in the Mid-Atlantic Regional Cyber Defense Competition.
Forensics Club—This club meets to study computer forensics and does activities like
presentations of interesting topics and tools, participation in national forensics challenges,
provision of data recovery services and development of custom tools. The group has
established a partnership with the JMU Police Department to provide support for some of
their technical problems and to learn about computer crime investigations. In 2011, the club
placed sixth in the HoneyNet challenge, the highest ranking for a student team.
Upsilon Pi Epsilon Honors Society—This group honors excellence in computer science
scholarship and inducts members every year as part of the CS awards night. Eleven students
were initiated in 2011. UPE this year launched a LaTex tutorial web site.
In addition, a new Women in Technology student organization was established in 2011 with
Nancy Harris as co-academic advisor. This group has student members from Computer Science,
Computer Information Systems, Engineering, Integrated Science and Technology, and
Biotechnology.
Student Involvement in Departmental Activities—Students are involved in departmental
business in the following ways:
• Search committees include a student member. The student is involved in all business of the
committee and is a voting member.
• Every year a student becomes a member of CISAT Deans Student Advisory Council.
Student Satisfaction—Student evaluations indicate that the CS faculty and courses are wellregarded by students. The following table lists average overall instructor ratings on a five point
scale for each semester of the past four years.
CS Self-Study
28
Semester
Score
Standard Deviation
Spring 2011
Fall 2010
Spring 2010
Fall 2009
Spring 2009
Fall 2008
Spring 2008
4.37
4.30
4.34
4.22
3.98
4.21
4.32
0.80
0.87
0.77
0.93
1.19
0.99
0.91
Fall 2007
4.13
1.05
Mean Overall Instructor Rating, Five Point Scale
The following table lists the mean overall Computer Science course rating on a five pint scale for
each semester of the past four years.
Semester
Score
Standard Deviation
Spring 2011
Fall 2010
Spring 2010
Fall 2009
Spring 2009
Fall 2008
Spring 2008
4.19
4.11
4.14
3.96
3.85
4.09
4.13
0.92
0.88
0.83
0.97
1.12
0.92
0.89
Fall 2007
3.92
1.06
Mean Overall Course Rating, Five Point Scale
Every year the Academic Unit Head and Undergraduate Program Director conduct an exit survey
and exit interviews of graduating seniors. The result of these surveys and interviews indicate that
the vast majority of students are happy with the quality of the education they have received in
Computer Science at JMU. The following table shows the percentage of students answering yes
to the question “Do you think your education in CS has prepared you for the tasks required of an
effective entry level employee?” on the senior exit survey since 2004.
04-05
05-06
06-07
07-08
08-09
09-10
10-11
90
92
95
95
87
96
94
Do you think your education in CS has prepared you for the tasks required of an
effective entry level employee? Percentage of Students Answering Yes
The following table shows the percentage of students answering yes to the question “Has
studying CS prepared you to continue to educate yourself in areas important to you?” on the
CS Self-Study
29
senior exit survey since 2004.
04-05
05-06
06-07
07-08
08-09
09-10
10-11
85
100
95
100
100
100
96
Has studying CS prepared you to continue to educate yourself in
areas important to you? Percentage of Students Answering Yes
Advising—The academic advising system in Computer Science was not adequate before 2007,
as indicated by senior exit interviews over several years. In the summer of 2007 a new advising
system was put in place with the following characteristics:
• Advising is overseen by the Undergraduate Program Director who heads a team of
voluntary advisors (previously, all faculty were advisors, with no team leader).
• Advisors are given training when they begin, and the Undergraduate Program Director
serves as a resource when advisors have questions.
• An advising calendar has been put in place, and advisees are sent information at regular
intervals, including Fall and Spring advising newsletters, and messages reminding them to
see their advisors.
The new system has been in place for four years now, and it appears to be successful as indicated
by the increased satisfaction with the advising system in senior exit interviews. There are still
complaints from individual students about their experiences, which are handled on a case-bycase basis.
The following table shows the percentage of students answering yes to the question “Are you
satisfied with the level of academic and career counseling you received from the CS
department?” on the senior exit survey since 2004.
04-05
05-06
06-07
07-08
08-09
09-10
10-11
52
50
80
74
88
86
82
Are you satisfied with the level of academic and career counseling you received
from the CS department? Percentage of Students Answering Yes
Career advising is mainly handled by the JMU Office of Career and Academic Planning. The CS
department has a liaison from this office (Laura Hickerson) who holds office hours in the the CS/
ISAT building once a week. Career and Academic Planning offers the following services:
• Annual fall and spring career fair featuring hundreds of employers seeking students for
both internships and full time jobs;
• Individual career counseling;
• Classes in career and life planning;
• Self-assessment tests and counseling about the results;
CS Self-Study
30
• Web resources, both JMU generated and external;
• Resource center containing over 500 books on occupational information, job search
strategies and graduate school information in addition to computer stations for research
and use;
• Workshops on resume writing, cover letters, and personalized resume reviews;
• Mock interviews with employers in the actual interviewing center on campus;
• Assistance with job search strategies and connecting students with employers;
• Special events such as Resume Round-up with employers and Speed Networking with
employers;
• On-campus recruiting services.
• Graduate school practice tests and personal statement review.
G-2 Alumni
Alumni Involvement—One of the major recommendations of the last APR was that CS
establish an External Advisory Committee. Such a committee was established in 2006. The EAC
comes to campus annually for a one-day meeting. These events consist of meetings with
administrators, faculty, and student to discuss current departmental issues, visits to classrooms,
and closed sessions where the EAC decides on recommendations to the department. The EAC
subsequently writes a report advising the departments of its findings and recommendations.
Alumni Perceptions—An alumni survey was conducted from December 2010 through February
2011. Only 13 respondents returned the survey, and three were graduates of the masters
programs, so the results are of dubious value. However, the result generally indicate satisfaction
with the JMU Computer Science program, as indicated below.
In answer to the question “How likely would you be to recommend JMU to a colleague,
friend or relative?”, eight respondents answered very likely, five likely, and none unlikely.
In answer to the question “Would you recommend this major to someone you know?”, six
respondents answered yes, and none answered no.
H. Assessment Findings on Student Learning Objectives
H-1 Assessment Findings
The Computer Science department uses both course-based and non-course-based assessment
mechanisms.
Course based assessment mechanisms are evaluations of students in individual courses by
faculty teaching the course to determine whether they have achieved learning objectives. Such
mechanisms include
• examinations and quizzes,
• programming assignments (group and individual),
CS Self-Study
31
• projects (group and individual),
• homework assignments,
• laboratory exercises,
• self and group assessment surveys,
• directed in-class activity deliverables.
Non-course-based assessment mechanisms are evaluations of students by individuals not
teaching particular courses to determine whether they have achieved learning objectives. Such
mechanisms include
• senior exit interviews,
• senior exit surveys,
• course evaluations by students,
• standardized tests,
• class visits and interviews with students by external agencies, such as accreditation
visitors, APR visiting teams, or the Computer Science External Advisory Council,
• alumni surveys
• peer reviews of courses by other faculty.
Note that the last two categories are independent external assessments. We discuss assessment
findings for both course-based and non-course based mechanisms.
H-1a Course Based Assessment Mechanism Findings
The Computer Science department uses course-based mechanisms to assess outcomes in
individual courses and also programmatic outcomes. As is probably the case in many
departments, many of the Computer Science department’s learning objectives are addressed in
multiple courses. However, because of the way the Computer Science department’s program
requirements are structured, the ways in which these courses are used to assess our ability to
achieve program objectives is somewhat unique. Hence, before we can discuss the mapping of
courses to objectives, we must discuss the types of courses that we offer.
Required Courses: Required “core” courses must be taken by all students in the Computer
Science program and must be taken before other required courses. The Computer Science
department offers two different kinds of core courses.
Terminal Core Courses: A terminal core course is the last course (in a sequence of courses)
that addresses a particular learning objective. Because of the prerequisite structure of
Computer Science courses, we are able to identify (at least) one terminal core course for each
learning objective.
Initial/Intermediate Core Courses: An initial/intermediate core course is any course other
than the terminal course that addresses a particular learning objective.
CS Self-Study
32
Elective Courses: Elective courses are upper-level courses that Computer Science students may,
but are not required to take. Most electives can only be taken after a significant portion of the
core has been completed.
The Computer Science Department is able to use course-based mechanisms to assess
programmatic outcomes because of the way in which the program is structured. In particular,
mechanisms in
• Terminal core courses are used to assess some programmatic outcomes for all students;
Required courses are used to assess some programmatic outcomes for all students; and
• Elective courses are used to assess some programmatic outcomes for a (self-selecting)
sample of students.
Curriculum Map—The programmatic objectives have been mapped onto courses offered within
the program where these objectives are addressed, as shown in the table below.
Objectives
Courses/Experiences
Communications: Students can express
themselves clearly on technical matters
orally and in writing. They can
communicate effectively with individuals
that do not have a technical background.
Required courses: TSC 210, CS 345, CS
430 CS 474
Professional and Ethical Issues: Students
can provide an overview of the
professional and ethical challenges faced
by individuals and organizations in the
information age.
Required courses: CS 110, CS 345
Programming: Students can develop
computer programs that solve specific
problems using an object oriented
programming language.
Required courses: CS 139, CS 239, CS
240, CS 350, CS430, CS 450, CS474
Software Engineering: Students can
explain the software development
lifecycle, software project management,
development tools and methods, software
quality assurance and the challenges of
producing quality software products.
Required courses: CS 345
Problem Solving Methods: Students can
apply one or more problem solving
methods in defining solution requirements
and in designing, coding, testing, and
documenting a software solution.
Required courses: CS 239, CS 345,
CS 240,CS 430
CS Self-Study
Elective courses: CS 349, CS 446, CS 447
Elective courses: CS 349, CS 446, CS 462
Elective courses: CS 349, CS 446, CS 462
Elective courses: CS 347, CS 349, CS 446,
CS 447
33
Data structures and Algorithms: Students Required courses: CS 239, CS 240, CS
understand fundamental data structures and 450, CS 474
algorithms and can use them in designing Elective courses: CS 349, CS 452, CS 462
and developing programs.
Mathematical Skills: Students can apply
mathematical principles of discrete
mathematics, statistics and calculus in
defining or understanding computer
software.
Required courses: CS 227, CS 228,
Calculus, Statistics
Elective courses: CS 452
Operating Systems: Students can explain
Required courses: CS 450, CS 460
the concepts and principles of multiple user Elective courses: CS 457
operating systems.
Computer Organization: Students
Required courses: CS 350
understand the basic concepts of computer
organization and hardware operation.
Networking: Students understand the
fundamental concepts, standards, and
principles of networking and can use
appropriate network programming
techniques to implement inter-process
communications.
Required courses: CS 460
Database Systems: Students can explain
the types of physical storage and access
methods; create data models and data
definitions; use query languages
effectively; explain dependencies,
decomposition and normalization; and
design databases to recover from failures,
maintain consistent data, and support
concurrent access.
Required courses: CS 474
Teamwork: Students can work effectively
in a team to develop a software product.
Required courses: CS 345, CS 460 CS 474
Elective courses: CS 320, CS 461, CS 462,
CS 463, CS 464
Elective courses: CS 347, CS 475, CS 476
Elective coures: CS 349
Strength of Progress on Objectives—Because program objectives are mapped to course
objectives, student achievement of program objectives is demonstrated by success in courses;
students who successfully complete all required courses have achieved all program learning
objectives. Students successfully complete the program (data is shown in the attachments), hence
students are making adequate progress on program objectives.
CS Self-Study
34
H-1b Non-Course-Based Assessment Mechanism Findings
Exit Interviews—Each year during the last week of classes in spring semester the Academic
Unit Head and Undergraduate Program Director conduct interviews with most seniors graduating
in that calendar year. Students meet with the interviewers in groups of five to ten for about 50
minutes. The interviewers ask open-ended questions, often based on the senior exit survey
(which students are asked to bring with them). Students are also encouraged to make comments
on any topic they wish. Over the years, many valuable insights about the program have been
generated from these interviews. Among the changes to the program that have occurred, at least
in part, as a direct result of senior exit interview findings are the following:
• Adoption of policies to increase the amount of programming in certain courses.
• Removal of certain faculty from teaching certain courses.
• Institution of a new advising system.
• Introduction of a new listserv about jobs in addition to the existing listserv for general
department announcements, and making a greater effort to ensure that transfer students are
registered for listservs.
• Better coordination of topics in the two sections of discrete mathematics (though this
continues to be a problem).
• Attempts to make technical writing more relevant to Computer Science students (this also
continues to be a problem).
Exit interview results are studied by the Academic Unit Head and Undergraduate Program
Director, and issues are passed on to the faculty for attention. Results are also reported to the
administration yearly in the Assessment Progress Template report.
Exit Survey—The following table shows the results of the senior exit survey since its initiation
in 2004-2005 relevant to program assessment.
Participants
3 Year Overall
Mean Mean
04-05
05-06
06-07
07-08
08-09
09-10
10-11
22
13
43
42
34
49
50
04-05
05-06
06-07
07-08
08-09
09-10
10-1l
Male
82%
85%
86%
88%
94%
94%
94%
88%
Female
18%
15%
14%
10%
6%
6%
6%
12%
44
36
Sex
CS Self-Study
3 Year Overall
Mean Mean
35
Transfer student?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
14%
8%
33%
36%
62%
40%
22%
3 Year Overall
Mean Mean
41%
31%
Expectations clearly stated in syllabi?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
87%
77%
91%
95%
91%
96%
96%
3 Year Overall
Mean Mean
94%
90%
Knowledge and skills learned in lab sufficient to complement required lectures?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
82%
100%
93%
78%
88%
84%
94%
3 Year Overall
Mean Mean
89%
88%
Lab instructional facilities adequate?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
91%
92%
91%
90%
94%
84%
94%
3 Year Overall
Mean Mean
91%
91%
Lab assistants knowledgeable and helpful?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
91%
92%
81%
100%
100%
91%
97%
3 Year Overall
Mean Mean
96%
93%
Should there be an optional senior project?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
91%
91%
86%
83%
94%
69%
38%
3 Year Overall
Mean Mean
67%
79%
Are you satisfied with the level and amount of team work (group) experience?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
95%
84%
79%
81%
81%
51%
78%
3 Year Overall
Mean Mean
70%
78%
Based on experience gained on group projects, do you think you are able to
function effectively on multi-disciplinary teams?
Yes
CS Self-Study
04-05
05-06
06-07
07-08
08-09
09-10
10-11
100%
100%
95%
90%
97%
71%
88%
3 Year Overall
Mean Mean
85%
92%
36
Are you satisfied with the level and amount of exposure to technical writing in the
CS curriculum?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
70%
62%
32%
71%
84%
85%
78%
3 Year Overall
Mean Mean
82%
69%
Are you satisfied with the level and amount of exposure to effective oral
communication in the curriculum?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
67%
12%
85%
77%
79%
41%
82%
3 Year Overall
Mean Mean
67%
63%
Are you satisfied with the level of academic and career counseling you received
from the CS Department?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
52%
50%
80%
74%
88%
86%
82%
3 Year Overall
Mean Mean
85%
73%
Is your academic advisor accessible?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
67%
80%
95%
88%
100%
92%
92%
3 Year Overall
Mean Mean
95%
88%
Do you think your education in CS has prepared you for the task required of an
effective entry level employee?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
90%
92%
95%
95%
87%
96%
94%
3 Year Overall
Mean Mean
92%
93%
Has studying CS helped you gain the skill necessary to recognize, assess, and make
ethical professional decisions?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
79%
91%
92%
92%
91%
96%
85%
3 Year Overall
Mean Mean
91%
89%
Has studying CS prepared you to continue to educate yourself in areas important
to you?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
85%
100%
95%
100%
100%
100%
96%
3 Year Overall
Mean Mean
99%
97%
The exit survey consistently has a high return rate, so it is (probably) representative data. Most
CS Self-Study
37
responses indicate high satisfaction with the CS program. Areas where improvement have been
and are being made include the following.
Technical and Oral Communication—The lowest overall level of satisfaction and greatest
variability is with technical and oral communication. We are working with the department of
Writing, Rhetoric, and Technical Communication to improve this situation in the required
course WRTC 210 Technical and Scientific Communication. The department is also
considering how add more communication instruction in the CS curriculum.
Advising—The next highest level of overall satisfaction has to do with advising, but note
that scores in this area have markedly improved since the introduction of the new advising
system in 2007.
Group Work—Another area of concern is group work. This topic is quite puzzling: exit
interview discussions indicate highly polarized views, with some students wanting more
group work and some students less. Consequently we are not quite sure how to address
dissatisfaction in this area.
Senior Projects—Another area in which there is wide divergence of response is whether
there ought to be a senior project. The faculty is currently examining proposals in this area.
Exit survey results are studied by the Academic Unit Head and Undergraduate Program Director,
and issues are passed on to the faculty for attention. Results are also reported to the
administration yearly in the Assessment Progress Template report.
Course Evaluations—Course evaluations are read first by the Academic Unit Head, and then
given to the course instructor. Course evaluation results are seen by members of the Personnel
Advisory Committee (PAC) as part of the portfolio presented by faculty up for promotion and
tenure. Course evaluation data consists of tables showing aggregate responses to all questions,
and respondents, means and standard deviations of responses to each question for each section,
each course, each instructor, and the entire department. Written comments are also included.
Instructors use course evaluations to make improvement to individual courses. Evaluation results
are also used as a major input to performance evaluations in the area of teaching, which has a
direct relationship to faculty salary increases. These results are also considered by the Academic
Unit Head and the PAC in making tenure and promotion decisions. Finally, course evaluation
results have been used to help determine who will or will not teach various courses.
Standardized Tests—On Assessment Day in 2007 until 2010 CS majors took the Educational
Testing Service’s Major Field Test in Computer Science. In 2007 and 2008 only sophomore took
the test, and then both sophomores and seniors took the test in 2009 and 2010. The intent was for
scores of the seniors to be compared to those of the sophomores from two years earlier, as a
measure of progress by that cohort. Also, year-by year comparisons could be made between
seniors.
The following tables summarize test result.
CS Self-Study
38
Raw Scores Out of 200
Percent Correct, by
Category
Mean
Std. Dev.
Programming
Fundamentals
Discrete Structures
and Algorithms
Architecture, OS,
Nets, Databases
2007 Sophomores
n = 53
2009 Seniors
n = 66
137
8
144
11
42
52
28
28
29
38
ETS Major Field Test in CS Results, Class of 2009
Raw Scores Out of 200
Percent Correct, by
Category
Mean
Std. Dev.
Programming
Fundamentals
Discrete Structures
and Algorithms
Architecture, OS,
Nets, Databases
2008 Sophomores
n = 24
2010 Seniors
n = 47
143
10
146
12
53
54
31
41
31
41
ETS Major Field Test in CS Results, Class of 2010
The data show the expected improvement in scores between sophomores and seniors (though it is
of less magnitude than expected). It also shows odd inconsistencies. For example, by sophomore
year, students should be competent in Programming Fundamentals, so scores should not show
great improvement between the sophomore and senior years. This is observed in the class of
2010, but not in the class of 2009. Similarly, there should be great improvement in scores in
Architecture, OS, Networks, and Databases, which are all covered in upper division courses in
the JMU curriculum. This increase is observed in the data. Discrete structures and algorithms are
covered throughout the four years, so one would expect a modest increase from the sophomore to
senior years. Yet for the class of 2009, there is no increase, and for the class of 2010, there is an
increase as large as the one for the upper division material.
In studying this data, it became clear that
• The data is of dubious validity. The inconsistencies noted above are very suspicious.
Furthermore, the data is collected on JMU Assessment Day, a weekday in spring semester
CS Self-Study
39
when all classes are cancelled. Many students regard this as a “day off” and resent having
to take a test; some students report filling in answers at random.
• Although the test scores indicate broad areas for improvement, there is not a sufficient
basis for determining exactly where improvement efforts should be focussed. In 2010,
additional item analysis was requested from ETS in order to further understand student
performance at a level that might be mapped to specific CS courses. This report was
received from ETS in May 2010 and was used for a more detailed analysis, but it provided
no real insights at the level of specific courses. For example, the poorest responses (fewer
than 25% of students gave correct answers) were on 13 of the 66 items, but there was no
clear pattern: three dealt with finite-state representations and two each with timing and
reading pseudocode. On the other hand, two of the three best responses dealt with reading
other pseudocode. Most items could not be directly mapped to objectives in particular
courses.
Finally, the ETS Field Test is very expensive. Consequently, the CS department concluded in
2010 that the ETS Field Test was not worth the time and effort required for its administration and
analysis, and its use was discontinued for 2011 and beyond. The department is studying the use
of course-based assessment mechanisms to obtain similar improvement data.
APR Recommendations—The last Computer Science Department Academic Performance
Review occurred in 2004. The recommendations about the undergraduate program in that review,
and the department’s responses to them, are summarized below.
1. Develop a new departmental mission statement. The faculty adopted a new mission
statement this past summer.
2. Consider requiring a specific laboratory-based natural science course, perhaps in Physics,
and a defined Calculus sequence in the Mathematics and Statistics. All students are now
required to take one Calculus course from the Mathematics department and advised to
take a second. The faculty considered the suggestion that majors be required to take a
laboratory-based science course but decided that this action will damage enrollment
without improving student preparation for the major or for a career. If the department
decides to acquire ABET accreditation, then a laboratory science will have to be added.
3. Review upper-level courses to ensure that all majors get a significant programming
experience in their junior and senior years. The faculty adopted a policy that certain
upper-division courses have required programming projects. The faculty is now
considering a proposal that all students be required to take an upper division project
course as an elective.
4. Develop an objectives-based assessment program to monitor student learning and ensure
continuous improvement. An objectives-based assessment program has been established
is is under continuous improvement.
5. Publicize widely the student learning goals and objectives. All syllabi are required to state
course goals and objectives.
CS Self-Study
40
6. Improve the student advising system. In 2007 the CS department put a new advising
system in place, and it seems to be working.
7. Outline clearly what is required of a faculty member in the areas of teaching, scholarly
achievement and service. In October 2006 the faculty adopted a policy on faculty
member evaluation used in all annual evaluations and tenure and promotion decisions.
This policy states clearly what is required to be considered satisfactory or excellent in
teaching, scholarly achievement and professional qualifications, and professional service.
8. Create a document that clearly delineates the standards and/or requirements for tenure
and promotion. See seven above.
9. Require some form of refereed publication for scholarly achievement. The faculty
believes that refereed publications are not the only legitimate evidence of scholarly
achievement, so our evaluation criteria give credit for other forms of scholarship.
Nevertheless, publication is emphasized more than it has been in the past in our criteria
for faculty evaluation.
10. Emphasize assessment and advising as key parts of the faculty’s service responsibility to
students. Advising is treated as a component of professional service. Only seven faculty
are undergraduate advisors, so this is a distinction recognized in performance evaluations.
11. Become proactive in raising funds. Since 2004 the department has obtained extensive
scholarship funding from external sources.
12. Request that the university fund a dedicated, full-time technical support person for the
department. If the university needs to provide such support to any academic department,
it is Computer Science. Livia Griffith was hired in August 2004 to provide technical
support to the CS department.
13. Extend computer lab hours for students on a trial basis. The ISAT/CS building is closed
for security reasons at night an on the weekends—our laboratories are open whenever the
building is open. This is a university policy beyond the control of the department.
14. Take a proactive approach to obtaining internships for students. The department has an
internship coordinator (currently Mohamed Aboutabl) who contacts students and
enterprises to help students obtain internships. He also oversees internships and is the
instructor of record for the CS 444 Internship.
15. Leverage the department’s expertise in information security across the undergraduate
curriculum. The department has established an undergraduate certificate in Information
Security consisting of three elective courses taken as part of to the CS major. Students
who complete this program receive an NSA approved Information Systems Security
Professionals certification (NSTISSI No. 4011).
16. Form a technology advisory board. This effort is under way and should be completed this
year. The Computer Science External Advisory Board was formed in 2007. It means
twice a year and makes recommendations for program improvement.
CS Self-Study
41
17. Publicize the Computer Science Minor to the rest of the university and to entering
freshmen and transfer students. There is no mechanism at JMU to advertise programs to
incoming students. The department is exploring the possibility of a CS minor espeically
for Engineering students.
EAC Recommendations—The CS External Advisory Committee began meeting in spring 2007.
It has made several recommendations since then, including the following:
1. Introduce a discipline and major roadmap course (2008). The contents of CS 110
Introduction to Computer Professionalism and Ethics has been modified in light of this
recommendation.
2. Expand offerings in the area of software engineering, including more courses,
certificates, minors (2008). This is a huge effort that the department has not been able to
address. There is currently consideration of adding another software engineering course
about agile methods.
3. Add a course on the business of Computer Science, especially entrepreneurship (2008).
The department is exploring working with Computer Information Systems in the College
of Business to offer such a course.
4. Move the Computer Science department into a new college with Integrated Science and
Technology and perhaps some other departments (2009). This process is now under way.
5. Urgently devote effort and attention to recruiting a new department head to replace Dr.
Lane, who is retiring, and find funds to hire faculty needed to meet teaching needs
(2010). Dr. Sharon Simmons was hired and three new faculty members were hired (net
two because of a retirement).
Alumni Surveys—The most recent alumni survey occurred in December 2010 through February
2011. Only ten undergraduate respondents returned the survey. The results of the survey are
shown below.
Describe your current employment status (check all that apply).
Answer
CS Self-Study
Count
Percent
Employed Full-time
Employed Part-time
Seeking Employment
14
0
1
100%
0%
7%
Student Teaching
0
0%
42
Please list the employment that best characterizes your current full-time employment.
Job Title or Subject/
Grade
Raytheon BBN Technologies
Staff Engineer
SPAWAR
Computer Scientist
Valley Automaton Inc.
Network Engineer
SPARTA, Inc
Computer Engineer
Northrop Grumman
Software Engineer
CGI Federal
Consultant
Argon ST
Software Engineer
Information System
Riverfront Investment Group
Specialist
Sybase 365
NOC Engineer
Booz Allen Hamilton
Consultant
Senior Info. Systems
Mitor
Engineer
High Performance
IT Consultant
Technologies
City
State
Cambridge
Washington
Luray
Centreville
Herndon
Fairfax
Fairfax
MA
DC
VA
VA
VA
VA
VA
Gross Yearly
Salary
$76000
$81000
$35000
$67275
$62000
$75000
$72000
Richmond
VA
$67500
Reston
Norfolk
VA
VA
$58000
$41000
Fairfax
VA
$70000
Arlington
VA
$0
Employer or School Name
How soon after graduation did you have your first full-time job?
Answer
Count
Percent
I had a job when I graduated.
Within three months.
Four to six months.
Seven to twelve months.
Thirteen to eighteen months.
Longer than 18 months.
8
1
2
0
0
0
73%
9%
18%
0%
0%
0%
11
100%
Total
Please fill in the following question about diversity (ethnic, racial religious, etc.).
Question
How diverse is your workplace?
How well prepared were you to work in
this environment?
How well did JMU prepare you to work
in this environment?
CS Self-Study
Very Somewhat Not very Not at all Responses
4
7
1
0
12
11
1
0
0
12
6
6
0
0
12
43
Describe you graduate school status?
Answer
Count
Percent
Graduated from a graduate program.
Currently enrolled full time.
Currently enrolled part time.
Have been accepted to attend next semester.
Do not plan to attend graduate school.
1
0
3
3
6
8%
0%
23%
23%
46%
13
100%
Total
Please fill in your graduate school information.
Name of School
Degree
Field of Study
Completion
City
State
JMU
JMU
JMU
Carnegie Mellon
MS
MS
MS
MS
Secure Software Systems
Computer Science
Secure Software Systems
Software Engineering
2010
2010
2011
2012
Harrisonburg
Harrisonburg
Harrisonburg
Pittsburgh
VA
VA
VA
PA
Georgetown
MA
Computer Science
2010
Washington
DC
How likely would you be to recommend JMU to a colleague, friend, or relative.
Answer
Very Likely
Likely
Not likely
Total
CS Self-Study
Count
Percent
8
5
0
62%
38%
0%
13
100%
44
In reference to your CS major, please rate your level of satisfaction
with each of the following services using the scale shown.
Very
Very
No Basis to
Dissatisfied Satisfied
Responses
Dissatisfied
Satisfied
Judge
Question
Availability of your CS major
advisor
Range of courses (broad
enough to provide you a solid
foundation)
Availability, space and
equipment provided in
computer labs
Opportunities for teamwork
Value of your advisor’s input in
making post-graduate plans for
your career or graduate/
professional study
0
0
7
4
2
13
0
2
8
3
0
13
0
0
9
4
0
13
0
2
8
3
0
13
2
1
5
1
4
13
In the following areas, rate how well you were prepared for your
first job (or for further higher education) using the scale shown.
Question
Ability to communicate
effectively
Understanding of, and
ability to demonstrate,
professional ethics
Analytical (problem
solving) skills
Mathematical skills
Ability to function
effectively as a team
member
Very
Very
Inadequately Adequately
Inadequately
Adequately
No Basis
to Judge
Responses
0
1
7
5
0
13
0
0
6
7
0
13
0
0
4
9
0
13
0
0
12
1
0
13
0
1
5
7
0
13
Please rate how adequately you feel prepared for employment after having
completed the following CS coursework at JMU in the each of the following areas.
Very
Very
No Basis
Inadequately Adequately
Inadequately
Adequately to Judge
Application programming
0
0
5
8
0
Software engineering
1
0
5
7
0
Data structures
1
1
6
5
0
Operating systems
1
2
9
1
0
Computer Organization
1
1
8
3
0
Networking
0
1
7
5
0
Database systems
0
0
11
2
0
Question
CS Self-Study
Responses
13
13
13
13
13
13
13
45
Would you recommend this major to someone you know?
Answer
Count
Percent
Yes
No
6
0
100%
0%
6
100%
Total
Have you needed more formal education after JMU to perform your job acceptably?
Answer
Count
Percent
Yes
No
6
0
100%
0%
6
100%
Total
What aspect of your CS major has proven most valuable to you since graduation?
Security courses and networking courses
The multiple courses involving applications programming helped me learn the
fundamentals of the vast majority of the programming languages/paradigms I need for
my job.
I work in a job that requires many different skill sets ranging from basic network
troubleshooting to the programming of databases and HMI for Water Treatment Plants.
The curriculum was broad enough that I am able to do my job effectively. I also am
able to learn new concepts fairly quickly.
Most of the skills I regularly use for my job were learned through my elective classes
especially pertaining to threading, sockets, and getting comfortable with raw data
through hex editors.
Java programming and broad CS foundation skills and knowledge
CS Self-Study
46
What summary statement would you like to make about your experiences as a CS major?
Computer organization, databases, and operating systems are the weak areas in JMU's
CS program.
It was fun, and closer to reality that I thought it would be.
Great experience. Learned enough about a lot of things to make me effective at what I
do.
I'm glad I went to JMU for my undergraduate studies. The professors clearly cared
about the material they were teaching.
Gained practical CS skills related to professional duties
The response rate in this survey was extremely low, so very little can be concluded from this data
with assurance that it represents our alumni. However, the data indicates that the few people who
chose to respond were generally satisfied with their experience and with the program. There is
some indication of problems with advising (which have been dealt with), and of dissatisfaction
with learning communication skills and teamwork (which are being investigated).
Results of the alumni survey come to the Academic Unit Head, who then distributes them to
faculty who need to respond to them.
Peer Reviews—There are two forms of peer reviews currently conducted in Computer Science:
• A Teaching Analysis Poll (TAP) is a mid-semester evaluation that provides instructors with
feedback from their students regarding the learning environment in a course. TAPS are
provided by faculty trained through the Center for Faculty Innovation (CFI). The faculty
consultant contacts the instructor prior to the TAP to discuss basic course information and
any concerns the instructor might have about the course. The consultant then comes to the
class and spends 30 minutes conducting the TAP with the class. During the TAP, the
consultant guides the students through a discussion based on questions what helps learning
in this course, what hinders learning in the course, and what suggestions students have for
improving the course. Students explore these questions in small groups and write their
responses on the board. The TAP consultant then moderates a discussion with all the
students based on the boarded comments. After the TAP, the consultant meets with the
instructor to discuss the TAP feedback. TAPS are entirely voluntary and results are kept
confidential by the CFI. If a faculty member chooses to include TAP results in his or her
annual activities report or promotion and tenure package, he or she may do so.
• In 2007 the Computer Science department adopted a policy allowing peer reviews by other
department members. The purpose of a peer review is to make suggestions to help faculty
members improve their teaching by providing a frank and confidential assessment of their
teaching. A faculty member may at any time ask the PAC to arrange a peer review of one
or more of the faculty member’s courses. The PAC then forms an ad hoc committee of
three faculty members one of whom, at most, may be from another department. The PAC
CS Self-Study
47
will then charge the review committee to perform a peer review. Oversight by the PAC
ends at this point. The review committee then meets with the faculty member to discuss
the course, and then one or more class sessions are observed by each member of the
committee. The review committee prepares a written report and delivers it to the reviewed
faculty member; the review committee then destroys all material from the review and
keeps the results of the review confidential. The reviewed faculty member may submit the
report to the department head as part of his or her annual activities report or as part of his
or her tenure and promotion package.
Many faculty members have availed themselves of peer reviews or TAPS, and presumably have
used them to improve their courses and teaching, but statistics and details about this are
obviously unavailable because of the confidential nature of both processes. One of the great
strengths of these processes is their confidentiality: honest assessments and improvement efforts
can be made because there is no threat to the faculty members.
H-2 Quality of the Program’s Assessment Activities
Strength and weakness of various assessment activities are summarized below:
Course-based assessment activities—The faculty believes that these activities are effective
in monitoring and improving courses in myriad ways, but at a level of detail below that
captured by statistical measures. We are studying whether and how program assessment can
be improved by incorporating course-based assessment mechanisms into higher-level
measures.
Senior exit interviews—The faculty and Academic Unit Head believe that this is our most
effective assessment activity. Interviews provide a wealth of detail about the strengths and
weaknesses of the program, and allow opportunity for follow-up questions to collect more
data, and for questions to be asked across several groups of students to gauge the
representativeness of responses. As indicate above, many important program changes have
been made in response to exit interview findings. The greatest weakness of this technique is
potential unwillingness of participants to voice concerns about the interviewers (the
AcademicUnit Head and Undergraduate Program Director).
Senior exit surveys—These surveys help inform the senior exit interviews and provide a
means of verifying the strength of concern over various issues among graduating seniors. As
such they provide a supplement and a check on the exit interviews.
Course evaluations by students—Course evaluations are helpful in pointing out problems
about course details for individual faculty to make improvements (such as poor textbooks or
activities or assignments that are useful or not useful). They also demonstrate the perceived
quality of our instructors and courses. But course evaluations are notoriously vulnerable to
student moods, apathy, or agendas that students may have to influence faculty performance
evaluations for good or bad.
Standardized tests—As discussed above, recent experience with the ETS Major Field Test
has not been fruitful. At this time the faculty sees no particular need to employ standardized
CS Self-Study
48
tests in program evaluation.
Visits and interviews by external agencies—The faculty have found suggestions from past
external agencies very helpful. For example, many of the suggestions from the last APR,
such as establishing an external advisory council, and acquiring more outside funding, have
led to valuable improvement. Sometimes suggestions are less helpful, of course, and this is
fine provided that the department is not forced to implement changes that it regards, after
careful and thoughtful consideration, to be ill-advised.
Alumni surveys—These surveys have usually ad poor response rates, and efforts to increase
response rates generally focus on making them shorted, so they often have few questions.
The faculty often find discussions with graduates visiting the campus on recruiting trips or
for entertainment more useful and informative.
Peer course reviews—Faculty who have had peer reviews and TAPS have indicated that
these are useful and often lead to valuable course improvements.
In summary, the Computer Science department’s assessment activities have mainly been helpful,
with the exception of standardized tests and alumni surveys. The department is currently
exploring ways to improve program assessment by using course-based assessment activities.
I. Role of Faculty in the Program
I-1 Faculty Activities
The JMU Computer Science faculty views its primary mission as teaching, with service and
scholarly activity as subordinate supporting activities to its main instructional focus. The default
activity weighting in the three areas is 70% for teaching, and 15% for each of professional
service, and scholarly achievement and professional qualifications. Each year faculty negotiate
these weights for the coming year as part of their anticipated activity plan, but teaching effort for
full-time faculty can never be less than 60% (department policy) and effort in the other two areas
can never be less than 10% (Faculty Handbook, section III.E.4.a).
Teaching and Advising—The target teaching load for full-time faculty in Computer Science is
three three-credit sections with two preparations per semester, or two four-credit sections with
one preparation per semester. For example, a faculty member might teach two four-credit
sections of CS 139 Algorithm Development with a common lecture, which meets twice per week
in 50-minute lectures and twice per week in 75-minute labs, for a total of 400 minutes (6 hours
and 40 minutes) of student contact time. Or a faculty member might teach two sections of CS
240 Data Structures and one section of CS 458 Cyber Defense in a semester, each section
meeting either twice a week for 75 minutes or three times a week for 50 minutes, for a total of
450 minutes (7 hours and 30 minutes) of direct student contact time. Faculty are also required to
hold at least five office hours per week (department policy). When preparation and grading time
are included, faculty easily spend 24 hours (or 60% of a 40-hour week) on courses. This is one
way to justify the minimum weighting of 60% for teaching. Occasionally, demand requires that
some faculty teach three preparations, and many faculty teach independent studies or supervise
theses. These activities are not compensated, so teaching loads in fact often exceed 60% of a 40-
CS Self-Study
49
hour week. Sometimes faculty are asked to teach an extra section, but this is usually rewarded
with extra money or compensatory time; in any case, the time required to teach an extra section
increases the proportion of effort devoted to teaching even more.
Only eight of 16 faculty are undergraduate advisors. Nancy Harris is currently the Freshman
advisor. She advises students from their orientation session in the summer until mid-way through
the spring semester of their freshman year, when these students are assigned major advisors.
Chris Fox is currently the transfer advisor. He advises transfer students from their orientation
session in the summer before they enroll until they graduate or choose another advisor. The other
major advisors advise students from the spring of their freshman year until they graduate.
Advisors volunteer to perform this service for the department, and agree to accept about 30 to 50
advisees (perhaps more for the freshman and transfer advisors). Advisees are encouraged to see
their advisors in the fall of their sophomore year, and required to see their advisor in the fall of
their senior year. Students are also encouraged to see their advisors whenever they have
questions are academic problems. We do not collect statistics on advising effort, but on average
advisors probably spend one to two hours per week meeting with advisees.
Scholarship and Research—As a group, the Computer Science faculty concentrate their
research in pedagogy, software engineering, and information security and forensics.
In the area of pedagogy, members of the department have published several textbooks, including
the following.
David Bernstein, The Design and Implementation of Multimedia Software With Examples in
Java, Jones and Bartlett, 2010.
Christopher Fox, Introduction to Software Engineering Design, Addison-Wesley, 2006.
Ralph Grove, Web-Based Application Development, Jones and Bartlett, 2010.
Ramon Mata Toledo and Pauline Cushman, Schaum's Outline of Fundamentals of SQL
Programming, McGraw-Hill, 2010.
Ramon Mata Toledo and Pauline Cushman, Schaum's Outline of Fundamentals of Relation
Databases, McGraw-Hill, 2010.
Brett Tjaden, Fundamentals of Secure Computer Systems, Franklin Beedle & Associates,
2003.
In the area of security and forensics, some recent publications include the following.
Florian Buchholz and Brett Tjaden, “A Brief Study of Time,” Proceedings of the 2007
Digital Forensics Research Workshop, 2007.
Ben Rodes and Xunhua Wang, “Security Analysis of a Fingerprint-protected USB Drive,”
Proceedings of the 26th Annual Computer Security Applications Conference, 2010.
Xunhua Wang, Ralph Grove, and Hossain Heydari, “Secure Electronic Voting with
Cryptography”, in Applied Cryptography for Cyber Security and Defense, Hamid R. Nemati
and Li Yang, Ed.s, Information Science Reference, Hershey, NY, 2011.
CS Self-Study
50
In the area of software engineering, some recent publications include the following.
David Bernstein, Karl Ridgeway and John Magnotti, “Using Java’s Generics Mechanism to
Improve Type Safety in the Command Pattern,” Proceedings of the ACMSE, 2008.
Ralph Grove and Eray Ozkan, “The Web-MVC Design Pattern”, Proceedings of WEBIST
2011, 2011.
Laura White, Thomas Reichherzer, John Coffey, Norman Wilde, Sharon Simmons,
“Maintenance of Service Oriented Architecture Composite Applications: Static and Dynamic
Support,” Journal of Software Maintenance and Evolution: Research and Practice, in press.
Note that several of these publications are with students: Ben Rodes, Karl Ridgeway, John
Magnotti, and Eray Ozkan were all students.
Service and Support Activities—The Computer Science faculty is very active in service and
support activities. The department is organized with three program directors, one each for the
undergraduate program, the on-campus Forensics program, and the distance Information Security
program. Program directors receive one course release time per semester. They are responsible
for day-to-day operational oversight and paperwork, advising, program curricula, and program
improvement. The directors plus the Academic Unit Head comprise the Executive Committee.
The department also has the following standing committees.
Undergraduate Program Committee—Charged with oversight of the undergraduate program,
mainly having to do with curriculum. There are currently four faculty on this committee.
Forensics Program Committee—Charged with oversight of the on-campus graduate program
in Secure Software Systems, mainly having to do with curriculum. There are currently three
faculty on this committee.
InfoSec Program Committee—Charged with oversight of the distance graduate program in
Information Security, mainly having to do with curriculum. There are currently five faculty
on this committee.
Personnel Advisory Committee—Charged with reviewing tenure and promotion decisions
and making recommendations to the Dean, hearing appeals of decisions, formulating
personnel policies, and so forth. There are four faculty on this committee.
Assessment Committee—Charged with overseeing program assessment, including collecting
data and filling in the annual Assessment Progress Template (APT). There are currently three
faculty on this committee.
Lab Committee—Charged with monitoring the state of the department’s laboratories, dealing
with problems, planning their evolution, and making recommendations to administration
about equipment and space. There are currently six faculty on this committee.
Awards Committee—Charged with choosing students for scholarships and end-of-the-year
awards. There are currently three faculty on this committees.
In addition, the department, college, and university have many service roles that need to be
filled, as follows.
CS Self-Study
51
Faculty senator
• Internship coordinator
• Computer science minor advisor
• Transfer advisor
• Freshman advisor
• Telecommunications minor advisor
• UPE advisor
• ACM advisor
• Cyber Defense club advisor
• Forensics club advisor
• Honors program liaison
• Library liaison
• Honors banquet coordinator
• Webmaster
• CISAT Leadership Council member
• CISAT Undergraduate Curriculum and Instruction Committee member
• CISAT Graduate Council member
• CISAT Dean’s Advisory Council member
• CISAT Tech User’s Group member
• CISAT Faculty Development Committee member
• CISAT International Committee member
• CISAT Diversity Council member
• University Graduate Council member
• Freshman Advisory Board member
• STEM Retention Committee member
Finally, faculty are free (and often encouraged) to participate in additional service supporting the
department, college, and university. The following list summarizes activities faculty are currently
participating in.
Aboutabl: Member of the InfoSec Program Committee, Internship Coordinator;
Telecommunications Minor Advisor; Member of the CS Lab Committee; CISAT
Undergraduate C&I Committee Member; CISAT International Committee.
Bernstein: Member of the Personnel Advisory Committee; Chair of the CS Awards
CS Self-Study
52
Committee; Honors Program Liaison.
Buchholz: Forensics Program Director; Chair of the Forensics Program Committee; Member
of the InfoSec Program; Member of the CS Executive Committee; Member of the CS Lab
Committee; CS Web Master; University Graduate Council.
Daughtrey: CFI Faculty Affiliate; Member of the Forensics Program Committee; Chair of the
CS Assessment Committee; CS Minor Advisor.
Fox: President, Xi of Virginia Chapter of Phi Beta Kappa; Communications Chair, JMU
Chapter of Phi Kappa Phi; Logic Institute committee member; Computer Science
Undergraduate Program Director; Chair of the Undergraduate Program Committee; CS
Minor Advisor; Member of the CS Executive Committee; Member of the CS Awards
Committee; CS Web Master.
Grove: Co-Director, FIRST Lego League Regional Tournament; Member of the Personnel;
Advisory Committee; Chair of the Space Planning Committee; Member of the
Undergraduate Program Committee; Member of the CS Assessment Committee;
Representative on the Faculty Senate; CISAT Faculty Development Committee; Member of
JMU Honors Council.
Harris: Women in Technology club advisor; CFI Faculty Affiliate; Member of the
Undergraduate Program Committee; Member of the CS Assessment Committee; Freshman
Advisor; Member of the CS Awards Committee; Freshman Advisory Council; STEM
Retention Committee.
Heydari: InfoSec Program Director; Chair InfoSec Program Committee; Member of the CS
Executive Committee; CS Web Master; CISAT Graduate Council.
Kirkpatrick: Member of the Undergraduate Program Committee; CS Library Liaison.
Mayfield: ACM Advisor.
Mata-Toledo: Chair of the Personnel Advisory Committee.
Norton: Member of the Undergraduate Program Committee.
Simmons: CISAT Leadership Council; Chair CS Executive Committee; Honors Banquet
Coordinator.
Sprague: Member of the Personnel Advisory Council; CISAT Diversity Committee.
Tjaden: Member of the InfoSec Program; Member of the CS Lab Committee.
Wang: Member of the InfoSec Program; Chair of the CS Lab Committee; Member of the
Forensics Program Committee; UPE Advisor; CISAT Tech Users Group.
I-2 Faculty Qualifications
Faculty vitae are found in Appendix 7.
Faculty do not always teach the same courses from year to year, however, there are courses that
faculty tend to teach most often. The following justification in based on courses that faculty most
CS Self-Study
53
often teach. The argument is that faculty teach elementary courses that any Ph.D. in Computer
Science or a closely related field should be competent to teach, or courses in their areas of
specialization. Hence faculty are qualified to teach their courses.
Aboutabl: Ph.D. in Computer Science, University of Maryland, College Park; specializations:
operating systems and networks and security. Courses: CS 240 Data Structures and
Algorithms, CS 350 Computer Organization, CS 450 Operating Systems, CS 460 TCP/IP
Networking, CS 457 Information Security, CS 458 Cyber Defense.
Bernstein: Ph.D. in Operations Research, University of Pennsylvania; specializations: mobile
computing, multimedia. Courses: CS 139 Algorithm Development, CS 239 Advanced
Computer Programming, CS 240 Data Structures and Algorithms, CS 349 Developing
Interactive Multimedia (wrote the course textbook The Design and Implementation of
Multimedia Software With Examples in Java), CS 460 TCP/IP Networking, CS 462 Network
Applications Development.
Buchholz: Ph.D. in Computer Science, Purdue University; specializations: forensics.
Courses: CS 452 Design and Analysis of Algorithms, graduate courses in InfoSec and
forensics.
Daughtrey: M.E. in Education, University of Virginia; founding editor Software Quality
Professional; specialization: science education, quality. Courses: CS 345 Software
Engineering, graduate courses in quality and project management, general education science
courses.
Fox: Ph.D. in Information Studies, Syracuse University; specializations: software
engineering design, software construction, formal methods. Courses: CS 240 Data Structures
and Algorithms, CS 430 Programming Languages, CS 446 Software Analysis and Design
(wrote the course textbook Introduction to Software Engineering Design), CS 452 Design
and Analysis of Algorithms.
Grove: Ph.D. in Computer Science, University of Louisville; specializations: web
development, object-oriented design, artificial intelligence. Courses: CS 239 Advanced
Computer Programming, CS 344 Intelligent Systems, CS 345 Software Engineering, CS 347
Web-Based Information Systems (wrote the course textbook Web-Based Application
Development), CS 444 Artificial Intelligence.
Harris: M.S. in Computer Science, James madison University; specializations: computer
science education, databases. Courses: CS 139 Application Development, CS 239 Advanced
Computer Programming, CS 474 Database Design and Application.
Heydari: Ph.D. in Computer Science, University of Texas at Dallas; specializations: networks
and security. Courses: CS 450 Operating Systems, CS 460 TCP/IP Networking, information
security graduate courses.
Kirkpatrick: Ph.D. in Computer Science, Purdue University; specializations: computer
organization and operating systems. Courses; CS 350 Computer Organization, CS 450
Operating Systems.
CS Self-Study
54
Mayfield: Ph.D. in Computer Science, Purdue University; specializations: database systems.
Courses: CS 227 and CS 228 Discrete Structures, CS 474 Database Design and Application.
Mata: Ph.D. in Computer Science, Kansas State University; specializations: discrete
mathematics, databases, natural language processing. Courses: CS 227 and CS 228 Discrete
Structures, CS 474 Database Design and Application, graduate courses in database and
natural language processing.
Norton: Ph.D. in Music, The Ohio State University, M.S. in Computer Science, James
Madison University; specializations: computers and music, databases. Courses: CS 239
Advanced Computer Programming, CS 474 Database Design and Application, CS 450
Operating Systems, general education courses in music.
Simmons: Ph.D. in Computer Science, The College of William and Mary; specializations:
networking and operating systems. Courses: CS 450 Operating Systems, CS 460 TCP/IP
Networking, CS 462 Network Applications Development.
Sprague: Ph.D. in Computer Science, University of Rochester; specializations: computer
science education, robot vision. Courses: CS 240 Data Structures and Algorithms.
Tjaden: Ph.D. in Computer Science, University of Virginia; specializations: network security
and cyber defense. Courses: CS 458 Cyber Defense, graduate courses in information security
and forensics.
Wang: Ph.D. in Computer Science, George Mason University; specializations: information
security and cryptography. Courses: CS 227 and 228 Discrete Structures, CS 457 Information
Security, various graduate courses in information security and forensics.
I-3 Professional Development Overview
In 2006 James Madison University established the Center for Faculty Innovation (CFI), whose
mission is to foster “experiences and dialogue designed to promote excellence in teaching,
scholarship, service, and leadership with the goal of enhancing the academic culture of the
university.” The CFI sponsors multiple workshops, seminars, speakers, discussions, and other
programs contributing to the professional development of the faculty. The Computer Science
faculty often attend CFI programs, and two faculty (Daughtrey and Harris) have been CFI
Faculty Associates and are now CFI Faculty Affiliates. The CFI is the source of most internal
professional development activities in the department.
Faculty sometimes attend tutorials at conferences and workshops to educate themselves and keep
up to date with the field and its pedagogy. These activities are limited by funding. For example,
in August 2011 Nancy Harris and Mike Norton attended a two-day workshop focused on
attracting and retaining female students in science and technology majors conducted by Donna
Milgram of the National Institute for Women in Trades, Technology, and Science.
Every year the College of Integrated Science and Technology sponsors educational leaves for a
limited number of faculty. Leaves are full-time for either a semester with full pay or a year with
half-pay. Faculty must submit a proposal to the college; a committee ranks the proposals and the
CS Self-Study
55
Dean decides how to award them.
J. Quality and Quantity of Academic Support
J-1 Adequacy of Staffing
Full-Time Faculty—As a rule of thumb, given the number of courses in our curriculum and the
number of seats in our sections, the CS department needs about one full-time equivalent faculty
member teaching undergraduate courses for every 25 to 30 undergraduate majors. We have just
over 300 majors, so by this heuristic, we need about 10 to 12 faculty members to support the
undergraduate program. The graduate programs together require the support of five full-time
equivalent faculty. Thus the department need is 15 to 17 faculty, and we have 16 faculty, so our
staffing level is currently about right. However, our program is growing, and it it continues to do
so, this staffing level will not be adequate for long.
Part-Time Faculty—The CS department prefers to avoid part-time faculty. However, we have
employed one part-time faculty member from spring 2010 until fall 2011, but with the addition
of new faculty, we hope not to need part-time help anymore. However, we may have to employ
part-time faculty again if our enrollment grows too quickly.
Classified and Wage Staff—The CS department has three secretaries and one computer support
technician. Gwen Good is the departmental office manage and the Academic Unit Head’s
administrative assistant. She handles all budgets and supports the Academic Unit Head. Carole
Ritchie supports the undergraduate program. Kathy Laycock supports the graduate programs.
Livia Griffith takes care of the department’s labs and Linux servers. Finally, a part-time student
assistant is hired every semester to assist the secretaries. These resources are adequate to
departmental needs.
Graduate and Teaching Assistants—The graduate program has six graduate assistant positions.
Faculty request assistants to help with courses or research at the start of each semester. No
graduate students ever teach classes on their own. The on-campus graduate program often has
trouble recruiting students, and faculty could probably make use of more graduate assistants, so
there is justification to increase the number of graduate assistantships.
Student Assistants—As noted, a student assistant is hired to support the secretaries. In addition,
between 15 and 20 student lab assistants are hired to help students in the evenings with their
programming projects. These undergraduate student assistants are a great help to students in the
introductory programming sequence and we believe are essential in retaining students in these
courses and hence in the major. Student assistants are paid from the department’s operating
budget rather than from the personnel budget, so these positions are vulnerable to general budget
cuts. Furthermore, more student assistants will be needed if enrollment continues to increase.
Consequently there is a need for stable and probably increasing funding for these positions.
Advising Support—The freshman advisor is paid a stipend to support summer work, which
includes several weeks of advising sessions in June and July, and additional work in the week
before classes begin.
CS Self-Study
56
J-2 Library Resources
JMU has excellent library facilities, including online access to several research databases, the
ACM and IEEE digital libraries, and Safari books. Our physical book collection in the east
Campus Library is adequate overall and strong in the areas of software engineering and
information security.
J-3 Technological Support
The CS department must have computer laboratories sufficient to support our courses that have
laboratory components, our distance program in InfoSec, research, and extra-curricular activities.
Teaching Labs: Currently the department has a Software Engineering Lab with 30 Macs, a
Program Development Lab with 30 Linux machines, a Systems Development Lab with 24
seats for networking and operating systems work, and several Linux machines accessible
over the web. The Software Engineering and Program Development labs, along with support
provided by the servers, are sufficient to support our general lab classes, but if enrollment
increases, we will not have enough seats, particularly for our introductory courses. The
Systems Development Lab has outdated machines and is not able to support the needs of
courses in operating systems and networking. Faculty interested in pursuing course
development in other areas (such as robotics or embedded programming) have no space to do
this work and no budget to acquire equipment.
InfoSec program: The InfoSec program needs servers to support the program web site,
which provides the virtual campus for the program. Currently the servers themselves are
adequate to the needs of the program, but adequate network connectivity, security, and file
storage are lacking. Another area of need is backup technology.
Research: The department has a Computer Forensics lab to support research in this area.
There is no budget available for purchasing equipment to support research in other areas.
CyberDefense: The department currently has one 24 seat CyberDefense lab to support
classes and the CyberDefense club. This resource is adequate to needs in this area.
A problem that affects all our labs is an inability on the part of the JMU administration and
Information Technology organization to recognize the need for Computer Science to have labs
different from general purpose labs, and the lack of expertise and ability to support nonWindows environments.
J-4 Non-Personnel Support
The department’s operating budget has been virtually unchanged for 20 years. Fortunately, the
department has an arrangement whereby it receives a fraction of the tuition money from the
InfoSec program, which has provided funding for travel, equipment, and so forth for which the
operating budget has not been sufficient.
After the last APR, a major effort was begun by Malcolm Lane to obtain scholarship funding.
This effort has been quite successful, with several individuals and companies donating money
supporting about a dozen modest scholarships. Furthermore, JMU has in recent years provided
CS Self-Study
57
more scholarship money to departments. In 2011 Computer Science undergraduate received a
total of $27,700 in scholarships. Additional scholarship money is expected from several sources
in 2012.
J-5 Adequacy of Facilities
The CS department is housed in a modern and well-maintained building (ISAT/CS), and it
controls most of the space on the second floor, which houses offices, support spaces (such as a
mailroom and workroom), two classrooms, and three laboratories. We also have two labs on the
first floor of ISAT/CS, and we can schedule classes into rooms in the Health and Human
Services (HHS) building.
Currently all faculty have private offices. All classrooms are adequate. We have space for
existing laboratories (as noted above), but there is no space available to support new initiatives in
teaching or research, such as a space for a robotics or embedded systems labs or for new research
projects. Furthermore, enrollment growth in the last three years has been 5%, 8.7%, and 9.2%. If
enrollment continues to increase (and especially if the increase continues to accelerate), then
classroom and teaching lab facilities will not be adequate in two to three years. Faculty office
space will not be adequate if we hire more than one additional faculty member.
J-6 Recommendation for Meeting Future Needs
Predicting enrollment in Computer Science is very difficult, as witnessed by the unexpected
crash in enrollment after 2000, and the much anticipated but tardy recovery that finally began
three years ago. However, the CS undergraduate program is growing at the rate of about eight
percent per year. We do not anticipate significant growth in the CS graduate programs, but there
is still need for better support for the infrastructure undergirding the InfoSec program.
The CS department is currently at capacity with respect to class size, office space, and general
labs, and it lacks space and equipment for special purpose labs. If the undergraduate program
continues to grow, as seems likely, the department will need to offer more sections of classes
within two to three years, which will require hiring more faculty (who will need office space),
and opening another general lab (which will require space and equipment).
In light of this analysis, the CS department makes the following recommendations:
• Upgrade the network connectivity, security, storage capacity, and backup mechanisms for
the Information Security servers.
• Purchase new equipment for the operating systems and networking lab sufficient to the
needs of courses in these areas.
• Allocate space and budget for equipment, perhaps in partnership with other departments,
to support new program development and research. There is currently interest in a robotics
program, for example, which needs this kind of support.
• Plan for new faculty offices and another general purpose CS lab to meet anticipated
growth.
• Plan to replace equipment in the existing general purpose labs in the next three years as
CS Self-Study
58
equipment ages and becomes obsolete.
• Plan for more classroom space to be used by CS in the ISAT/CS/HHS building complex.
• Work to help the administration and university IT organization understand that Computer
Science has need of specialized laboratories, and encourage IT to develop expertise in
supporting non-Windows environments.
The following table shows current and projected number of students in each year of the major
program, along with the number of sections needed to support that number of students each year,
assuming an 8% rate of growth in the number of freshmen.
2011-2012
2012-2013
2013-2014
2014-2015
2015-2016
Freshmen
Sophomore
Junior
Senior
90
70
86
83
97
90
70
86
105
97
90
70
113
105
97
90
122
113
105
97
Sections
45
46
51
55
60
Estimated Growth in Sections As a Function of Enrollment
Our goal is the maintain section sizes between 25 and 30 students. Hence when a cohort’s size
exceeds 90, an extra section of each course taken by students in that cohort must be added to the
total. Similar increases occur at the next breakpoint of 120, and so forth. Thus we see that even
given a modest growth rate, the number of sections increases by 33% in only five years. This is
the basis for concern about classroom and lab space and faculty size.
K. Strategic Plan/Initiatives
The guiding principles of the department are
• Provide a quality education to our students that emphasizes rigor along with personal
interaction with students and incorporating problem solving development throughout the
curriculum.
• Produce graduates with strong communication skills able to succeed in the computing
profession.
• Provide a broad and inclusive Computer Science curriculum reflecting the state of the field
while maintaining an emphasis on delivering knowledge that builds a foundation for
adaptation to future developments in the field.
• Provide an environment that fosters a commitment to professional and community
involvement.
• Provide students with opportunities for real-world experiences.
Based on these guiding principles, the following initiatives have been identified and are currently
under consideration.
CS Self-Study
59
Curriculum
• Review existing courses to consider adding new electives and emphasize technical writing.
• Study of the feasibility of adding a course in social and ethical issues to the core
curriculum.
• Study ways to add a projects course as a capstone experience.
Outreach
• Speaker series for both internal and external presenters on topics ranging from experiences
in industry to research.
• Technical talks conducted by faculty and students for students.
• Industry relationships to provide internships and undergraduate research opportunities.
L. Potential Areas for Additional Review/Consulting
Increasing Minority and Underrepresented Group Enrollment—Computer Science has
always had a hard time attracting minority and female students. The JMU CS department is no
different from the norm in this regard. The department has tried several strategies for increasing
minority and female enrollment without success. Hiring a consultant to advise the department on
strategies that we have not thought of may help us.
ABET Accreditation Consulting—If the department decides to obtain ABET accreditation, it
would be worthwhile to hire a consultant to help us develop the accreditation application and
documentation. ABET accreditation is expensive: some estimates are that it costs as much as
$100,000 to acquire accreditation. Mounting such an expensive effort and then failing to receive
accreditation would be a disaster. Thus it is worthwhile to mitigate this risk by obtaining expert
advise when putting together an accreditation package.
CS Self-Study
60
IV. Documentation
Appendix 1: Program Requirements and Curriculum Design
Bachelor of Science in Computer Science Degree Requirements
Requirements
Credit Hours
General Education1
Quantitative requirement (in addition to General Education)
Major requirements (listed below)
41
3
49-51
University electives
21-27
120
Total
1. The General Education program contains a set of requirements each student must fulfill. The
number of credit hours necessary to fulfill these requirements may vary.
Computer Science Major Requirements
Courses
CS/MATH 227. Discrete Structures I
CS/MATH 228. Discrete Structures II
CS 239. Advanced Computer Programming
(CS 139 or equivalent is a prerequisite for CS 239)
CS 240. Algorithms and Data Structures
CS 345. Software Engineering
CS 350. Computer Organization
CS 430. Programming Languages
CS 450. Operating Systems
CS 460. TCP/IP Networks
CS 474. Database Design and Application
Computer Science electives above CS 300
WRTC 210. Introduction to Technical and Scientific Communication
Choose one of the following:
MATH 205. Introductory Calculus I
MATH 231. Calculus with Functions I
MATH 235. Calculus I
Choose one of the following statistics courses:
MATH 220. Elementary Statistics
MATH 318. Introduction to Probability and Statistics
Total
CS Self-Study
Credit Hours
3
3
4
3
3
3
3
3
3
3
9
3
3-4
3-4
49-51
61
The credit/no-credit option may not be applied to any courses specifically listed above, nor may
that option be applied to Computer Science electives. Students must achieve a cumulative grade
point average of 2.0 or better in all courses used to satisfy the above requirements.
Computer Science Minor Requirements
Courses
CS 139. Algorithm Development
CS 239. Advanced Computer Programming
Choose one of the following:
CS 345. Software Engineering
CS 350. Computer Organization
Choose three of the following:
CS 240. Algorithms and Data Structures
CS/MATH 228. Discrete Structures II
Computer Science courses above CS 300
Total
Credit Hours
4
4
3
9
20
Coures Descriptions
CS 110. Introduction to Computer Professionalism and Ethics 1 credit. Offered fall.
Seminar for first year students and transfer students focusing on professional and ethical issues in
computer science. Topics include computer science degree requirements, the computer science
profession, ethics of computing professionals, protection of software, Internet security and
privacy issues, and current issues in computer science.
CS 139. Algorithm Development (3, 2) 4 credits. Offered fall and spring.
Students learn fundamental problem-solving techniques using computer software tools that
support algorithm development and procedural abstraction to analyze a domain and create
reusable software applications.
CS/MATH 227-228. Discrete Structures I-II 3 credits each semester. CS/MATH 227 Offered
fall and spring. CS/MATH 228 Offered fall.
An introduction to discrete mathematical structures including functions, relations, sets, logic,
matrices, elementary number theory, proof techniques, basics of counting, graphic theory,
discrete probability, digital logic, finite state machines, integer and floating point representations.
Prerequisite for CS/MATH 228: CS/MATH 227.
CS 239. Advanced Computer Programming (3, 2) 4 credits.Offered fall and spring.
Students use various advanced problem-solving strategies to develop algorithms using classes
and objects. Students also learn how to implement and use elementary data structures, including
character strings, records, files, stacks and queues. Prerequisite: CS 139 or equivalent with a
grade of "C" or better.
CS Self-Study
62
CS 240. Algorithms and Data Structures 3 credits. Offered fall and spring.
Students learn to implement and analyze elementary data structures and the basic complexity
classes of algorithms that use strategies such as greedy algorithms, divide-and-conquer
algorithms and backtracking algorithms. This analysis is especially applied to problems in
searching, sorting and parsing. Prerequisites: CS/MATH 227 and a grade of "C" or better in CS
239.
CS 252. Discrete Structures 3 credits. Not currently Offered .
Introduction to the mathematical structures used in computer science. Topics include logic and
set theory, algebraic structures, automata theory and computability. Prerequisite: CS 139.
CS 274. Introduction to Databases 3 credits. Offered spring only.
Students learn how to design and implement a normalized relational database. Emphasis is on the
practical construction of an interactive database using graphical user interfaces and report
generation.
CS 280. Projects in Computer Science 1-3 credits. Offered as demand warrants.
Projects or topics in computer science which are of interest to the lower division student. May be
repeated for credit when course content changes. Topics may vary. Prerequisite: Students should
consult the instructor prior to enrolling for the course.
CS/CIS 320. Computing and Telecommunications Networks 3 credits. Offered fall and
spring.
This course focuses on the underlying principles of telecommunications and how these principles
are deployed to provide efficient and secure networks for providing voice, data and video
services. Emphasis is placed on understanding basic routing, switching and data aggregation
techniques, information security strategies, and understanding how basic information systems
applications utilize telecommunications services. Prerequisite: Open to CIS majors and minors
with corequisite of CIS 304. Open to ISAT majors with prerequisite of ISAT 252. Open to CS
majors with prerequisite of CS 139.
CS 340. Assembly Language Programming 3 credits. Offered as demand warrants.
Principles of assembly language programming. Assembly language contrasted with machine
language. Assembly directives, conditional assembly and macros. Design of a two-pass
assembler. The material in this course is useful for those interested in machine design, operating
systems, embedded computer systems and microcontrollers, and other areas which require lowlevel knowledge of computer operation. Prerequisite: CS 139.
CS/ISAT 344. Intelligent Systems 3 credits. Offered fall and spring.
In-depth introduction to current and future intelligent systems, including expert systems, neural
networks, hybrid intelligent systems, and other intelligent system technologies and their
development, uses and limitations. Prerequisite: CS 239 or ISAT 340.
CS/ISAT 345. Software Engineering 3 credits. Offered fall and spring.
Study of means for the development and maintenance of high quality software products
delivered on time and within budget. Topics include requirements analysis and specification,
software design, implementation, testing, maintenance, project management, ethics and the
CS Self-Study
63
responsibilities of software engineering professionals. Prerequisites: CS 139 or ISAT 340 with
sophomore standing in the ISAT major.
CS 347. Web-Based Information Systems 3 credits. Offered fall.
This course covers the design and development of applications intended for deployment over the
World Wide Web. Students will examine Web protocols, the architecture of Web-based
applications, the languages and facilities with which they are developed, and related issues such
as security and reliability. Students will also work in teams using a representative suite of
development tools and languages to design and construct a simple client/server application that
includes a GUI and a database interface. Prerequisites: CS 239 with a grade of "C" or better and
CS 345.
CS 349. Developing Interactive Multimedia 3 credits. Offered fall.
Students learn the concepts of multimedia, the issues in designing multimedia to interact
effectively with users, the performance and speed issues in designing multimedia, and how to
implement interactive multimedia applications. Prerequisite: CS 240.
CS 350. Computer Organization 3 credits. Offered spring.
Students learn how a computer works through principles of hierarchical computer organization,
hardware (including registers, busses and arithmetic logic units) machine instruction sets,
addressing techniques, input/output processing, and interrupt handling. Students are introduced
to the Unix operating system. As part of this course, students will be provided with a version of
Unix to install on a personal computer. Prerequisites: CS/MATH 227 and a grade of "C" or better
in CS 239.
CS 402. Introduction to Information System Security 3 credits. Offered summer.
This course provides an introduction to the design and management of operating systems and
networks, focusing on those aspects that affect information security. It provides students with the
skill or ability to design, execute and evaluate information system security procedures and
practices. This course does not satisfy any requirements for majors or minors in computer
science. Prerequisite: CS 139 or equivalent.
CS 403 Information Systems Security Management 1 credit.
This course covers the basic material needed to maintain an information system. Topics covered
include: granting final approval to operate, accreditation of the system and verifying compliance
with stated policies and procedures. This course does not satisfy any requirements for majors or
minors in Computer Science. Prerequisite: CS 402 or CS 457.
CS 404. Information System Security Administration 1 credit.
This course prepares a student to ensure information systems and networks are used securely; to
identify and report security incidents; to maintain configuration control of systems and software;
and to identify anomalies or integrity loopholes. This course does not satisfy and requirements
for majors or minors in Computer Science. Prerequisite: CS 402 or CS 457.
CS 405. Information System Security Operations 1 credit. Offered summer.
This course covers the basic material needed by information system security officers to protect
their information systems. Topics covered include: certification, accreditation, site security
CS Self-Study
64
policy, security policy enforcement and security reporting. This course does not satisfy any
requirements for majors or minors in computer science. Prerequisite: CS 402 or CS 457.
CS 406. Assessment of Secure Information Systems 1 credit. Offered summer.
This course considers the assessment of the technical and non-technical security features of an
information system in an operational configuration. Upon completion of the course, students
should be able to identify the assurance levels achieved in meeting all applicable security
policies, standards and requirements. This course does not satisfy any requirements for majors or
minors in computer science. Prerequisite: CS 402 or CS 457.
CS 430. Programming Languages 3 credits. Offered spring.
Several actual programming languages are studied in terms of the fundamental principles of
computer programming language design, including object-oriented programming, functional
programming, concurrent programming and logic programming. Prerequisites: CS 240 and CS
350.
CS 444. Artificial Intelligence 3 credits. Offered fall.
Students will study the history, premises, goals, social impact and philosophical implications of
artificial intelligence. Students will study heuristic algorithms for large state spaces and learn to
develop recursive and non-deterministic algorithms. Prerequisite: CS 240.
CS 446. Software Analysis and Design 3 credits. Offered spring.
Contemporary software analysis and design methods, tools, notations, techniques, processes,
principles and practices. Students solve analysis and design problems alone or in teams and
present their work to their peers and the instructor. Prerequisites: CS 240 and CS 345.
CS/ISAT 447. Interaction Design 3 credits. Offered fall.
Study of and practice with processes, principles, tools, models and techniques for designing
interactions between humans and digital products and systems. Topics include physiological and
psychological factors affecting interaction design, interaction design processes, interaction
models, styles, and paradigms, design notations and representations, prototyping, and interaction
design evaluation. Prerequisite: Junior standing.
CS/MATH 448-449. Numerical Mathematics and Computer Applications 3 credits each
semester.
Numerical solutions and error analysis of typical problems such as finding zeros of nonlinear
functions, solving systems of linear and nonlinear equations, interpolation, approximation,
integration, solving ordinary differential equations, optimization, and Monte Carlo methods.
Prerequisites for CS/MATH 448: MATH 237, MATH 300 and MATH 248. Prerequisites for CS/
MATH 449: CS/MATH 448 and MATH 336.
CS 450. Operating Systems 3 credits. Offered fall.
Systems programming and operating systems Network environments, windowing environments,
user interfaces. Memory management, process management, file system management and device
management. Prerequisite: CS 350.
CS Self-Study
65
CS/MATH 452. Design and Analysis of Algorithms 3 credits. Offered spring.
An introduction to the analysis, design and theory of algorithms. Algorithms studied will be
selected from searching, sorting and graph theory. Included are elements of counting, recurrence
relations, direct and indirect proofs, recursion, complexity classes, language theory, decidability
and undecidability. Prerequisites: CS/MATH 228 AND CS 240.
CS 454. Internship in Computer Science 1-3 credits. Offered summer.
An advanced course to give supervised practical experience in a professional computing
environment. May be taken multiple times for credit, but no more than three credits may be used
in the computer science program graduation requirements. Prerequisites: Junior standing, major
in computer science and permission of the instructor.
CS 457. Information Security 3 credits. Offered fall.
This course covers the basic issues of information system security. The roles of planning,
management, policies, procedures and personnel in protecting the confidentiality, integrity and
availability of information are described. Specific threats (malicious code, network attacks and
hostile content) and widely used countermeasures (access control, mechanisms, firewalls,
intrusion detection systems) are also discussed. Prerequisite: CS 450.
CS 458. Cyber Defense 3 credits. Offered spring.
A hands-on, lab-based learning experience in which the students engage in a series of mini
projects to perform security assessment, penetration testing and hardening of networked systems.
Students also participate in a cyber defense exercise. Prerequisites: CS 457 and CS 460.
CS/ISAT 460. TCP/IP Networks 3 credits. Offered fall .
An overview of Local Network hardware, LAN topology and design, and LAN protocols.
Includes installation and management of network operating systems and TCP/IP services
(address management, name management, file and print sharing, account management).
Prerequisite: CS 350 or CS/CIS 320 or equivalent.
CS/ISAT 461. Internetworking 3 credits. Offered spring.
Wide Area Network (WAN) and Metropolitan Area Network (MAN) design. Audio, voice, data
and TV transmission over ATM/B-ISDN networks. The SONET signal hierarchy and Q3
standard interface model. Network security. Performance analysis of a given network.
Prerequisite: CS/ISAT 460.
CS/ISAT 462. Network Applications Development 3 credits. Offered spring.
Design and implementation of network-based applications using languages and architectures
such as sockets, JAVA, TL1 and CORBA. Concepts in distributed processing, including
synchronization of interprocess communication and management of replicated data. Analysis of
performance issues related to distributed applications. Prerequisites: CS/ISAT 460 and either CS
239 or CIS 344.
CS Self-Study
66
CS/ISAT 463. Network Analysis and Design 3 credits. Offered spring.
In-depth introduction to the techniques and tools used to design and analyze computer and
telecommunications networks. Overview of issues related to network performance, including the
impact on cost, reliability and security. Prerequisites: CS/ISAT 460 and either CS 239 or ISAT
340.
CS/ISAT 464. Issues in the Telecommunications Business 3 credits. Offered spring.
Addresses complex business concepts and issues in the telecommunications industry. Explores
the interrelation of the economics of the telecommunications industry with ensuing social, ethical
and security issues. Discusses topics in product and service creation, marketing, customer service
and billing, and electronic commerce. Prerequisites: CIS 320, SMAD 356, and ISAT 340 or
equivalent.
CS 474. Database Design and Application 3 credits. Offered spring.
Students study database design and management with emphasis placed on data definition
languages, data manipulation languages, query languages and management of the database
environment. Prerequisite: CS 345, CS 274 or ISAT 340.
CS 475. Distributed Database Management 3 credits. Offered spring.
Students learn the concepts of client-server architectures and other aspects that arise in the design
of distributed database systems. Prerequisite: CS 474.
CS 476. Database Administration 3 credits. Offered spring.
Students learn to administer a database by manipulating physical and logical components of a
database management system. Topics include creation of an instance, managing of tables,
indexes, privileges, profiles and roles. Prerequisite: CS 474.
CS 480. Selected Topics in Computer Science 1-3 credits. Offered as demand warrants.
Topics in computer science which are of interest but not otherwise covered in the regular
computer science offerings of the department. Offered only with the approval of the department
head; may be repeated for credit when course content changes. Prerequisite: CS 239. Topics
selected may dictate further prerequisites; students should consult the instructor prior to enrolling
for course.
CS 482. Selected Topics in Information Security 1-3 credits. Offered spring.
Topics in information security. Offered only with the approval of the department head; may be
repeated for credit when course content changes. Prerequisite: CS 240 and CS 350. Topics
selected may dictate further prerequisites; students should consult the instructor prior to enrolling
for the course.
CS 488. Computer Graphics Applications 3 credits. Offered as demand warrants.
This course develops a computer graphics application package based on standard graphics
functions as well as attributes of a graphical user interface. It includes experience in applying
interactive computer graphics techniques to industrial problems. Prerequisites: CS 240 and CS
350.
CS Self-Study
67
CS 497. Independent Study 1-3 credits. Offered fall and spring.
An advanced course to give independent study experience under faculty supervision. May be
taken multiple times for credit, but no more than three credits may be used in the computer
science program graduation requirements. Prerequisites: Junior standing, major in computer
science and permission of the program coordinator.
CS 499. Honors 6 credits. Offered fall and spring.
Year course. See catalog section "Graduation with Honors."
CS Self-Study
68
Appendix 2: Alumni Surveys
The most recent Almuni Survey occurred from December 2010 through February 2011. Only ten
undergraduate respondents returned the survey. The results of the survey are shown below.
Describe your current employment status (check all that apply).
Answer
Count
Percent
Employed Full-time
Employed Part-time
Seeking Employment
14
0
1
100%
0%
7%
Student Teaching
0
0%
Please list the employment that best characterizes your current full‐time employment.
Employer or School Name
Raytheon BBN
Technologies
SPAWAR
Valley Automaton Inc.
SPARTA, Inc
Northrop Grumman
CGI Federal
Argon ST
Job Title or Subject/
Grade
City
Staff Engineer
Cambridge
MA
$76000
Washington
Luray
Centreville
Herndon
Fairfax
Fairfax
DC
VA
VA
VA
VA
VA
$81000
$35000
$67275
$62000
$75000
$72000
Richmond
VA
$67500
Reston
Norfolk
VA
VA
$58000
$41000
Fairfax
VA
$70000
Arlington
VA
$0
Computer Scientist
Network Engineer
Computer Engineer
Software Engineer
Consultant
Software Engineer
Information System
Riverfront Investment Group
Specialist
Sybase 365
NOC Engineer
Booz Allen Hamilton
Consultant
Senior Info. Systems
Mitor
Engineer
High Performance
IT Consultant
Technolgoies
CS Self-Study
State Gross Yearly Salary
69
How soon after graduation did you have your first full-time job?
Answer
Count
Percent
8
1
2
0
0
0
73%
9%
18%
0%
0%
0%
11
100%
I had a job when I graduated.
Within three months.
Four to six months.
Seven to twelve months.
Thirteen to eighteen months.
Longer than 18 months.
Total
Please fill in the following question about diversity (ethnic, racial religious, etc.).
Question
Very Somewhat Not very Not at all Responses
How diverse is your workplace?
How well prepared were you to
work in this environment?
4
7
1
0
12
11
1
0
0
12
6
6
0
0
12
How well did JMU prepare you
to work in this environment?
Describe you graduate school status?
Answer
Graduated from a graduate program
Currently enrolled full time
Currently enrolled part time
Have been accepted to attend next
semester
Do not plan to attend graduate school
Total
CS Self-Study
Count
Percent
1
0
3
8%
0%
23%
3
23%
6
46%
13
100%
70
Please fill in your graduate school information.
Name of School Degree
Field of Study
Completion
City
State
JMU
JMU
JMU
Carnegie Mellon
MS
MS
MS
MS
Secure Software Systems
Computer Science
Secure Software Systems
Software Engineering
2010
2010
2011
2012
Harrisonburg
Harrisonburg
Harrisonburg
Pittsburgh
VA
VA
VA
PA
Georgetown
MA
Computer Science
2010
Washington
DC
How likely would you be to recommend JMU to a colleague, friend, or relative.
Answer
Very Likely
Likely
Not likely
Total
Count
Percent
8
5
0
62%
38%
0%
13
100%
In reference to your CS major, please rate your level of satisfaction
with each of the following services using the scale shown.
Question
Availability of your CS major
advisor
Range of courses (broad enough
to provide you a solid
foundation)
Availability, space and
equipment provided in computer
labs
Opportunities for teamwork
Value of your advisor’s input in
making post-graduate plans for
your career or graduate/
professional study
CS Self-Study
Very
Dissatisfied Satisfied
Dissatisfied
Very
Satisfied
No Basis
Responses
to Judge
0
0
7
4
2
13
0
2
8
3
0
13
0
0
9
4
0
13
0
2
8
3
0
13
2
1
5
1
4
13
71
In the following areas, rate how well you were prepared for your
first job (or for further higher education) using the scale shown.
Very
Very
Inadequately Adequately
Inadequately
Adequately
Question
Ability to communicate
effectively
Understanding of, and
ability to demonstrate,
professional ethics
Analytical (problem
solving) skills
Mathematical skills
Ability to function
effectively as a team
member
No Basis
to Judge
Responses
0
1
7
5
0
13
0
0
6
7
0
13
0
0
4
9
0
13
0
0
12
1
0
13
0
1
5
7
0
13
Please rate how adequately you feel prepared for employment after having
completed the following CS coursework at JMU in the each of the following areas.
Very
Very
No Basis
Inadequately Adequately
Responses
Inadequately
Adequately to Judge
Application programming
0
0
5
8
0
13
Software engineering
1
0
5
7
0
13
Data structures
1
1
6
5
0
13
Operating systems
1
2
9
1
0
13
Computer Organization
1
1
8
3
0
13
Networking
0
1
7
5
0
13
Database systems
0
0
11
2
0
13
Question
Would you recommend this major to someone you know?
Answer
Count
Percent
Yes
No
6
0
100%
0%
6
100%
Total
Have you needed more formal education after JMU to perform your job acceptably?
CS Self-Study
Answer
Count
Percent
Yes
6
100%
72
No
Total
0
0%
6
100%
What aspect of your CS major has proven most valuable to you since graduation?
Security courses and networking courses
The multiple courses involving applications programming helped me learn the
fundamentals of the vast majority of the programming languages/paradigms I need for
my job.
I work in a job that requires many different skill sets ranging from basic network
troubleshooting to the programming of databases and HMI for Water Treatment Plants.
The curriculum was broad enough that I am able to do my job effectively. I also am
able to learn new concepts fairly quickly.
Most of the skills I regularly use for my job were learned through my elective classes
especially pertaining to threading, sockets, and getting comfortable with raw data
through hex editors.
Java programming and broad CS foundation skills and knowledge
What summary statement would you like to make about your experiences as a CS major?
Computer organization, databases, and operating systems are the weak areas in JMU's
CS program.
It was fun, and closer to reality that I thought it would be.
Great experience. Learned enough about a lot of things to make me effective at what I
do.
I'm glad I went to JMU for my undergraduate studies. The professors clearly cared
about the material they were teaching.
Gained practical CS skills related to professional duties
CS Self-Study
73
Appendix 3: Number of Declared Majors and Minors—A Four Year Retrospective
2007-08
2008-09
2009-10 2010-11
Majors
234
257
261
303
Minors
27
34
28
21
Appendix 4: Service Role of the Academic Unit—A Four Year Retrospective
2006-07 2007-08 2008-09 2009-10 2010-11
Enrollment (includes grad students)
Student:Faculty Ratio
Diverse Majors
Female Majors
Male Majors
1,262
8.23
22
16
1,754
10.65
26
26
1,692
12.75
43
31
1,751
14.2
48
35
1004*
N/A
59
42
202
208
226
226
261
* Fall only
CS Self-Study
74
Appendix 5: Academic Unit Budget Information—A Five Year Retrospective
2007-08
2008-09
2009-10
2010-11
2011-12
2,105,332 2,126,288 1,921,423 1,929,777 365,060*
Personnel Services Budget
Non-Personnel Services Budget
79,067
87,120
61,316
58,974
4,527*
*Actual expenditures listed as of September 2011
Estimated Budget Data for 2011-12:
Personnel Services = 2,014,698
Non-Personnel Services = 84,003
Appendix 6: External Support and Sponsored Research
Provided in a Separate Document
Appendix 7: Faculty Vitae
Provided in a Separate Document
CS Self-Study
75
Appendix 8: Equipment and Facilities
Facilities
The Computer Science Department is located on the east side of JMU's campus, on the second
floor of the CS-ISAT Building. The building was completed in 1996; the east side of the campus
(which consists of a group of modern, sand-colored buildings) will be completed shortly. Since
the east side of campus is on a hill, we have a beautiful view of the historic side of campus (and
it's bluestone buildings with red tile roofs).
Most of our courses are offered in the CS-ISAT Building with a few offered in the connected
HHS Building. The Department's Windows and Linux labs and the Department's networking lab
are all nearby.
Computer Forensics Lab
This lab (located in Room 231) is equipped with dual-boot Linux/Windows workstations, which
lets computer science students conduct forensic analyses of computer incidents, disk and
memory images, mobile phones, as well as malware binaries. The lab contains a variety of
workstations configured with open-source and commercial computer forensics software and
facilities to secure, store, and share digital evidence. Furthermore, the lab is equipped with
special hardware to analyze mobile devices and a number of computers that can be isolated from
the rest of the campus network and freely configured so that malicious code that is being
investigated can be contained.
Computer Science Program Development Lab
This lab (located in Room 248) is integral to the introductory programming classes as well as
supporting a number of the advanced Computer Science classes. This lab has 30 student
workstations grouped in pairs which allow for individual or pair programming. These
workstations run the RedHat Linux operating system. In addition to the student machines, there
is a dedicated teacher workstation connected to a projection system for demonstrations and other
classroom activities. The software contained on machines in this lab include general tools such
as Open Office and the Firefox web browser as well as several integrated development
environments(IDEs) such as Eclipse, Kate, and JGrasp which are used by students to develop
computer applications. The machines also run Visual Paradigm, a software development tool
used in a number of upper division CS courses. Students are provided with RedHat Linux to use
on their own personal computers so that they can duplicate the lab environment for work outside
of class.
From this lab, students may access network file storage that enables them to save the work that
they have done in the lab and access it from both on and off campus.
This lab is used by the two introductory courses (CS139 and CS239) on a regular basis with 2 lab
periods each week in addition to the 2 lecture days. All day Sunday and most evenings during the
week, the lab is staffed by teaching assistants who provide support to students working on their
labs and programming projects outside of class. Upper division classes, such as CS347 and
CS474 often use the lab for exercises to supplement the lecture content of the course.
CS Self-Study
76
Computer Science Software Engineering Lab
The Software Engineering Lab, located in Room 250, is equipped with about 30 workstations,
whiteboards, a projector, and other hardware for use by students interested in programming and
software engineering. Out-of-class it is used by students working on programming assignments,
projects, and research. In-class it is used for lectures/presentations, directed exercises and
experiments, and exams/assessments. The lab is configured to allow students to work alone, in
pairs (e.g., the so-called agile method known as pair programming), and in groups. The
workstations are equipped with a variety of specialized tools that support the activities of
programmers/software engineers at all levels, from beginning to advanced. This includes a
variety of integrated development environments (IDEs), programmers editors, unit testing tools,
unified modeling language (UML) tools, static analysis tools, debuggers, version control
systems, and graphical user interface (GUI) design tools. It also includes compilers for a wide
array of programming languages, libraries for scientific, engineering, and business applications,
and libraries for graphical and auditory processing.
The Software Engineering Lab is able to support the development of software for a wide variety
of platforms, including desktop/laptop computers, portable computers (i.e.g, pads and netbooks),
smart phones, embedded devices, and robots. It is also able to support the development of a
variety of different kinds of technical documentation, including documents that requires
mathematical typesetting (e.g., TeX, MathML), multimedia, and hypermedia. For course-related
assignments, the lab is equipped with a custom electronic submission system.
Upper division classes, such as CS240 and CS430 often use the lab for exercises to supplement
the lecture content of the course. Since this lab is physically located next door to the
Programming Development Lab, teaching assistants staffing the Program Development Lab, can
also support to students working in the Software Engineering lab.
Computer Science Systems Development Lab
This lab (located in Room 143) is designed to support low-level exploration of computer network
and operating system environments. It is equipped with workstations capable of running a variety
of operating systems; students are provided with copies of Redhat Linux and Windows operating
for use in the lab or on their own computers. The lab is designed to facilitate individual or group
work; workstations can be used as stand-alone systems, clustered in small networks, or attached
to a server farm.
The lab is used to experiment with network and operating system configurations. It also is used
to experiment with network communications in a variety of network topologies. The lab is
equipped with a variety of network communications equipment. Computers in this lab can be
isolated from the rest of the campus network and freely configured without the possibility that
they compromise computer operations outside the lab. Virtual machine software allows
experimentation to occur using actual hardware or in a virtual environment.
CS Self-Study
77
Computer Science Laboratory Support
This facility (Room 142) supports various lab operations. Up to 100 servers can be installed in
server racks to support the requirements of the Computer Science department. Additional space
and workbenches are provided for preparing and maintaining computer equipment.
High-Performance Computing Facility
The High-Performance Computing Facility at JMU has a variety of different systems. Most of
the facility's efforts in the area of vector processing involve Graphic Processing Units (GPUs).
The facility's "workhorses" are its four NVIDIA Tesla S1070 computing systems. An S1070
consists of 4 Tesla GPUs each of which has 240 cores (for a total of 960 cores). Each core
operates at about 1.4 GHz. Hence, each Tesla S1070 has a peak single precision floating point
performance of about 4 TFlops. The facility also has several multi-core/multi-processor
computing systems. The "workhorse" is a server with four quad-core Xeon CPUs and 128GB of
fast RAM and eight 150GB hard drives.
High-Resolution Visualization Facility
The High-Resolution Visualization and Animation Group consists of JMU students and faculty in
a wide variety of disciplines. What brings them together is an interest in and/or need for
visualization and animation systems with a resolution that is an order of magnitude greater than
that provided by traditional graphics workstation. The facility's "work horse" is a cluster of
graphic workstations. The 32 displays are tiled to create a single presentation surface with about
50 million pixels.
CS Self-Study
78
Appendix 9: Summary of Assessment Data
Objectives
Objectives of the Computer Science B.S. program were last comprehensively revised at a faculty
retreat in August 2004, following the report of an external review team earlier that year. (A
similar retreat scheduled for August 2011 will undertake a substantive re-evaluation of the
program’s goals and objectives.) Each year subsequently they have been reviewed, particularly
for their mapping onto specific courses within the departmental offerings. Clarification to the
objectives are made in this report, based on the last year’s APT feedback addressing those
objectives that are stated in terms of what students will “understand.”
The programmatic objectives are:
1. Communications: Students can express themselves clearly on technical matters orally and
in writing. They can communicate effectively with individuals that do not have a
technical background
2. Professional and Ethical Issues: Students can provide an overview of the professional and
ethical challenges faced by individuals and organizations in the information age.
3. Programming: Students can develop computer programs that solve specific problems
using an object oriented programming language.
4. Software Engineering: Students can explain the software development lifecycle, software
project management, development tools and methods, software quality assurance and the
challenges of producing quality software products.
5. Problem Solving Methods: Students can apply one or more problem solving methods in
defining solution requirements and in designing, coding, testing, and documenting a
software solution.
6. Data structures and Algorithms: Students understand fundamental data structures and
algorithms and can use them in designing and developing programs. (“Understanding” is
demonstrated by applying relevant principles to specific problems or situations.)
7. Mathematical Skills: Students can apply mathematical principles of discrete mathematics,
statistics and calculus in defining or understanding computer software.
8. Operating Systems: Students can explain the concepts and principles of multiple user
operating systems.
9. Computer Organization: Students understand the basic concepts of computer organization
and hardware operation. (“Understanding” is demonstrated by applying relevant
principles to specific problems or situations.)
10. Networking: Students understand the fundamental concepts, standards, and principles of
networking and can use appropriate network programming techniques to implement interprocess communications. (“Understanding” is demonstrated by applying relevant
principles to specific problems or situations.)
CS Self-Study
79
11. Database Systems: Students can explain the types of physical storage and access
methods; create data models and data definitions; use query languages effectively;
explain dependencies, decomposition and normalization; and design databases to recover
from failures, maintain consistent data, and support concurrent access.
12. Teamwork: Students can work effectively in a team to develop a software product.
Course/Learning Experiences
The programmatic objectives have been mapped onto the courses offered within the program as
shown in the table below.
Objectives
Required Courses/ Experiences
1. Communications: Students can express
themselves clearly on technical matters
orally and in writing. They can communicate
effectively with individuals that do not have
a technical background.
Required: TSC 210, CS 345, CS 430, CS 474
2. Professional and Ethical Issues: Students
can provide an overview of the professional
and ethical challenges faced by individuals
and organizations in the information age.
Required: CS 110 (Introduction to Computer
Professionalism and Ethics)
Elective: CS 349
CS 345 (repeatedly deals with issues in
reference to the Software Engineering Code
of Ethics and Professional Practice)
CS474
3. Programming: Students can develop
computer programs that solve specific
problems using an object oriented
programming language.
Required: CS 139, CS 239, CS 240, CS 350,
CS430, CS474
4. Software Engineering: Students can
explain the software development lifecycle,
software project management, development
tools and methods, software quality
assurance and the challenges of producing
quality software products.
Required: CS 345
CS Self-Study
Electives: CS 349, CS 462
(Electives: CS 349, CS 446, CS 462)
80
5. Problem Solving Methods: Students can
apply one or more problem solving methods
in defining solution requirements and in
designing, coding, testing, and documenting
a software solution.
Required: CS 239, CS 345, (semester-long
team project), CS 240,CS 430
6. Data structures and Algorithms: Students
understand fundamental data structures and
algorithms and can use them in designing
and developing programs.
Required: CS 240, CS 350,CS 430
7. Mathematical Skills: Students can apply
mathematical principles of discrete
mathematics, statistics and calculus in
defining or understanding computer
software.
Required: CS 227,CS 228; Math 205, 231, or
235; Math 220 or Math 318, CS430
8. Operating Systems: Students can explain
the concepts and principles of multiple user
operating systems.
Required: CS 450, CS 460
9. Computer Organization: Students
understand the basic concepts of computer
organization and hardware operation.
Required: CS 350
10. Networking: Students understand the
fundamental concepts, standards, and
principles of networking and can use
appropriate network programming
techniques to implement inter-process
communications.
Required: CS 460
11. Database Systems: Students can explain
the types of physical storage and access
methods; create data models and data
definitions; use query languages effectively;
explain dependencies, decomposition and
normalization; and design databases to
recover from failures, maintain consistent
data, and support concurrent access.
Required: CS 474
CS Self-Study
(Electives: CS 347, CS 349, CS 446, CS
447)
(Electives: CS 349, CS 462)
(Elective: CS 457, Forensics)
(Elective: CS 461, CS 462, CS 463, CS 464)
(Elective: CS 347)
81
12. Teamwork: Students can work effectively
in a team to develop a software product.
Required: CS 345 (semester-long team
project), CS 350, CS 460 CS 474
(Elective: CS 349)
Evaluation/Assessment Methods
Assessment Mechanisms—Individual courses use some or all of the following assessment
mechanisms:
• Examinations and quizzes
• Programming assignments (group and individual)
• Projects (group and individual)
• Homework assignments
• Laboratory exercises
• Self and group assessment surveys
• Directed in-class activities
• Course evaluations by students
In addition, the Department uses the following assessment mechanisms:
• Exit interviews
• Senior Assessment Surveys
• Standardized tests
Independent external assessment mechanisms include the following:
• Periodic JMU Academic Program Reviews
• Class visits and interviews with students by the Computer Science External Advisory
Council
• Alumni Surveys
Assessment mechanisms in 2010-2011 included the following: examinations and course
evaluations by students, senior exit interviews and assessment surveys, alumni surveys, and
recommendations from the CS External Advisory Council.Mapping Course-Based Mechanisms
to Programmatic Objectives
Mapping Course Objectives to Program Objectives
Mechanisms for evaluating different objectives are included in a variety of different required
courses and elective courses (note elective courses are included for the benefit of the Department
to see where else in the curriculum the objectives are also addressed). The following chart
provides a mapping between them.
CS Self-Study
82
Objectives
Method(s) to Assess Objective
1. Communications: Students can express
themselves clearly on technical matters
orally and in writing. They can communicate
effectively with individuals that do not have
a technical background.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Group Project Evaluations
Group Assessment surveys
Course Evaluations
CSEAC Interviews with students
CSEAC Visits to Classes
2. Professional and Ethical Issues: Students
can provide an overview of the professional
and ethical challenges faced by individuals
and organizations in the information age.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course evaluations
CSEAC Interviews with students
CSEAC Visits to Classes
3. Programming: Students can develop
computer programs that solve specific
problems using an object oriented
programming language.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Examinations and Quizzes
Evaluation of Programming assignments
Course Evaluations
ETS CS Field Test
CSEAC Interviews with students
CSEAC Visits to Classes
CS Self-Study
83
4. Software Engineering: Students can
explain the software development lifecycle,
software project management, development
tools and methods, software quality
assurance and the challenges of producing
quality software products.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Examinations and Quizzes
Course Evaluations
Group Project Evaluations
Group assessment surveys
ETS CS Field Test to Sophomores
ETS CS Field Test to Seniors
CSEAC Interviews with students
CSEAC Visits to Classes
5. Problem Solving Methods: Students can
apply one or more problem solving methods
in defining solution requirements and in
designing, coding, testing, and documenting
a software solution.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Examinations and Quizzes
Course Evaluations
ETS CS Field Test to Sophomores
ETS CS Field Test to Seniors
CSEAC Interviews with students
CSEAC Visits to Classes
CS Self-Study
84
6. Data structures and Algorithms: Students
understand fundamental data structures and
algorithms and can use them in designing
and developing programs.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations and quizzes
Evaluation of Programming assignments
Course evaluations
ETS CS Field Test to Sophomores
ETS CS Field Test to Seniors
CSEAC Interviews with Students
CSEAC Visits to Classes
7. Mathematical Skills: Students can apply
mathematical principles of discrete
mathematics, statistics and calculus in
defining or understanding computer
software.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations and Quizzes
Course Evaluations
ETS CS Field Test to Sophomores
ETS CS Field Test to Seniors
CSEAC Interviews with Students
CSEAC Visits to Classes
CS Self-Study
85
8. Operating Systems: Students can explain
the concepts and principles of multiple user
operating systems.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations And Quizzes
Evaluations Of Programming Assignments
Course Evaluations
ETS CS Field Test To Seniors
CSEAC Interviews With Students
CSEAC Visits to Classes
9. Computer Organization: Students
understand the basic concepts of computer
organization and hardware operation.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations And Quizzes
Evaluation Of Programming Assignments
Course Evaluations
ETS CS Field Test To Sophomores
ETS CS Field Test To Seniors
CSEAC Interviews With Students
CSEAC Visits to Classes
CS Self-Study
86
10. Networking: Students understand the
fundamental concepts, standards, and
principles of networking and can use
appropriate network programming
techniques to implement inter-process
communications.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations And Quizzes
Evaluation Of Programming Assignments
Course Evaluations
ETS CS Field Test To Seniors
CSEAC Interviews With Students
CSEAC Visits to Classes
11. Database Systems: Students can explain
the types of physical storage and access
methods; create data models and data
definitions; use query languages effectively;
explain dependencies, decomposition and
normalization; and design databases to
recover from failures, maintain consistent
data, and support concurrent access.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Course Examinations And Quizzes
Evaluation Of Programming Assignments
Course Evaluations
ETS CS Field Test To Seniors
CSEAC Interviews With Students
CSEAC Visits to Classes
12. Teamwork: Students can work effectively
in a team to develop a software product.
Senior Assessment Surveys
Senior Exit Interviews
Alumni Surveys
Group Project Evaluations
Group Assessment Surveys
Course Evaluations
CSEAC Interviews With Students
CSEAC Visits to Classes
CS Self-Study
87
Alumni Survey
A revised alumni survey was conducted from December 2010 through February 2011. A report of
survey results appears as Appendix 2.
Major Field Test
On Assessment Day the past several years CS majors have taken the Educational Testing
Service’s Major Field Test in Computer Science.
The following tables summarize test result.
Raw Scores Out of 200
Percent Correct, by
Category
Mean
Std. Dev.
Programming
Fundamentals
Discrete Structures
and Algorithms
Architecture, OS,
Nets, Databases
2007 Sophomores
n = 53
2009 Seniors
n = 66
137
8
144
11
42
52
28
28
29
38
ETS Major Field Test in CS Results, Class of 2009
Raw Scores Out of 200
Percent Correct, by
Category
Mean
Std. Dev.
Programming
Fundamentals
Discrete Structures
and Algorithms
Architecture, OS,
Nets, Databases
2008 Sophomores
n = 24
2010 Seniors
n = 47
143
10
146
12
53
54
31
41
31
41
ETS Major Field Test in CS Results, Class of 2010
Student course ratings at the end of each semester have been tracked for a number of years, as
shown.
CS Self-Study
88
Department-Wide Student End-of-Semester Ratings
Instructor Ratings
Course Ratings
mean
std. dev.
mean
std. dev.
Fall 2009
(566 evals)
9 items
4.22
0.93
8 items
3.94
1.05
global
4.22
0.93
global
3.96
0.97
Spring 2009
(415 evals)
9 items
4.04
1.14
8 items
3.88
1.12
global
3.98
1.12
global
3.85
1.12
Fall 2008
(555 evals)
9 items
4.23
1.00
8 items
4.03
1.03
global
4.21
0.99
global
4.09
0.92
Spring 2008
(367 evals)
9 items
4.33
0.87
—
—
—
global
4.32
0.91
—
—
—
Fall 2006
(450 evals)
9 items
4.03
1.10
8 items
3.88
1.12
global
3.97
1.12
global
3.88
1.11
Spring 2005
(414 evals)
9 items
4.17
0.97
8 items
3.87
1.05
global
4.14
0.96
global
3.95
1.03
Fall 2004
(529 evals)
9 items
4.11
1.03
—
—
—
global
4.07
1.04
—
—
—
Spring 2002
(480 evals)
9 items
3.84
1.12
8 items
3.53
1.13
global
3.84
1.13
global
3.62
1.15
Ratings are on a 5-point scale with higher values being better.
CS Self-Study
89
Senior Exit Survey Results
Participants
3 Year Overall
Mean Mean
04-05
05-06
06-07
07-08
08-09
09-10
10-11
22
13
43
42
34
49
50
04-05
05-06
06-07
07-08
08-09
09-10
10-1l
Male
82%
85%
86%
88%
94%
94%
94%
88%
Female
18%
15%
14%
10%
6%
6%
6%
12%
04-05
05-06
06-07
07-08
08-09
09-10
10-11
14%
8%
33%
36%
62%
40%
22%
44
36
Sex
3 Year Overall
Mean Mean
Transfer student?
Yes
3 Year Overall
Mean Mean
41%
31%
Expectations clearly stated in syllabi?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
87%
77%
91%
95%
91%
96%
96%
3 Year Overall
Mean Mean
94%
90%
Knowledge and skills learned in lab sufficient to complement required lectures?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
82%
100%
93%
78%
88%
84%
94%
3 Year Overall
Mean Mean
89%
88%
Lab instructional facilities adequate?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
91%
92%
91%
90%
94%
84%
94%
3 Year Overall
Mean Mean
91%
91%
Lab assistants knowledgeable and helpful?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
91%
92%
81%
100%
100%
91%
97%
09-10
10-11
3 Year Overall
Mean Mean
96%
93%
Should there be an optional senior project?
04-05
CS Self-Study
05-06
06-07
07-08
08-09
3 Year Overall
Mean Mean
90
Yes
91%
91%
86%
83%
94%
69%
38%
67%
79%
Are you satisfied with the level and amount of team work (group) experience?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
95%
84%
79%
81%
81%
51%
78%
3 Year Overall
Mean Mean
70%
78%
Based on experience gained on group projects, do you think you are able to
function effectively on multi-disciplinary teams?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
100%
100%
95%
90%
97%
71%
88%
3 Year Overall
Mean Mean
85%
92%
Are you satisfied with the level and amount of exposure to technical writing in the
CS curriculum?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
70%
62%
32%
71%
84%
85%
78%
3 Year Overall
Mean Mean
82%
69%
Are you satisfied with the level and amount of exposure to effective oral
communication in the curriculum?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
67%
12%
85%
77%
79%
41%
82%
3 Year Overall
Mean Mean
67%
63%
Are you satisfied with the level of academic and career counseling you received
from the CS Department?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
52%
50%
80%
74%
88%
86%
82%
3 Year Overall
Mean Mean
85%
73%
Is your academic advisor accessible?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
67%
80%
95%
88%
100%
92%
92%
3 Year Overall
Mean Mean
95%
88%
Do you think your education in CS has prepared you for the task required of an
effective entry level employee?
Yes
CS Self-Study
04-05
05-06
06-07
07-08
08-09
09-10
10-11
90%
92%
95%
95%
87%
96%
94%
3 Year Overall
Mean Mean
92%
93%
91
Has studying CS helped you gain the skill necessary to recognize, assess, and make
ethical professional decisions?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
79%
91%
92%
92%
91%
96%
85%
3 Year Overall
Mean Mean
91%
89%
Has studying CS prepared you to continue to educate yourself in areas important
to you?
Yes
04-05
05-06
06-07
07-08
08-09
09-10
10-11
85%
100%
95%
100%
100%
100%
96%
3 Year Overall
Mean Mean
99%
97%
Appendix 10: Annual Reports
Provided in a Separate Document
Appendix 11: Course Syllabi
Provided in a Separate Document
Appendix 12: Reports Related to External Accreditation
The Computer Science Department is not externally accredited.
CS Self-Study
92
Appendix 13: University Planning Database Information about Program Objectives
Short Description
Objective
Critique and modify the
mission of the
undergraduate Computer
Science curriculum
During this process, an emphasis will be placed on a quality
Computer Science curriculum and careful consideration of the
impact on resources.
Explore and employ new
assessment strategies
Explore and employ new assessment strategies for both
Assessment Day and the Alumni surveys. Our assessment
considerations will emphasize the ability to use the gathered data
to analyze Computer Science education and experience.
Revitalize the CS oncampus graduate
program.
Revitalize the CS on-campus graduate program in the area of
Forensics. In three years build enough foundation to determine
success. The area of Forensics is in high demand in both industry
and research. The major desired result of an emphasis change
from Secure Software Systems to Forensics is higher enrollment
in the graduate program.
Develop publicized
activities for discussion of
Computer Science related
topics
Publicized activities to pursue include a seminar series with
industry, faculty and student participation, industry panel
discussions, and research presentations from students and
faculty.
Develop laboratory space
needs and equipment
needs plan
Develop a plan of lab space needs along with equipment needs
to deliver the CS curriculum and support student and faculty
research. By the end of the year, understand the use of our
current equipment and the longevity of it use.
Explore the development
of a non-major CS course
to increase accessibility to
STEM education.
Developing this course will enable students who may be
interested in majoring in CS or related fields the opportunity to
explore the major. Considering this course for the science
requirement in the IDLS major will also be explored.
Incorporate the role of
computing environmental
stewardship and
sustainability in the CS
curriculum
Computing relies on energy resources and incorporating the
material of power consumption of different processing platforms
into the CS curriculum will enhance the curriculum as well as
inform students of the impact of computing on the environment.
Also, incorporating issues related to conserving resources and
recycling based on computing activities into the CS curriculum
will enhance the awareness of students.
CS Self-Study
93
Investigate synergies
between STEM
disciplines and CS
The potential for collaboration between the STEM disciplines
and CS is high. The department's first step is to investigate
possible connections in curriculum and research. Both faculty
and students could benefit once connections are formed. The
measurable outcome of this year will be identifying possible
synergies.
Appendix 14: University Undergraduate and Graduate Catalogs
Provided in a Separate Document
CS Self-Study
94
Fly UP