Department of Computer Science

College of the Sciences and Mathematics

25 University Avenue, Room 150
West Chester University
West Chester, PA 19383
610-436-2204
Department of Computer Science
Dr. Fabrey, Chairperson
Dr. Agah, Assistant Chairperson and Graduate Coordinator

Programs of Study

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).

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 512 CSC 515CSC 516

Master's Program in Computer Science

Certificates in Computer Science

All applicants to one of West Chester University’s graduate programs will be held to the graduate admissions requirements. When applicable, additional requirements for admission into specific department program(s) may be listed below.

Master of Science in Computer Science

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.

Three letters of recommendation also are required of all applicants.

Applicants also must submit scores for the general section of the Graduate Record Examination. Other circumstances may apply.

A TOEFL score of 550 on the computer based exam or 80 on the internet based exam is required for non-native speakers only.

Certificate Programs

In addition to the application, goals statement, and transcripts, certificate applicants are required to submit two letters of recommendation.

A TOEFL score of 550 on the computer based exam or 80 on the internet based exam is required for non-native speakers only.

All students in graduate programs are held to the academic policies and procedures outlined in the graduate catalog. When applicable, additional policies for specific department programs(s) may be listed below.

Prerequisites for Professional Development Certificates

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 the following two courses in order to satisfy the certificate program prerequisites: CSC 512 and CSC 516.  Students are encouraged to take these courses at West Chester University.

Professors

Richard G. Epstein (1991)

B.A., George Washington University; M.S.E., University of Pennsylvania; Ph.D., Temple University

James D. Fabrey (1975)

Chairperson, Computer Science

A.B., Cornell University; Ph.D., Massachusetts Institute of Technology

Associate Professors

Afrand Agah (2006)

Graduate Coordinator

Assistant Chairperson, Computer Science

B.S., Tehran Poly-Technique; M.S., Kansas State University; Ph.D., University of Texas at Arlington

Zhen Jiang (2002)

M.S., University of Reading; Ph.D., Temple University

Robert M. Kline (1991)

B.A., Millersville University; Ph.D., Washington University

Bin Lu (2005)

B.S., M.S., Harbin Institute of Technology (China); Ph.D., Texas A&M University

Richard W. Wyatt (1989)

B.A., B.S., M.A., University of Melbourne; Ph.D., University of California, Berkeley; M.Sc., State University of New York at Buffalo

Cheer-Sun D. Yang (2000)

B.S., M.B.A., Tamkang University; M.S., Kansas State University; Ph.D., University of Delaware

Assistant Professors

Richard Burns (2012)

B.A., Saint Joseph's University; M.A., Ph.D., University of Delaware

Liu Cui (2016)

BS Northwestern Polytechnical University Xi'an China; MS Ohio University; PhD University of Pittsburgh

Xiaojun Ruan (2011)

B.S., Shandong University (China); Ph.D., Auburn University

How to Read Course Descriptions

CSC

CSC 512. Computer Programming I. 3 Credits.

The principles of algorithmic problem solving are introduced using the Java language. This course teaches programming techniques which involve elementary data and control structures.
Typically offered in Fall.

CSC 515. Introduction to Web Development. 3 Credits.

This course covers website 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. Offered every spring.
Typically offered in Fall & Spring.

CSC 516. Introduction to Data Structures and Algorithms. 3 Credits.

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 C++.
Pre / Co requisites: CSC 516 requires prerequisite of CSC 512.
Typically offered in Spring.

CSC 520. Foundations of Computer Science. 3 Credits.

This course offers an advanced treatment of many of the theoretical areas underlying other computer science subjects.
Typically offered in Fall.

CSC 525. Operating Systems. 3 Credits.

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.
Typically offered in Spring.

CSC 530. Data Structures. 3 Credits.

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.
Typically offered in Fall.

CSC 535. Networks and Data Communication. 3 Credits.

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.
Typically offered in Fall.

CSC 540. Programming Languages. 3 Credits.

This course introduces the theoretical and practical foundations of programming languages from the point of view of design and implementation.
Typically offered in Spring.

CSC 545. Database Systems Concepts. 3 Credits.

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.
Typically offered in Spring.

CSC 555. Software Engineering. 3 Credits.

This courses focuses on various software processes, including the Personal Software Process and agile processes (like eXtreme Programming and Scrum). Another major focus is software assurance - processes for building secure software. Other topics include quality assurance, work culture issues and the professional responsibilities of software engineers.
Typically offered in Fall.

CSC 560. Analysis of Algorithms. 3 Credits.

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 tractibility is introduced.
Pre / Co requisites: CSC 560 requires prerequisite of CSC 520.
Typically offered in Spring.

CSC 565. Compiler Design. 3 Credits.

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.
Pre / Co requisites: CSC 565 requires prerequisite of CSC 520 and CSC 530.
Typically offered in Fall.

