Graduate Catalog

2012 – 2013

Office of Graduate Studies and Extended Education
McKelvie Hall, 102 W. Rosedale Avenue
West Chester University
West Chester, PA 19383
Phone: 610-436-2943
Fax: 610-436-2763

Revised June 2018

Computer Science

25 University Avenue, Room 150
West Chester University
West Chester, PA 19383
Dr. Fabrey, Chairperson
Dr. Agah, Assistant Chairperson and Graduate Coordinator

Professors [top]

Richard Epstein, Ph.D., Temple University
James D. Fabrey, Ph.D., Massachusetts Institute of Technology

Associate Professors

Afrand Agah, Ph.D., University of Texas at Arlington
Robert Kline, Ph.D., Washington University
Bin Lu, Ph.D., Texas A&M University
Richard Wyatt, Ph.D., University of California, Berkeley
Cheer-Sun D. Yang, Ph.D., University of Delaware
Zhen Jiang, Ph.D., Florida Atlantic University

Assistant Professor

Xiaojun Ruan, Ph.D., Auburn University

Programs of Study [top]

The department offers a master of science degree as well as a number of graduate professional development certificates. The master of science is intended for those who have a bachelor's degree in computer science or related field. The professional development certificates are intended for those who would like to obtain certification in certain specific areas without having to undertake the preparatory work for a master's degree. A special sequence of prerequisite courses can be taken toward entry into the certificate programs.

Master of Science in Computer Science

The purpose of this program is to provide its graduates with the intellectual and practical tools that they will need either to pursue careers as professional computer scientists in industry or to pursue a doctor's degree in computer science at a doctoral-granting institution. The curriculum is designed with three goals in mind:

  1. A solid foundation in the fundamental principles of computer science (the core).
  2. Exposure to a variety of subject areas (the 500-level electives).
  3. Exposure to research topics of current interest and to provide in-depth knowledge of several areas (the 600-level courses).

Admission Requirements

Applicants for the master of science program in computer science must satisfy the general graduate admission requirements of the University. Further, applicants should possess an undergraduate degree in computer science or an equivalent degree. An applicant who does not have an undergraduate degree in computer science or the equivalent may, however, apply for admission into the certificate program, which is an 18-credit program designed to give students a broad knowledge of standard topics in computer science.

Applicants also must submit scores for the general section of the Graduate Record Examination, unless they have an earned master's degree. Other circumstances may apply.

A TOEFL score of 550 is required for non-native speakers only. Three letters of recommendation also are required of all applicants.

Degree Requirements [top]

A student must take a total of 33 semester hours from the following courses (subject to the stipulations listed below):

