2013 – 2014
Office of Graduate Studies and Extended Education
McKelvie Hall, 102 W. Rosedale Avenue
West Chester University
West Chester, PA 19383
Revised May 2013
25 University Avenue, Room 150
West Chester University
West Chester, PA 19383
Dr. Fabrey, Chairperson
Dr. Agah, Assistant Chairperson and Graduate Coordinator
Richard Epstein, Ph.D., Temple University
James D. Fabrey, Ph.D., Massachusetts Institute of Technology
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
Richard Burns, Ph.D., University of Delaware
Xiaojun Ruan, Ph.D., Auburn University
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.
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:
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.
A student must take a total of 33 semester hours from the following courses (subject to the stipulations listed below):
Independent Research (CSC 610)
The student may work in one of three directions for this course:
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.
The department offers three, 18-credit graduate certificates (consisting of six courses each):
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.
Students must take six of the following courses: CSC 525, 535, 555, 583, 586, 588, 603; CRJ 555.
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).
Students must take six of the following courses: CSC 515, 535, 545, 584, 585, 587, 588, 604.
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.
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.
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.