CSC 575. Artificial Intelligence. 3 Credits.

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.
Pre / Co requisites: CSC 575 requires prerequisite of CSC 520.
Typically offered in Fall.

CSC 581. Topics in Computer Science. 3 Credits.

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.
Typically offered in Spring.
Repeatable for Credit.

CSC 582. Topics in Information Systems. 3 Credits.

A survey of topics in information systems reflecting the current technological developments and research interests.
Typically offered in Spring.
Repeatable for Credit.

CSC 583. Topics in Computer Security. 3 Credits.

A survey of topics in Computer Security reflecting current technological developments and research interests in the field.
Typically offered in Fall.
Repeatable for Credit.

CSC 584. Topics in Web Technology. 3 Credits.

The detailed course content varies from one semester to another. The topic will be decided based on the technological development in the field and the scholarly interests of the faculty. This course may be repeatable for different topics. Students will learn to develop individual projects.Topics discusses include but are not limited to: Server-Side Programming using Unix or Windows platform; ASP.NET with C#; Google Search Engine Optimization; Client-Side Web Programming using Content Management Systems (WordPress, Joomla, or Drupal); Other emerging technologies.
Typically offered in Summer.
Repeatable for Credit.

CSC 585. User Interface In Java. 3 Credits.

This course teaches essential features of graphical user interface (GUI) creation using the Java Language. The themes are (1) Java GUI applications and Applets using Java graphical components; (2) server-side web applications using HTML components with Servlets and Java Server Pages; (3) distributed objects (CORBA, RMI) for intranet-based functionality. Additionally, the GUI projects are integrated with an SQL database using Java JDBC programming.
Typically offered in Summer.

CSC 586. Sytem Administration and Security. 3 Credits.

This course is a hands on study of the essentials of operating system administration with a strong focus on systems security. Approximately half of the class time is spent in the lab. Students work as system administrators on projects devised to illustrate basic system and security administrative features. Additionally, various script languages are taught to provide the basis for understanding and extending the system capabilities.
Typically offered in Summer.

CSC 587. Web Services using XML and SOAP. 3 Credits.

A web service is a service function provided by a web application to another web application via the Internet. This course introduces students to the concepts of web services and related protocols. In particular, the course uses a hands-on training approach to cover the concepts of eXtensible Markup Language (XML) and web services. Some related protocols such as Simple Object Access Protocol (SOAP), REpresentational State Transfer (RESTful) web services, Universal Description, Discovery, and Integration (UDDI), and Web Services Description Language (WSDL) will be discussed.
Typically offered in Summer.

CSC 588. Wireless Programming and Security. 3 Credits.

This course provides an overview on wireless networking principles and technologies from the viewpoint of computer science majors. Since the subject of wireless communications covers many aspects including cellular telephone network, cordless phone, personal data assistant (PDA), satellite communication, even pager and two-way radio, this course cannot cover all of these systems. Instead, the major themes will focus on the fundamentals and principles. In particular, this course will cover the major differences between wired networks and wireless networks, the protocol stacks of wireless networks, and wireless data services. Security issues and protocols will also be discussed.
Pre / Co requisites: CSC 588 requires a prerequisite of CSC 535.
Typically offered in Fall.

CSC 600. Advanced Seminar. 3 Credits.

This is a research-oriented course which will involve an investigation into an advanced and specialized topic determined according to faculty and student interest.
Typically offered in Fall & Spring.

CSC 603. Advanced Seminar in Security. 3 Credits.

An in-depth investigation into specific areas of Computer Security reflecting research interests and significant technological developments in the field.
Typically offered in Spring.
Repeatable for Credit.

CSC 604. Advanced Seminar Web Technology. 3 Credits.

The detailed course content varies from one semester to another. The topic will be decided based on the technological development in the field and the scholarly interests of the faculty. Topics discusses include but are not limited to: Server-Side Programming using Unix or Windows platform; ASP.NET with C#; Google Search Engine Optimization; Client-Side Web Programming using Content Management Systems (WordPress, Joomla, or Drupal); Other emerging technologies. Students must proactively search for emerging technologies and prepare to do a presentation and/or conduct individual/group projects.
Typically offered in Summer.

CSC 605. Internship in Computer Science. 3 Credits.

Provide the student with professional development and work experience in the computer science field.
Pre / Co requisites: CSC 605 requires prerequisites of CSC 520 and CSC 530 and CSC 540 and CSC 560.
Typically offered in Fall, Spring & Summer.

CSC 610. Independent Research. 3 Credits.

The student may work in one of three directions: thesis, individual project, or team project. (See 'Thesis Options')
Consent: Permission of the Department required to add.
Typically offered in Fall, Spring & Summer.
Repeatable for Credit.

CSC 620. Thesis. 3 Credits.

Contact department for more information about this course.
Consent: Permission of the Department required to add.
Typically offered in Fall, Spring & Summer.