Curriculum (33 semester hours)

  1. All four core courses (12 semester hours)
    CSC 520, 530, 540, and 560
  2. At least four 500-level electives (at least 12 semester hours)
    Chosen from the following:
    CSC 525, 535, 545, 555, 565, 570, 573, 575, 581, 582, 583, 584, 585, 586, 587, 588, 589
  3. At least two 600-level courses (at least 6 semester hours)
    Chosen from the following:
    CSC 600, 603, 604, 605, 610, 620 (see stipulation #3 below)


  1. A student must complete the four core courses within the first six courses taken.
  2. All core courses must be completed before a student can take a 600-level course.
  3. The advanced seminar courses (CSC 600, 603, 604) offer a variety of advanced topics in computer science. A student must take at least one of these courses and not more than two.
  4. A student who elects to do a master's thesis must take CSC 610 (independent research) and CSC 620 (thesis). CSC 610 may count for credit towards the degree only once.

Thesis Options

Independent Research (CSC 610)
The student may work in one of three directions for this course:

  1. Master's thesis preparation: After consulting with a faculty adviser, the student will conduct a comprehensive literature search in a research area, write a detailed report on the current state of the art in that area, and develop a thesis proposal.
  2. Individual project: The student will work on a substantial programming project throughout the semester. The student will be expected to do sufficient background research and then design, as needed, all the data structures, flow of control, and so forth, required for implementation.
  3. Team project: The student will be involved in an ambitious software development project with at least one other student under the guidance of the adviser. This course emphasizes the development of those capabilities that are considered especially important in the practical world of computing, such as written and oral communications skills and the ability to work as part of a team.

Thesis (CSC 620)
The student is to carry out the research proposal developed in CSC 610. At the completion of the project, the student must submit a bound manuscript that meets the approval of the graduate committee.

Professional Development Certificates

The department offers three, 18-credit graduate certificates (consisting of six courses each):

  • Computer Security (IA)
  • Information Systems
  • Web Technology

All the computer science courses (CSC) listed can be counted towards the master's degree program except CSC 515.

A student who wishes to enroll in one of these certificate programs needs to hold a bachelor's degree (in any subject area) and needs to have successfully completed an undergraduate data structures course using an object-oriented programming language (like C++ or Java) - the equivalent of West Chester University's undergraduate course, CSC 241 Data Structures and Algorithms. Alternatively, a student can take the following two courses in order to satisfy the certificate program prerequisites: CSC 512 and CSC 516.

Certificate in Computer Security (Information Assurance) (18 semester hours)

Students must take six of the following courses: CSC 525, 535, 555, 583, 586, 588, 603; CRJ 555.

Important information about the educational debt, earnings, and completion rates of students who attended the Certificate in Computer Security program.

Certificate in Information Systems (18 semester hours)

Students must take six courses. Students must choose at least four of the following courses: CSC 545, 555, 582, 586, 589. At most two of the courses must come from the following: STA 511 and MIS 501 or TEC 501 (not both).

Important information about the educational debt, earnings, and completion rates of students who attended the Certificate in Information Systems program.

Certificate in Web Technology (18 semester hours)

Students must take six of the following courses: CSC 515, 535, 545, 584, 585, 587, 588, 604.

Important information about the educational debt, earnings, and completion rates of students who attended the Certificate in Web Technology program.

Course Descriptions [top]

Computer Science
Symbol: CSC

CSC 512 - CSC 517 may not be used for credit in the master's degree program.

512 Computer Programming I (3) The principles of algorithmic problem solving are introduced using Java language. This course teaches programming techniques which involve elementary data and control structures.

513 Computer Programming II (3) This course further develops the topics started in Computer Programming I with a strong emphasis on software issues and object-oriented program design. PREREQ: CSC 512.

514 Computer Organization (3) This course introduces students to the basics of computer hardware design, including digital logic and hardware components. Assembly-level programming is taught as a tool for understanding how it is used by compilers of high-level languages.

515 Introduction to Web Development (3) This course covers Web site design and programming issues. It develops and uses the PHP language and MySQL database for server-side programming and information storage/retrieval. The JavaScript language is used for client-side programming.

516 Introduction to Data Structures and Algorithms (3) This course introduces the definitions, implementations, and applications of the most basic data structures used in computer science. The concept of abstract data type is introduced and reinforced by the object concept of Java. PREREQ: CSC 512.

517 Programming Paradigms (3) This course is designed to develop students' understanding of the nature of programming languages and to enhance their programming skills. The approach is more formal than in a beginning course and emphasizes both the general features of languages and sound problem-solving methods. PREREQ: CSC 512.

520 Foundations of Computer Science (3) This course offers an advanced treatment of many of the theoretical areas underlying other computer science subjects.

525 Operating Systems (3) This course covers the basic features of operating systems. Examples will be drawn from UNIX and other operating systems. This course includes an intensive study of the UNIX operating system by way of the UNIX kernel commands and utilities.

530 Data Structures (3) This course builds on rudimentary understanding of linked structures and develops complex data structures such as trees, hash tables, graphs, etc. It also introduces the basics of asymptotic analysis of running time and space in order to provide the justification for various data structures.

535 Networks and Data Communications (3) This course provides in-depth studies of various aspects of modern telecommunication systems such as network design, network implementation, serial port communications, and user interfaces.

540 Programming Languages (3) This course introduces the theoretical and practical foundations of programming languages from the point of view of design and implementation.

545 Database System Concepts (3) This course emphasizes recent technological advances in database management systems. The course centers around data models and languages for those data models. Special attention is paid to relational and object-oriented data models and systems which implement these. PREREQ: CSC 520.

555 Software Engineering (3) This course emphasizes important topics in software engineering from an object-oriented point of view (as opposed to the older functional, or structural analysis approach).

560 Analysis of Algorithms (3) This course introduces the methods to analyze the efficiency of computer algorithms in terms of their use of both space and time. Algorithmic design techniques, such as divide and conquer, greedy methods, and dynamic programming are illustrated throughout the course. The theory of NP-completeness and tractability is introduced. PREREQ: CSC 520.

565 Compiler Design (3) An in-depth study of the principles and design aspects of programming language translation. Students will design and implement a compiler using standard UNIX-based compiler tools for a small but representative language. PREREQ: CSC 520.

570 Computer Architecture (3) This course will study the methodology for design of components and interfaces in a uniprocessor computer. Various architectures/machine languages are compared, and one is studied in depth.

573 Graphics and User Interfaces (3) This course covers the basic aspects of generating and transforming computer graphical images. PREREQ: Linear algebra background.

575 Artificial Intelligence (3) Artificial Intelligence (AI) aims to reproduce or simulate the intelligent capacities of human beings such as forming plans of action and conversing in English. This course will combine theoretical, practical, and programming aspects of AI. Common Lisp will be used for programming projects. PREREQ: CSC 520.

581 Topics in Computer Science (3) This course will allow instructors to teach a 500-level (not research-oriented) course in a computer science topic not specified in the current course list. Different topics will be taught as different sections of this course. PREREQ: To be determined by topic.

582 Topics in Information Systems (3) A survey of topics in information systems reflecting the current technological developments and research interests.

583 Topics in Computer Security (3) A survey of topics in computer security reflecting current technological developments and research interests in the field.

584 Topics in Web Technology (3) Course content will vary each semester based on technological developments in the field and the instructor's scholarly interests, with the goal of giving students a broad exposure to important topics in Web technology.

585 User Interface in Java (3) This course teaches essential features of graphical user interface (GUI) creation using the Java language. Additionally, the GUI projects are integrated with an SQL database using Java JDBC programming.

586 System Administration and Security (3) This course is a hands-on study of operating system administration essentials with a focus on systems security and time in the lab. Additionally, various script languages are taught to provide a basis for understanding and extending the system capabilities.

587 Web Services Using XML and SOAP (3) Web services are offered by one application to another via the World Wide Web, and this course explores the concepts and the Web-service architectures. The focus is on Java 2 EE programming, extensible market-up language (XML), and simple object access protocol (SOAP). Java is the main programming language used, but an understanding of C++ will suffice. Topics include concepts on Web services, interactive Web application technology, XML, XML-RPC, and XML-SOAP.

588 Wireless Programming and Security (3) This course provides an overview of wireless networking principles and technologies from the computer science major's viewpoint. This course cannot cover all wireless communications but will focus on the fundamentals and principles: the major differences between wired networks and wireless networks, protocol stacks of wireless networks, wireless data services, and security issues.

589 UML and Pattern Design (3) The course content will vary each semester based on technological developments in the field and the instructor's scholarly interests, with the goal of giving students a broad exposure to important topics in UML, which is language that helps to specify, visualize, and document the software system.

600 Advanced Seminar (3) This research-oriented course will investigate an advanced and specialized topic determined by faculty and student interest. PREREQ: Completion of 18 graduate credits including the core courses.

603 Advanced Seminar in Security (3) An in-depth investigation into specific areas of computer security reflecting research interests and significant technological developments in the field.

604 Advanced Seminar in Web Technology (3) Course content will vary each semester based on technological developments in the field and the instructor's scholarly interests, with the goal of giving students an in-depth exposure to research topics in Web technology.

605 Internship in Computer Science (3) Provides the student with professional development and work experiences in the computer science field. PREREQ: Successful completion of the four core courses in the M.S. computer science program: CSC 520, 530, 540, 560.

610 Independent Research (3) The student may work in one of three directions: thesis, individual project, or team project. (See "Thesis Options" above.) PREREQ: The agreement of the faculty member to act as an adviser.

620 Thesis (3) A continuation of Independent Research. (See "Thesis Options" above.) PREREQ: The permission of the thesis adviser, and approval of the thesis proposal by the computer science graduate committee.