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. Burns, Chairperson
Dr. Ngo, Assistant Chairperson
Dr. Chen, 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).

Graduate Certificates

The department offers three, 12-credit graduate certificates (consisting of four 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 515, and CSC 516.

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.

Admission Requirements for the M.S. 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.

Admission Requirements for the Graduate Computer Science Certificate Programs

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

All graduate students are held to the academic policies and procedures outlined in the graduate catalog. Students are encouraged to review departmental handbooks for program tips, suggested course sequences, and explanations of procedures. When applicable, additional policies for specific department programs 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

Afrand Agah (2006)

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

Richard Burns (2012)

Chairperson, Computer Science

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

Zhen Jiang (2002)

B.S., Shanghai Jiaotong University; M.S., Nanjing University; Ph.D., Florida Atlantic University

Cheer-Sun D. Yang (2000)

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

Associate Professors

Si Chen (2016)

Graduate Coordinator, Computer Science

B.S., China Agricultural University; M.S., Ph.D., SUNY, Buffalo

Liu Cui (2016)

B.S., Northwestern Polytechnical University Xi'an China; M.S., Ohio University; Ph.D., University of Pittsburgh

Linh B Ngo (2018)

Assistant Chairperson, Computer Science

B.S., M.S., Ph.D., University of Arkansas

Assistant Professors

Md Amiruzzaman (2021)

B.S., National University, Gajipur, Bangladesh; M.S., Ph.D., Kent State University

Ashik Ahmed Bhuiyan (2021)

B.S., Bangladesh University of Engineering and Technology; Ph.D., University of Central Florida

David G. Cooper (2021)

B.S., Carnegie Mellon University; M.S., Ph.D., University of Massachusetts Amherst

Jongwook Kim (2020)

B.S., Korea University; M.S., Ph.D., University of Texas at Austin

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, Spring & Summer.

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.
Typically offered in Fall, Spring & Summer.

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 a prerequisite of CSC 512.
Typically offered in Fall, Spring & Summer.

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 tractability is introduced.
Pre / Co requisites: CSC 560 requires a 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 576. Data Science. 3 Credits.

This course will explore the fundamentals of data science by using current data mining and machine learning algorithms such as decision trees, regression, support vector machines, clustering, and neural networks for prediction and inference. Web scraping techniques to create datasets will be introduced. Data preprocessing techniques and data visualization will also be introduced. Programming assignments will be coded in a modern programming language, such as Python.
Pre / Co requisites: CSC 576 requires a prerequisite of CSC 520.
Typically offered in Fall.

CSC 577. Natural Language Processing. 3 Credits.

This course introduces the foundations of Natural Language Processing (NLP), from theoretical fundamentals of language models and grammars to the application of algorithms. The course will draw from the following NLP topics: word and sentence tokenization, spelling correction, question answering, text classification, and sentiment analysis. Programming assignments will utilize unstructured text and freely available corpora, be coded in a modern programming language, such as Python, and will utilize modern NLP toolkits such as NLTK and CoreNLP.
Typically offered in Spring.

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 Winter.
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 Spring.
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 Interfaces. 3 Credits.

This course introduces the technical principles of User Interfaces (UI) using the Front-End development of web-based applications as an example. Students will take the procedure from HTML, CSS, and JavaScript for the front-end and then shift their attention to using React.js for the front-end of Single Page Applications. They will focus on the "V" portion in the Model-View-Controller (MVC) architecture. The course features a modern server-side scripting platform such as Node.js or Express.js although the main focus is on the front-end View Engine React.js. Most of the course work is targeting developing the front-end for complex, large-scale web application systems.
Typically offered in Spring.

CSC 586. System 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. Modern Web Applications Using Server-Side Technologies. 3 Credits.

This course provides training in the area of building web applications using Node.js (with Express, and MongoDB) for the back end and EJS for the front-end user interface. JavaScript has been a client-side script programming language until later in 2009 when Google combined it's V8 search engine with Node.JS. Since then, JavaScript has become a full-stack scripting language from the client-side to the server-side. Starting from building a web site without programming, students will be guided with hands-on labs and develop a website using Node.JS and EJS for the front-end.
Pre / Co requisites: CSC 587 requires a prerequisite of admittance into the master's degree program or web certificate program.
Distance education offering may be available.
Typically offered in Winter.

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

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